mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-02 10:56:06 -04:00
Don't pull out state in compute_event_context
for unconflicted state (#13267)
This commit is contained in:
parent
599c403d99
commit
0ca4172b5d
7 changed files with 95 additions and 136 deletions
|
@ -43,4 +43,6 @@ class StorageControllers:
|
|||
|
||||
self.persistence = None
|
||||
if stores.persist_events:
|
||||
self.persistence = EventsPersistenceStorageController(hs, stores)
|
||||
self.persistence = EventsPersistenceStorageController(
|
||||
hs, stores, self.state
|
||||
)
|
||||
|
|
|
@ -48,9 +48,11 @@ from synapse.events.snapshot import EventContext
|
|||
from synapse.logging import opentracing
|
||||
from synapse.logging.context import PreserveLoggingContext, make_deferred_yieldable
|
||||
from synapse.metrics.background_process_metrics import run_as_background_process
|
||||
from synapse.storage.controllers.state import StateStorageController
|
||||
from synapse.storage.databases import Databases
|
||||
from synapse.storage.databases.main.events import DeltaState
|
||||
from synapse.storage.databases.main.events_worker import EventRedactBehaviour
|
||||
from synapse.storage.state import StateFilter
|
||||
from synapse.types import (
|
||||
PersistedEventPosition,
|
||||
RoomStreamToken,
|
||||
|
@ -308,7 +310,12 @@ class EventsPersistenceStorageController:
|
|||
current state and forward extremity changes.
|
||||
"""
|
||||
|
||||
def __init__(self, hs: "HomeServer", stores: Databases):
|
||||
def __init__(
|
||||
self,
|
||||
hs: "HomeServer",
|
||||
stores: Databases,
|
||||
state_controller: StateStorageController,
|
||||
):
|
||||
# We ultimately want to split out the state store from the main store,
|
||||
# so we use separate variables here even though they point to the same
|
||||
# store for now.
|
||||
|
@ -325,6 +332,7 @@ class EventsPersistenceStorageController:
|
|||
self._process_event_persist_queue_task
|
||||
)
|
||||
self._state_resolution_handler = hs.get_state_resolution_handler()
|
||||
self._state_controller = state_controller
|
||||
|
||||
async def _process_event_persist_queue_task(
|
||||
self,
|
||||
|
@ -504,7 +512,7 @@ class EventsPersistenceStorageController:
|
|||
state_res_store=StateResolutionStore(self.main_store),
|
||||
)
|
||||
|
||||
return res.state
|
||||
return await res.get_state(self._state_controller, StateFilter.all())
|
||||
|
||||
async def _persist_event_batch(
|
||||
self, _room_id: str, task: _PersistEventsTask
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue