summary refs log tree commit diff
diff options
context:
space:
mode:
authorErik Johnston <erikj@jki.re>2018-07-23 16:06:59 +0100
committerGitHub <noreply@github.com>2018-07-23 16:06:59 +0100
commit37e87611bce855753fde5406c25f9309fe09b04c (patch)
treecef947113714238da71c47bb1104dcd9acd4bb31
parentMerge pull request #3579 from matrix-org/erikj/stateless_contexts_4 (diff)
parentNewsfile (diff)
downloadsynapse-37e87611bce855753fde5406c25f9309fe09b04c.tar.xz
Merge pull request #3581 from matrix-org/erikj/fixup_stateless
Fix EventContext when using workers
-rw-r--r--changelog.d/3581.misc1
-rw-r--r--synapse/events/snapshot.py14
2 files changed, 8 insertions, 7 deletions
diff --git a/changelog.d/3581.misc b/changelog.d/3581.misc
new file mode 100644

index 0000000000..2374dc0c44 --- /dev/null +++ b/changelog.d/3581.misc
@@ -0,0 +1 @@ +Lazily load state on master process when using workers to reduce DB consumption diff --git a/synapse/events/snapshot.py b/synapse/events/snapshot.py
index a6d7bf5700..e31eceb921 100644 --- a/synapse/events/snapshot.py +++ b/synapse/events/snapshot.py
@@ -82,6 +82,11 @@ class EventContext(object): "_fetching_state_deferred", ] + def __init__(self): + self.prev_state_events = [] + self.rejected = False + self.app_service = None + @staticmethod def with_state(state_group, current_state_ids, prev_state_ids, prev_group=None, delta_ids=None): @@ -103,11 +108,6 @@ class EventContext(object): context.prev_group = prev_group context.delta_ids = delta_ids - context.prev_state_events = [] - - context.rejected = False - context.app_service = None - return context def serialize(self, event): @@ -143,7 +143,6 @@ class EventContext(object): } @staticmethod - @defer.inlineCallbacks def deserialize(store, input): """Converts a dict that was produced by `serialize` back into a EventContext. @@ -162,6 +161,7 @@ class EventContext(object): context._prev_state_id = input["prev_state_id"] context._event_type = input["event_type"] context._event_state_key = input["event_state_key"] + context._fetching_state_deferred = None context.state_group = input["state_group"] context.prev_group = input["prev_group"] @@ -174,7 +174,7 @@ class EventContext(object): if app_service_id: context.app_service = store.get_app_service_by_id(app_service_id) - defer.returnValue(context) + return context @defer.inlineCallbacks def get_current_state_ids(self, store):