Make purge history slightly faster
Don't pull out events that are outliers and won't be deleted, as nothing should happen to them.
This commit is contained in:
parent
f30a303590
commit
c857f5ef9b
1 changed files with 9 additions and 2 deletions
|
@ -1930,15 +1930,22 @@ class EventsStore(EventFederationStore, EventsWorkerStore, BackgroundUpdateStore
|
||||||
should_delete_params = ()
|
should_delete_params = ()
|
||||||
if not delete_local_events:
|
if not delete_local_events:
|
||||||
should_delete_expr += " AND event_id NOT LIKE ?"
|
should_delete_expr += " AND event_id NOT LIKE ?"
|
||||||
should_delete_params += ("%:" + self.hs.hostname, )
|
should_delete_params += (
|
||||||
|
"%:" + self.hs.hostname,
|
||||||
|
"%:" + self.hs.hostname,
|
||||||
|
)
|
||||||
|
|
||||||
should_delete_params += (room_id, token.topological)
|
should_delete_params += (room_id, token.topological)
|
||||||
|
|
||||||
|
# Note that we insert events that are outliers and aren't going to be
|
||||||
|
# deleted, as nothing will happen to them.
|
||||||
txn.execute(
|
txn.execute(
|
||||||
"INSERT INTO events_to_purge"
|
"INSERT INTO events_to_purge"
|
||||||
" SELECT event_id, %s"
|
" SELECT event_id, %s"
|
||||||
" FROM events AS e LEFT JOIN state_events USING (event_id)"
|
" FROM events AS e LEFT JOIN state_events USING (event_id)"
|
||||||
" WHERE e.room_id = ? AND topological_ordering < ?" % (
|
" WHERE (NOT outlier OR (%s)) AND e.room_id = ? AND topological_ordering < ?"
|
||||||
|
% (
|
||||||
|
should_delete_expr,
|
||||||
should_delete_expr,
|
should_delete_expr,
|
||||||
),
|
),
|
||||||
should_delete_params,
|
should_delete_params,
|
||||||
|
|
Loading…
Reference in a new issue