Avoid attempting to delete push actions for remote users. (#12879)

Remote users will never have push actions, so we can avoid a database
round-trip/transaction completely.
code_spécifique_watcha
Patrick Cloke 3 years ago committed by GitHub
parent b83bc5fab5
commit b5707ceaba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      changelog.d/12879.misc
  2. 2
      synapse/federation/sender/per_destination_queue.py
  3. 2
      synapse/storage/databases/main/event_push_actions.py
  4. 5
      synapse/storage/databases/main/receipts.py
  5. 2
      synapse/storage/persist_events.py

@ -0,0 +1 @@
Avoid running queries which will never result in deletions.

@ -223,7 +223,7 @@ class PerDestinationQueue:
"""Marks that the destination has new data to send, without starting a
new transaction.
If a transaction loop is already in progress then a new transcation will
If a transaction loop is already in progress then a new transaction will
be attempted when the current one finishes.
"""

@ -938,7 +938,7 @@ class EventPushActionsWorkerStore(SQLBaseStore):
users can still get a list of recent highlights.
Args:
txn: The transcation
txn: The transaction
room_id: Room ID to delete from
user_id: user ID to delete for
stream_ordering: The lowest stream ordering which will

@ -673,8 +673,11 @@ class ReceiptsWorkerStore(SQLBaseStore):
lock=False,
)
# When updating a local users read receipt, remove any push actions
# which resulted from the receipt's event and all earlier events.
if (
receipt_type in (ReceiptTypes.READ, ReceiptTypes.READ_PRIVATE)
self.hs.is_mine_id(user_id)
and receipt_type in (ReceiptTypes.READ, ReceiptTypes.READ_PRIVATE)
and stream_ordering is not None
):
self._remove_old_push_actions_before_txn( # type: ignore[attr-defined]

@ -313,7 +313,7 @@ class EventsPersistenceStorage:
List of events persisted, the current position room stream position.
The list of events persisted may not be the same as those passed in
if they were deduplicated due to an event already existing that
matched the transcation ID; the existing event is returned in such
matched the transaction ID; the existing event is returned in such
a case.
"""
partitioned: Dict[str, List[Tuple[EventBase, EventContext]]] = {}

Loading…
Cancel
Save