synapse-old/synapse/storage/databases/main
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
..
__init__.py Merge/remove `Slaved*` stores into `WorkerStores` (#14375) 2022-11-11 10:51:49 +00:00
account_data.py Update all stream IDs after processing replication rows (#14723) 2023-01-04 11:49:26 +00:00
appservice.py Use `device_one_time_keys_count` to match MSC3202 (#14565) 2022-11-28 16:17:29 +00:00
cache.py Update all stream IDs after processing replication rows (#14723) 2023-01-04 11:49:26 +00:00
censor_events.py Safe async event cache (#13308) 2022-07-19 11:25:29 +00:00
client_ips.py Optimise `_update_client_ips_batch_txn` to batch together database operations. (#12252) 2022-04-08 15:29:13 +01:00
deviceinbox.py Update all stream IDs after processing replication rows (#14723) 2023-01-04 11:49:26 +00:00
devices.py Update all stream IDs after processing replication rows (#14723) 2023-01-04 11:49:26 +00:00
directory.py Replace uses of simple_insert_many with simple_insert_many_values. (#11742) 2022-01-13 19:44:18 -05:00
e2e_room_keys.py Remove redundant types from comments. (#14412) 2022-11-16 15:25:24 +00:00
end_to_end_keys.py Require types in tests.storage. (#14646) 2022-12-09 12:36:32 -05:00
event_federation.py Remove option to skip locking of tables during emulated upserts (#14469) 2022-11-28 13:42:06 +00:00
event_push_actions.py Delete event_push_summary_unique_index again. (#14669) 2022-12-14 09:25:33 -05:00
events.py Batch fetch bundled references (#14508) 2022-11-22 09:41:09 -05:00
events_bg_updates.py Fix background update table-scanning `events` (#14374) 2022-11-07 14:28:00 +00:00
events_forward_extremities.py Fix returned count of delete extremities admin API (#12496) 2022-04-19 16:49:45 +01:00
events_worker.py Update all stream IDs after processing replication rows (#14723) 2023-01-04 11:49:26 +00:00
filtering.py Merge/remove `Slaved*` stores into `WorkerStores` (#14375) 2022-11-11 10:51:49 +00:00
keys.py Add some type hints to datastore (#12485) 2022-04-27 13:05:00 +01:00
lock.py Require SQLite >= 3.27.0 (#13760) 2022-09-09 11:14:10 +01:00
media_repository.py Replace noop background updates with DELETE. (#12954) 2022-06-13 14:06:27 -04:00
metrics.py Add some type hints to datastore (#12717) 2022-05-17 15:29:06 +01:00
monthly_active_users.py Remove redundant types from comments. (#14412) 2022-11-16 15:25:24 +00:00
openid.py Add type hints to some storage classes (#11307) 2021-11-11 08:47:31 -05:00
presence.py Update all stream IDs after processing replication rows (#14723) 2023-01-04 11:49:26 +00:00
profile.py Remove remaining pieces of groups code. (#12966) 2022-06-06 13:20:05 -04:00
purge_events.py Add support to purge rows from MSC2716 and other tables when purging a room (#13825) 2022-09-16 10:56:56 -05:00
push_rule.py Update all stream IDs after processing replication rows (#14723) 2023-01-04 11:49:26 +00:00
pusher.py Update all stream IDs after processing replication rows (#14723) 2023-01-04 11:49:26 +00:00
receipts.py Update all stream IDs after processing replication rows (#14723) 2023-01-04 11:49:26 +00:00
registration.py Remove redundant types from comments. (#14412) 2022-11-16 15:25:24 +00:00
rejections.py Remove redundant "coding: utf-8" lines (#9786) 2021-04-14 15:34:27 +01:00
relations.py Batch fetch bundled references (#14508) 2022-11-22 09:41:09 -05:00
room.py Faster remote room joins: stream the un-partial-stating of rooms over replication. [rei:frrj/streams/unpsr] (#14473) 2022-12-05 13:07:55 +00:00
room_batch.py Remove option to skip locking of tables during emulated upserts (#14469) 2022-11-28 13:42:06 +00:00
roommember.py Include heroes in partial join responses' state (#14442) 2022-11-15 17:35:19 +00:00
search.py Drop support for Postgres 10 in full text search code. (#14397) 2022-11-09 09:55:34 -05:00
session.py Run `pyupgrade --py37-plus --keep-percent-format` on Synapse (#11685) 2022-01-05 09:53:05 -08:00
signatures.py remove constantly lib use and switch to enums. (#12624) 2022-05-04 11:26:11 +00:00
state.py Faster remote room joins: invalidate caches and unblock requests when receiving un-partial-stated event notifications over replication. [rei:frrj/streams/unpsr] (#14546) 2022-12-19 14:57:51 +00:00
state_deltas.py Wait for lazy join to complete when getting current state (#12872) 2022-06-01 16:02:53 +01:00
stats.py Require SQLite >= 3.27.0 (#13760) 2022-09-09 11:14:10 +01:00
stream.py Merge/remove `Slaved*` stores into `WorkerStores` (#14375) 2022-11-11 10:51:49 +00:00
tags.py Update all stream IDs after processing replication rows (#14723) 2023-01-04 11:49:26 +00:00
transactions.py Require SQLite >= 3.27.0 (#13760) 2022-09-09 11:14:10 +01:00
ui_auth.py Add some type hints to datastore (#12485) 2022-04-27 13:05:00 +01:00
user_directory.py Add optional ICU support for user search (#14464) 2022-12-12 13:21:17 +01:00
user_erasure_store.py Annotations for user_erasure_store (#11313) 2021-11-11 19:22:19 +00:00