Skip to content

Commit

Permalink
Rename ratelimit config key to clarify its purpose
Browse files Browse the repository at this point in the history
This rate limit is for the _management_ of delayed events, not the
sending of the events themselves (which will be managed by a different
ratelimit setting to be added later).
  • Loading branch information
AndrewFerr committed Feb 10, 2025
1 parent 68f77f0 commit b014c07
Show file tree
Hide file tree
Showing 6 changed files with 14 additions and 14 deletions.
2 changes: 1 addition & 1 deletion demo/start.sh
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ for port in 8080 8081 8082; do
per_user:
per_second: 1000
burst_count: 1000
rc_delayed_event:
rc_delayed_event_mgmt:
per_second: 1000
burst_count: 1000
RC
Expand Down
2 changes: 1 addition & 1 deletion docker/complement/conf/workers-shared-extra.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ rc_presence:
per_second: 9999
burst_count: 9999

rc_delayed_event:
rc_delayed_event_mgmt:
per_second: 9999
burst_count: 9999

Expand Down
4 changes: 2 additions & 2 deletions docs/usage/configuration/config_documentation.md
Original file line number Diff line number Diff line change
Expand Up @@ -1889,7 +1889,7 @@ rc_presence:
burst_count: 0.5
```
---
### `rc_delayed_event`
### `rc_delayed_event_mgmt`

Ratelimiting settings for delayed event management.

Expand All @@ -1907,7 +1907,7 @@ without the risk of being ratelimited.

Example configuration:
```yaml
rc_delayed_event:
rc_delayed_event_mgmt:
per_second: 2
burst_count: 20
```
Expand Down
4 changes: 2 additions & 2 deletions synapse/config/ratelimiting.py
Original file line number Diff line number Diff line change
Expand Up @@ -235,8 +235,8 @@ def read_config(self, config: JsonDict, **kwargs: Any) -> None:
defaults={"per_second": 0.1, "burst_count": 1},
)

self.rc_delayed_event = RatelimitSettings.parse(
self.rc_delayed_event_mgmt = RatelimitSettings.parse(
config,
"rc_delayed_event",
"rc_delayed_event_mgmt",
defaults={"per_second": 1, "burst_count": 5},
)
10 changes: 5 additions & 5 deletions synapse/handlers/delayed_events.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,10 @@ def __init__(self, hs: "HomeServer"):

# Ratelimiter for management of existing delayed events,
# keyed by the sending user ID & device ID.
self._delayed_event_ratelimiter = Ratelimiter(
self._delayed_event_mgmt_ratelimiter = Ratelimiter(
store=self._store,
clock=self._clock,
cfg=self._config.ratelimiting.rc_delayed_event,
cfg=self._config.ratelimiting.rc_delayed_event_mgmt,
)

self._next_delayed_event_call: Optional[IDelayedCall] = None
Expand Down Expand Up @@ -298,7 +298,7 @@ async def cancel(self, requester: Requester, delay_id: str) -> None:
NotFoundError: if no matching delayed event could be found.
"""
assert self._is_master
await self._delayed_event_ratelimiter.ratelimit(
await self._delayed_event_mgmt_ratelimiter.ratelimit(
requester,
(requester.user.to_string(), requester.device_id),
)
Expand All @@ -324,7 +324,7 @@ async def restart(self, requester: Requester, delay_id: str) -> None:
NotFoundError: if no matching delayed event could be found.
"""
assert self._is_master
await self._delayed_event_ratelimiter.ratelimit(
await self._delayed_event_mgmt_ratelimiter.ratelimit(
requester,
(requester.user.to_string(), requester.device_id),
)
Expand Down Expand Up @@ -436,7 +436,7 @@ def _schedule_next_at(self, next_send_ts: Timestamp) -> None:

async def get_all_for_user(self, requester: Requester) -> List[JsonDict]:
"""Return all pending delayed events requested by the given user."""
await self._delayed_event_ratelimiter.ratelimit(
await self._delayed_event_mgmt_ratelimiter.ratelimit(
requester,
(requester.user.to_string(), requester.device_id),
)
Expand Down
6 changes: 3 additions & 3 deletions tests/rest/client/test_delayed_events.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ def test_delayed_state_events_are_sent_on_timeout(self) -> None:
self.assertEqual(setter_expected, content.get(setter_key), content)

@unittest.override_config(
{"rc_delayed_event": {"per_second": 0.5, "burst_count": 1}}
{"rc_delayed_event_mgmt": {"per_second": 0.5, "burst_count": 1}}
)
def test_get_delayed_events_ratelimit(self) -> None:
args = ("GET", PATH_PREFIX)
Expand Down Expand Up @@ -228,7 +228,7 @@ def test_cancel_delayed_state_event(self) -> None:
)

@unittest.override_config(
{"rc_delayed_event": {"per_second": 0.5, "burst_count": 1}}
{"rc_delayed_event_mgmt": {"per_second": 0.5, "burst_count": 1}}
)
def test_cancel_delayed_event_ratelimit(self) -> None:
delay_ids = []
Expand Down Expand Up @@ -409,7 +409,7 @@ def test_restart_delayed_state_event(self) -> None:
self.assertEqual(setter_expected, content.get(setter_key), content)

@unittest.override_config(
{"rc_delayed_event": {"per_second": 0.5, "burst_count": 1}}
{"rc_delayed_event_mgmt": {"per_second": 0.5, "burst_count": 1}}
)
def test_restart_delayed_event_ratelimit(self) -> None:
delay_ids = []
Expand Down

0 comments on commit b014c07

Please sign in to comment.