forked-synapse/synapse/storage/data_stores/main
Erik Johnston 1531b214fc
Add ability to wait for replication streams (#7542)
The idea here is that if an instance persists an event via the replication HTTP API it can return before we receive that event over replication, which can lead to races where code assumes that persisting an event immediately updates various caches (e.g. current state of the room).

Most of Synapse doesn't hit such races, so we don't do the waiting automagically, instead we do so where necessary to avoid unnecessary delays. We may decide to change our minds here if it turns out there are a lot of subtle races going on.

People probably want to look at this commit by commit.
2020-05-22 14:21:54 +01:00
..
schema Support any process writing to cache invalidation stream. (#7436) 2020-05-07 13:51:08 +01:00
__init__.py Move event stream handling out of slave store. (#7491) 2020-05-15 16:43:59 +01:00
account_data.py Fix limit logic for AccountDataStream (#7384) 2020-05-15 19:03:25 +01:00
appservice.py Fix a couple of small typos 2020-05-15 18:54:32 +01:00
cache.py Move event stream handling out of slave store. (#7491) 2020-05-15 16:43:59 +01:00
censor_events.py Allow censoring of events to happen on workers. (#7492) 2020-05-13 17:15:40 +01:00
client_ips.py Allow configuration of Synapse's cache without using synctl or environment variables (#6391) 2020-05-11 18:45:23 +01:00
deviceinbox.py Move catchup of replication streams to worker. (#7024) 2020-03-25 14:54:01 +00:00
devices.py Retry to sync out of sync device lists (#7453) 2020-05-21 17:41:12 +02:00
directory.py Transfer alias mappings when joining an upgraded room (#6946) 2020-03-30 17:53:25 +01:00
e2e_room_keys.py Ensure is_verified on /_matrix/client/r0/room_keys/keys is a boolean (#7150) 2020-03-27 13:30:22 +00:00
end_to_end_keys.py Make get_e2e_cross_signing_key delegate to get_e2e_cross_signing_keys_bulk 2020-05-06 11:59:19 +01:00
event_federation.py Shuffle persist event data store functions. (#7440) 2020-05-13 13:38:22 +01:00
event_push_actions.py Shuffle persist event data store functions. (#7440) 2020-05-13 13:38:22 +01:00
events_bg_updates.py Clarify list/set/dict/tuple comprehensions and enforce via flake8 (#6957) 2020-02-21 07:15:07 -05:00
events_worker.py Add ability to wait for replication streams (#7542) 2020-05-22 14:21:54 +01:00
events.py Spelling 2020-05-13 13:38:51 +01:00
filtering.py Move DB pool and helper functions into dedicated Database class 2019-12-05 10:46:37 +00:00
group_server.py Prevent 0-member/null room_version rooms from appearing in group room queries (#7465) 2020-05-15 17:17:42 +01:00
keys.py remove builtins.buffer code from storage code 2020-05-15 19:37:41 +01:00
media_repository.py Convert delete_url_cache_media to async/await. (#7241) 2020-04-07 21:56:34 +01:00
metrics.py Shuffle persist event data store functions. (#7440) 2020-05-13 13:38:22 +01:00
monthly_active_users.py Break down monthly active users by appservice_id (#7030) 2020-03-06 18:14:19 +00:00
openid.py Move DB pool and helper functions into dedicated Database class 2019-12-05 10:46:37 +00:00
presence.py Remove concept of a non-limited stream. (#7011) 2020-03-20 14:40:47 +00:00
profile.py Fix a small typo in the arguments of simple_update in update_remote_profile_cache (#7511) 2020-05-15 16:17:12 +01:00
purge_events.py Shuffle persist event data store functions. (#7440) 2020-05-13 13:38:22 +01:00
push_rule.py Move event stream handling out of slave store. (#7491) 2020-05-15 16:43:59 +01:00
pusher.py Merge worker apps into one. (#6964) 2020-02-25 16:56:55 +00:00
receipts.py Clarify list/set/dict/tuple comprehensions and enforce via flake8 (#6957) 2020-02-21 07:15:07 -05:00
registration.py async/await is_server_admin (#7363) 2020-05-01 15:15:36 +01:00
rejections.py Shuffle persist event data store functions. (#7440) 2020-05-13 13:38:22 +01:00
relations.py Shuffle persist event data store functions. (#7440) 2020-05-13 13:38:22 +01:00
room.py Shuffle persist event data store functions. (#7440) 2020-05-13 13:38:22 +01:00
roommember.py Add ability to wait for replication streams (#7542) 2020-05-22 14:21:54 +01:00
search.py Add a worker store for search insertion. (#7516) 2020-05-15 17:22:47 +01:00
signatures.py Shuffle persist event data store functions. (#7440) 2020-05-13 13:38:22 +01:00
state_deltas.py Always return a deferred from get_current_state_deltas. (#7019) 2020-03-02 16:52:15 +00:00
state.py remove to_ascii 2020-05-15 19:12:03 +01:00
stats.py Remove unused get_room_stats_state method. (#6869) 2020-02-07 15:30:26 +00:00
stream.py Remove stream before/after debug log lines (#7207) 2020-04-06 12:40:34 +01:00
tags.py Move DB pool and helper functions into dedicated Database class 2019-12-05 10:46:37 +00:00
transactions.py remove builtins.buffer code from storage code 2020-05-15 19:37:41 +01:00
ui_auth.py Rework UI Auth session validation for registration (#7455) 2020-05-08 16:08:58 -04:00
user_directory.py Reduce amount of logging at INFO level. (#6862) 2020-02-06 13:31:05 +00:00
user_erasure_store.py Clarify list/set/dict/tuple comprehensions and enforce via flake8 (#6957) 2020-02-21 07:15:07 -05:00