Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Remove restrictions on routing /messages requests to workers #11717

Open
erikjohnston opened this issue Jan 10, 2022 · 0 comments
Open

Remove restrictions on routing /messages requests to workers #11717

erikjohnston opened this issue Jan 10, 2022 · 0 comments
Labels
A-Messages-Endpoint /messages client API endpoint (`RoomMessageListRestServlet`) (which also triggers /backfill) A-Workers Problems related to running Synapse in Worker Mode (or replication) T-Task Refactoring, removal, replacement, enabling or disabling functionality, other engineering tasks.

Comments

@erikjohnston
Copy link
Member

From workers.md:

Pagination requests can also be handled, but all requests for a given room must be routed to the same instance. Additionally, care must be taken to ensure that the purge history admin API is not used while pagination requests for the room are in flight

This is to ensure that multiple /backfill requests don't happen for the same room concurrently, and that we don't cause confusion by backfilling content that is currently being purged.

To relax this requirement we would need to replace the in-process locks with cross-process locks. We have some such basic locks already for the federation inbound event queues that we could probably reuse

@H-Shay H-Shay added the T-Task Refactoring, removal, replacement, enabling or disabling functionality, other engineering tasks. label Jan 13, 2022
@MadLittleMods MadLittleMods added A-Workers Problems related to running Synapse in Worker Mode (or replication) A-Messages-Endpoint /messages client API endpoint (`RoomMessageListRestServlet`) (which also triggers /backfill) labels Jul 19, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
A-Messages-Endpoint /messages client API endpoint (`RoomMessageListRestServlet`) (which also triggers /backfill) A-Workers Problems related to running Synapse in Worker Mode (or replication) T-Task Refactoring, removal, replacement, enabling or disabling functionality, other engineering tasks.
Projects
None yet
Development

No branches or pull requests

3 participants