MatrixSynapse/synapse/storage
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
..
data_stores Add ability to wait for replication streams (#7542) 2020-05-22 14:21:54 +01:00
engines Persist user interactive authentication sessions (#7302) 2020-04-30 13:47:49 -04:00
schema Only run one background update at a time 2020-03-31 17:43:58 +01:00
util Move event stream handling out of slave store. (#7491) 2020-05-15 16:43:59 +01:00
__init__.py Move are_all_users_on_domain checks to main data store. 2019-12-06 13:43:40 +00:00
_base.py remove `builtins.buffer` code from storage code 2020-05-15 19:37:41 +01:00
background_updates.py Update docstring per review comments 2020-04-03 10:51:32 +01:00
database.py Remove `exception_to_unicode` 2020-05-15 19:07:24 +01:00
keys.py Move storage classes into a main "data store". 2019-10-21 16:05:06 +01:00
persist_events.py Fix bug in persist events when dealing with non member types. (#7548) 2020-05-21 13:20:10 +01:00
prepare_database.py Support any process writing to cache invalidation stream. (#7436) 2020-05-07 13:51:08 +01:00
presence.py Move storage classes into a main "data store". 2019-10-21 16:05:06 +01:00
purge_events.py Fix purge_room admin API (#6711) 2020-01-15 18:13:47 +00:00
push_rule.py Move storage classes into a main "data store". 2019-10-21 16:05:06 +01:00
relations.py Move storage classes into a main "data store". 2019-10-21 16:05:06 +01:00
roommember.py Move storage classes into a main "data store". 2019-10-21 16:05:06 +01:00
state.py Add StateMap type alias (#6715) 2020-01-16 13:31:22 +00:00
types.py Add some type annotations in `synapse.storage` (#6987) 2020-02-27 11:53:40 +00:00