Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

Commit 4d3621f

Browse files
committed
refactor function that batch persists state groups to use unpersisted event contexts
1 parent d0f4fab commit 4d3621f

File tree

1 file changed

+16
-16
lines changed

1 file changed

+16
-16
lines changed

synapse/storage/databases/state/store.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
from synapse.api.constants import EventTypes
2121
from synapse.events import EventBase
22-
from synapse.events.snapshot import EventContext
22+
from synapse.events.snapshot import UnpersistedEventContext, UnpersistedEventContextBase
2323
from synapse.storage._base import SQLBaseStore
2424
from synapse.storage.database import (
2525
DatabasePool,
@@ -408,10 +408,10 @@ def _insert_into_cache(
408408

409409
async def store_state_deltas_for_batched(
410410
self,
411-
events_and_context: List[Tuple[EventBase, EventContext]],
411+
events_and_context: List[Tuple[EventBase, UnpersistedEventContextBase]],
412412
room_id: str,
413413
prev_group: int,
414-
) -> List[int]:
414+
) -> List[Tuple[EventBase, UnpersistedEventContext]]:
415415
"""Generate and store state deltas for a group of events and contexts created to be
416416
batch persisted.
417417
@@ -425,9 +425,9 @@ async def store_state_deltas_for_batched(
425425

426426
def insert_deltas_group_txn(
427427
txn: LoggingTransaction,
428-
events_and_context: List[Tuple[EventBase, EventContext]],
428+
events_and_context: List[Tuple[EventBase, UnpersistedEventContext]],
429429
prev_group: int,
430-
) -> List[int]:
430+
) -> List[Tuple[EventBase, UnpersistedEventContext]]:
431431
"""Generate and store state groups for the provided events and contexts.
432432
433433
Requires that we have the state as a delta from the last persisted state group.
@@ -456,17 +456,17 @@ def insert_deltas_group_txn(
456456

457457
index = 0
458458
for event, context in events_and_context:
459-
context._state_group = state_groups[index]
459+
context.state_group_after_event = state_groups[index]
460460
# The first prev_group will be the last persisted state group, which is passed in
461461
# else it will be the group most recently assigned
462462
if index > 0:
463-
context.prev_group = state_groups[index - 1]
463+
context.prev_group_for_state_group_after_event = state_groups[index - 1]
464464
context.state_group_before_event = state_groups[index - 1]
465465
else:
466-
context.prev_group = prev_group
466+
context.prev_group_for_state_group_after_event = prev_group
467467
context.state_group_before_event = prev_group
468-
context.delta_ids = {(event.type, event.state_key): event.event_id}
469-
context._state_delta_due_to_event = {
468+
context.delta_ids_to_state_group_after_event = {(event.type, event.state_key): event.event_id}
469+
context.state_delta_due_to_event = {
470470
(event.type, event.state_key): event.event_id
471471
}
472472
index += 1
@@ -476,7 +476,7 @@ def insert_deltas_group_txn(
476476
table="state_groups",
477477
keys=("id", "room_id", "event_id"),
478478
values=[
479-
(context._state_group, room_id, event.event_id)
479+
(context.state_group_after_event, room_id, event.event_id)
480480
for event, context in events_and_context
481481
],
482482
)
@@ -486,23 +486,23 @@ def insert_deltas_group_txn(
486486
table="state_group_edges",
487487
keys=("state_group", "prev_state_group"),
488488
values=[
489-
(context._state_group, context.prev_group)
489+
(context.state_group_after_event, context.prev_group_for_state_group_after_event)
490490
for _, context in events_and_context
491491
],
492492
)
493493

494494
for _, context in events_and_context:
495-
assert context.delta_ids is not None
495+
assert context.delta_ids_to_state_group_after_event is not None
496496
self.db_pool.simple_insert_many_txn(
497497
txn,
498498
table="state_groups_state",
499499
keys=("state_group", "room_id", "type", "state_key", "event_id"),
500500
values=[
501-
(context._state_group, room_id, key[0], key[1], state_id)
502-
for key, state_id in context.delta_ids.items()
501+
(context.state_group_after_event, room_id, key[0], key[1], state_id)
502+
for key, state_id in context.delta_ids_to_state_group_after_event.items()
503503
],
504504
)
505-
return state_groups
505+
return events_and_context
506506

507507
return await self.db_pool.runInteraction(
508508
"store_state_deltas_for_batched.insert_deltas_group",

0 commit comments

Comments
 (0)