Skip to content
This repository has been archived by the owner on Dec 13, 2023. It is now read-only.

Commit

Permalink
Merge pull request #6295 from matrix-org/erikj/split_purge_history
Browse files Browse the repository at this point in the history
Split purge API into events vs state and add PurgeEventsStorage
  • Loading branch information
erikjohnston committed Nov 8, 2019
2 parents 46e5db9 + e4ec82c commit f713c01
Show file tree
Hide file tree
Showing 8 changed files with 335 additions and 182 deletions.
1 change: 1 addition & 0 deletions changelog.d/6295.misc
@@ -0,0 +1 @@
Split out state storage into separate data store.
6 changes: 4 additions & 2 deletions synapse/handlers/pagination.py
Expand Up @@ -127,7 +127,9 @@ def _purge_history(self, purge_id, room_id, token, delete_local_events):
self._purges_in_progress_by_room.add(room_id)
try:
with (yield self.pagination_lock.write(room_id)):
yield self.store.purge_history(room_id, token, delete_local_events)
yield self.storage.purge_events.purge_history(
room_id, token, delete_local_events
)
logger.info("[purge] complete")
self._purges_by_id[purge_id].status = PurgeStatus.STATUS_COMPLETE
except Exception:
Expand Down Expand Up @@ -170,7 +172,7 @@ async def purge_room(self, room_id):
if joined:
raise SynapseError(400, "Users are still joined to this room")

await self.store.purge_room(room_id)
await self.storage.purge_events.purge_room(room_id)

@defer.inlineCallbacks
def get_messages(
Expand Down
2 changes: 2 additions & 0 deletions synapse/storage/__init__.py
Expand Up @@ -30,6 +30,7 @@
from synapse.storage.data_stores import DataStores
from synapse.storage.data_stores.main import DataStore
from synapse.storage.persist_events import EventsPersistenceStorage
from synapse.storage.purge_events import PurgeEventsStorage
from synapse.storage.state import StateGroupStorage

__all__ = ["DataStores", "DataStore"]
Expand All @@ -46,6 +47,7 @@ def __init__(self, hs, stores: DataStores):
self.main = stores.main

self.persistence = EventsPersistenceStorage(hs, stores)
self.purge_events = PurgeEventsStorage(hs, stores)
self.state = StateGroupStorage(hs, stores)


Expand Down

0 comments on commit f713c01

Please sign in to comment.