summary refs log tree commit diff
path: root/synapse/storage/stream.py
diff options
context:
space:
mode:
authorMark Haines <mark.haines@matrix.org>2014-08-26 14:31:48 +0100
committerMark Haines <mark.haines@matrix.org>2014-08-26 14:36:03 +0100
commit4b2ad549d5a1dcf5c05f890c0383626d6c042fd0 (patch)
tree8aec582555ff9c4551cfd50c3808ab6f313ac4bf /synapse/storage/stream.py
parentTake a snapshot of the state of the room before performing updates (diff)
downloadsynapse-4b2ad549d5a1dcf5c05f890c0383626d6c042fd0.tar.xz
Move the event storage into a single transaction
Diffstat (limited to '')
-rw-r--r--synapse/storage/stream.py13
1 files changed, 8 insertions, 5 deletions
diff --git a/synapse/storage/stream.py b/synapse/storage/stream.py
index e994017bf2..7460bf28d7 100644
--- a/synapse/storage/stream.py
+++ b/synapse/storage/stream.py
@@ -283,17 +283,20 @@ class StreamStore(SQLBaseStore):
             )
         )
 
-    @defer.inlineCallbacks
     def get_room_events_max_id(self):
-        res = yield self._execute_and_decode(
+        return self._db_pool.runInteraction(self._get_room_events_max_id_txn)
+
+    def _get_room_events_max_id_txn(self, txn):
+        txn.execute(
             "SELECT MAX(stream_ordering) as m FROM events"
         )
 
+        res = self.cursor_to_dict(txn)
+
         logger.debug("get_room_events_max_id: %s", res)
 
         if not res or not res[0] or not res[0]["m"]:
-            defer.returnValue("s1")
-            return
+            return "s1"
 
         key = res[0]["m"] + 1
-        defer.returnValue("s%d" % (key,))
+        return "s%d" % (key,)