Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use new presence tuning parameters from server #5669

Closed
gnprice opened this issue Feb 24, 2023 · 0 comments · Fixed by #5714
Closed

Use new presence tuning parameters from server #5669

gnprice opened this issue Feb 24, 2023 · 0 comments · Fixed by #5714
Assignees
Labels
a-presence/status Presence, and "away status" api migrations P1 high-priority server release goal Things we should try to coordinate with a major Zulip Server release.

Comments

@gnprice
Copy link
Member

gnprice commented Feb 24, 2023

In zulip/zulip#24429 we introduced a pair of new values in the register response, which function as tuning parameters for the presence subsystem:

  • server_presence_ping_interval_seconds
  • server_presence_offline_threshold_seconds

We should start consuming those values. When present, they should replace two values we currently have hard-coded:

  • The interval length for the heartbeat in PresenceHeartbeat
  • OFFLINE_THRESHOLD_SECS in src/utils/presence.js

This is a priority issue because it will greatly increase our ability to tune the tradeoff of presence freshness vs. load. See chat discussion.

@gnprice gnprice added the server release goal Things we should try to coordinate with a major Zulip Server release. label Mar 15, 2023
gnprice added a commit to gnprice/zulip-mobile that referenced this issue Mar 29, 2023
This reduces the amount of code that thinks it knows what a
PresenceState looks like on the inside.  That will help set us up
to rearrange those and add more data to them, for zulip#5669.
gnprice added a commit to gnprice/zulip-mobile that referenced this issue Mar 29, 2023
For zulip#5669, we'll want to add a bit more information here alongside the
per-user data.  Insert an object sitting above the per-user map, to
be a place we can add those; and while we're here, make that per-user
map an Immutable.Map, instead of an object-as-map.
gnprice added a commit to gnprice/zulip-mobile that referenced this issue Mar 29, 2023
For zulip#5669, we'll want to add a bit more information here alongside the
per-user data.  Insert an object sitting above the per-user map, to
be a place we can add those; and while we're here, make that per-user
map an Immutable.Map, instead of an object-as-map.
gnprice added a commit to gnprice/zulip-mobile that referenced this issue Apr 3, 2023
…ForUser

This new function takes the whole PresenceState as an argument,
instead of a small fragment of it, which will help us as we add
new wrinkles to that state for zulip#5669.

It also returns null for missing data, rather than picking a value;
it's then up to the caller to choose how to handle that.
gnprice added a commit to gnprice/zulip-mobile that referenced this issue Apr 3, 2023
Toward zulip#5669.

This doesn't yet actually use the new tuning parameters;
we'll do that in the next few commits.
gnprice added a commit to gnprice/zulip-mobile that referenced this issue Apr 3, 2023
@gnprice gnprice self-assigned this Apr 3, 2023
gnprice added a commit to gnprice/zulip-mobile that referenced this issue Apr 4, 2023
…ForUser

This new function takes the whole PresenceState as an argument,
instead of a small fragment of it, which will help us as we add
new wrinkles to that state for zulip#5669.

It also returns null for missing data, rather than picking a value;
it's then up to the caller to choose how to handle that.
gnprice added a commit to gnprice/zulip-mobile that referenced this issue Apr 4, 2023
Toward zulip#5669.

This doesn't yet actually use the new tuning parameters;
we'll do that in the next few commits.
@gnprice gnprice closed this as completed in b0a3983 Apr 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a-presence/status Presence, and "away status" api migrations P1 high-priority server release goal Things we should try to coordinate with a major Zulip Server release.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant