synapse-product/synapse/replication/tcp
Nick Mills-Barrett db1cfe9c80
Update all stream IDs after processing replication rows (#14723)
This creates a new store method, `process_replication_position` that
is called after `process_replication_rows`. By moving stream ID advances
here this guarantees any relevant cache invalidations will have been
applied before the stream is advanced.

This avoids race conditions where Python switches between threads mid
way through processing the `process_replication_rows` method where stream
IDs may be advanced before caches are invalidated due to class resolution
ordering.

See this comment/issue for further discussion:
	https://github.com/matrix-org/synapse/issues/14158#issuecomment-1344048703
2023-01-04 11:49:26 +00:00
..
streams Faster remote room joins: stream the un-partial-stating of events over replication. [rei:frrj/streams/unpsr] (#14545) 2022-12-14 14:47:11 +00:00
__init__.py Update replication.md with info on TCP module structure (#12621) 2022-05-09 14:46:43 -07:00
client.py Update all stream IDs after processing replication rows (#14723) 2023-01-04 11:49:26 +00:00
commands.py Send USER_IP commands on a different Redis channel, in order to reduce traffic to workers that do not process these commands. (#12809) 2022-05-20 15:28:23 +01:00
external_cache.py Add opentracing spans to calls to external cache (#12380) 2022-04-07 13:18:29 +01:00
handler.py Remove configuration options for direct TCP replication. (#13647) 2022-09-06 07:50:02 +00:00
protocol.py Fix check to ignore blank lines in incoming TCP replication (#14449) 2022-11-17 16:09:56 +00:00
redis.py Send USER_IP commands on a different Redis channel, in order to reduce traffic to workers that do not process these commands. (#12809) 2022-05-20 15:28:23 +01:00
resource.py Reduce log spam when running multiple event persisters (#12610) 2022-05-05 10:20:23 +01:00