MatrixSynapse/synapse
Eric Eastwood df8b91ed2b
Limit and filter the number of backfill points to get from the database (#13879)
There is no need to grab thousands of backfill points when we only need 5 to make the `/backfill` request with. We need to grab a few extra in case the first few aren't visible in the history.

Previously, we grabbed thousands of backfill points from the database, then sorted and filtered them in the app. Fetching the 4.6k backfill points for `#matrix:matrix.org` from the database takes ~50ms - ~570ms so it's not like this saves a lot of time 🤷. But it might save us more time now that `get_backfill_points_in_room`/`get_insertion_event_backward_extremities_in_room` are more complicated after https://github.com/matrix-org/synapse/pull/13635 

This PR moves the filtering and limiting to the SQL query so we just have less data to work with in the first place.

Part of https://github.com/matrix-org/synapse/issues/13356
2022-09-28 15:26:16 -05:00
..
_scripts
api
app
appservice
config
crypto
events fix: Push notifications for invite over federation (#13719) 2022-09-28 12:31:53 +00:00
federation
handlers Limit and filter the number of backfill points to get from the database (#13879) 2022-09-28 15:26:16 -05:00
http
logging
metrics
module_api
push fix: Push notifications for invite over federation (#13719) 2022-09-28 12:31:53 +00:00
replication Persist CreateRoom events to DB in a batch (#13800) 2022-09-28 10:11:48 +00:00
res
rest
server_notices
spam_checker_api
state Prepatory work for batching events to send (#13487) 2022-09-28 10:39:03 +01:00
static
storage Limit and filter the number of backfill points to get from the database (#13879) 2022-09-28 15:26:16 -05:00
streams
util Fix `have_seen_event` cache not being invalidated (#13863) 2022-09-27 15:55:43 -05:00
__init__.py
event_auth.py
notifier.py
py.typed
server.py
types.py
visibility.py