synapse-product/synapse/storage/databases/main
Erik Johnston c72d26c1e1
Refactor EventContext (#12689)
Refactor how the `EventContext` class works, with the intention of reducing the amount of state we fetch from the DB during event processing.

The idea here is to get rid of the cached `current_state_ids` and `prev_state_ids` that live in the `EventContext`, and instead defer straight to the database (and its caching). 

One change that may have a noticeable effect is that we now no longer prefill the `get_current_state_ids` cache on a state change. However, that query is relatively light, since its just a case of reading a table from the DB (unlike fetching state at an event which is more heavyweight). For deployments with workers this cache isn't even used.


Part of #12684
2022-05-10 19:43:13 +00:00
..
__init__.py Add some type hints to datastore (#12485) 2022-04-27 13:05:00 +01:00
account_data.py Use the ignored_users table to test event visibility & sync. (#12225) 2022-03-15 14:06:05 -04:00
appservice.py Add some type hints to datastore (#12485) 2022-04-27 13:05:00 +01:00
cache.py Add cache for get_membership_from_event_ids (#12272) 2022-03-25 14:58:56 +00:00
censor_events.py Type hint the constructors of the data store classes (#11555) 2021-12-13 17:05:00 +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 Add some type hints to datastore (#12485) 2022-04-27 13:05:00 +01:00
devices.py Add some type hints to datastore (#12485) 2022-04-27 13:05:00 +01: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 Replace uses of simple_insert_many with simple_insert_many_values. (#11742) 2022-01-13 19:44:18 -05:00
end_to_end_keys.py Add support for MSC3202: sending one-time key counts and fallback key usage states to Application Services. (#11617) 2022-02-24 17:55:45 +00:00
event_federation.py Optimise backfill calculation (#12522) 2022-04-26 10:27:11 +01:00
event_push_actions.py Replace uses of simple_insert_many with simple_insert_many_values. (#11742) 2022-01-13 19:44:18 -05:00
events_bg_updates.py Replace uses of simple_insert_many with simple_insert_many_values. (#11742) 2022-01-13 19:44:18 -05: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 remove constantly lib use and switch to enums. (#12624) 2022-05-04 11:26:11 +00:00
events.py Refactor EventContext (#12689) 2022-05-10 19:43:13 +00:00
filtering.py Improve type hints in storage classes. (#11652) 2021-12-29 13:04:28 +00:00
group_server.py Add some type hints to datastore (#12485) 2022-04-27 13:05:00 +01:00
keys.py Add some type hints to datastore (#12485) 2022-04-27 13:05:00 +01:00
lock.py Type hint the constructors of the data store classes (#11555) 2021-12-13 17:05:00 +00:00
media_repository.py Add some type hints to datastore (#12485) 2022-04-27 13:05:00 +01:00
metrics.py Remove redundant COALESCE()s around COUNT()s in database queries (#11570) 2021-12-14 12:34:30 +00:00
monthly_active_users.py Remove unused # type: ignores (#12531) 2022-04-27 14:03:44 +01:00
openid.py Add type hints to some storage classes (#11307) 2021-11-11 08:47:31 -05:00
presence.py Add some type hints to datastore (#12485) 2022-04-27 13:05:00 +01:00
profile.py Database storage profile passes mypy (#11342) 2021-11-15 12:59:33 +00:00
purge_events.py Stop writing to event_reference_hashes (#12679) 2022-05-10 15:35:08 +01:00
push_rule.py Implement MSC3786: Add a default push rule to ignore m.room.server_acl events (#12601) 2022-05-10 08:57:36 +01:00
pusher.py Add some type hints to datastore (#12485) 2022-04-27 13:05:00 +01:00
receipts.py Remove unused receipt datastore methods. (#12632) 2022-05-05 07:51:19 -04:00
registration.py Add mau_appservice_trial_days config (#12619) 2022-05-04 19:33:26 +01:00
rejections.py Remove redundant "coding: utf-8" lines (#9786) 2021-04-14 15:34:27 +01:00
relations.py Include bundled aggregations for the latest event in a thread. (#12273) 2022-05-04 08:38:18 -04:00
room_batch.py Correct type hint for room_batch.py (#11310) 2021-11-11 16:49:28 +00:00
room.py Resync state after partial-state join (#12394) 2022-04-12 13:23:43 +00:00
roommember.py Refactor and convert Linearizer to async (#12357) 2022-04-05 15:43:52 +01:00
search.py Add some type hints to datastore. (#12477) 2022-05-10 14:07:48 -04: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_deltas.py Improve log messages for stream ids (#11536) 2021-12-08 14:15:14 +00:00
state.py Consistently use collections.abc.Mapping to check frozendict. (#12564) 2022-04-27 09:00:07 -04:00
stats.py Add some type hints to datastore. (#12255) 2022-03-28 14:11:14 -04:00
stream.py Fix missing sync events during historical batch imports (#12319) 2022-04-13 11:38:35 +01:00
tags.py Add some type hints to datastore (#12423) 2022-04-12 11:54:00 +01:00
transactions.py Add admin API to get a list of federated rooms (#11658) 2022-01-25 16:11:40 +00:00
ui_auth.py Add some type hints to datastore (#12485) 2022-04-27 13:05:00 +01:00
user_directory.py Add some type hints to datastore. (#12255) 2022-03-28 14:11:14 -04:00
user_erasure_store.py Annotations for user_erasure_store (#11313) 2021-11-11 19:22:19 +00:00