diff options
author | Erik Johnston <erik@matrix.org> | 2016-06-03 17:12:48 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2016-06-03 17:22:13 +0100 |
commit | 05e01f21d7012c1853ff566c8a76aa66087bfbd7 (patch) | |
tree | 3819fa86bda6600ee616c361f336fba070f9e6d7 /synapse/storage/stream.py | |
parent | Merge branch 'release-v0.16.0' of github.com:matrix-org/synapse into develop (diff) | |
download | synapse-05e01f21d7012c1853ff566c8a76aa66087bfbd7.tar.xz |
Remove event fetching from DB threads
Diffstat (limited to 'synapse/storage/stream.py')
-rw-r--r-- | synapse/storage/stream.py | 34 |
1 files changed, 15 insertions, 19 deletions
diff --git a/synapse/storage/stream.py b/synapse/storage/stream.py index 95b12559a6..b9ad965fd6 100644 --- a/synapse/storage/stream.py +++ b/synapse/storage/stream.py @@ -132,29 +132,25 @@ class StreamStore(SQLBaseStore): return True return False - ret = self._get_events_txn( - txn, - # apply the filter on the room id list - [ - r["event_id"] for r in rows - if app_service_interested(r) - ], - get_prev_content=True - ) + return [r for r in rows if app_service_interested(r)] - self._set_before_and_after(ret, rows) + rows = yield self.runInteraction("get_appservice_room_stream", f) - if rows: - key = "s%d" % max(r["stream_ordering"] for r in rows) - else: - # Assume we didn't get anything because there was nothing to - # get. - key = to_key + ret = yield self._get_events( + [r["event_id"] for r in rows], + get_prev_content=True + ) - return ret, key + self._set_before_and_after(ret, rows, topo_order=from_id is None) - results = yield self.runInteraction("get_appservice_room_stream", f) - defer.returnValue(results) + if rows: + key = "s%d" % max(r["stream_ordering"] for r in rows) + else: + # Assume we didn't get anything because there was nothing to + # get. + key = to_key + + defer.returnValue((ret, key)) @defer.inlineCallbacks def get_room_events_stream_for_rooms(self, room_ids, from_key, to_key, limit=0, |