MatrixSynapse/synapse/storage
Erik Johnston b1433bf231
Don't table scan events on worker startup (#8419)
* Fix table scan of events on worker startup.

This happened because we assumed "new" writers had an initial stream
position of 0, so the replication code tried to fetch all events written
by the instance between 0 and the current position.

Instead, set the initial position of new writers to the current
persisted up to position, on the assumption that new writers won't have
written anything before that point.

* Consider old writers coming back as "new".

Otherwise we'd try and fetch entries between the old stale token and the
current position, even though it won't have written any rows.

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2020-09-29 16:42:19 +01:00
..
databases Mypy fixes for `synapse.handlers.federation` (#8422) 2020-09-29 15:57:36 +01:00
engines
schema
util Don't table scan events on worker startup (#8419) 2020-09-29 16:42:19 +01:00
__init__.py Make `StreamToken.room_key` be a `RoomStreamToken` instance. (#8281) 2020-09-11 12:22:55 +01:00
_base.py
background_updates.py Stop sub-classing object (#8249) 2020-09-04 06:54:56 -04:00
database.py Catch-up after Federation Outage (split, 1) (#8230) 2020-09-04 12:22:23 +01:00
keys.py Stop sub-classing object (#8249) 2020-09-04 06:54:56 -04:00
persist_events.py Mypy fixes for `synapse.handlers.federation` (#8422) 2020-09-29 15:57:36 +01:00
prepare_database.py Use slots in attrs classes where possible (#8296) 2020-09-14 12:50:06 -04:00
purge_events.py Stop sub-classing object (#8249) 2020-09-04 06:54:56 -04:00
push_rule.py
relations.py Use slots in attrs classes where possible (#8296) 2020-09-14 12:50:06 -04:00
roommember.py Add EventStreamPosition type (#8388) 2020-09-24 13:24:17 +01:00
state.py Mypy fixes for `synapse.handlers.federation` (#8422) 2020-09-29 15:57:36 +01:00
types.py