From 4b2ad549d5a1dcf5c05f890c0383626d6c042fd0 Mon Sep 17 00:00:00 2001 From: Mark Haines Date: Tue, 26 Aug 2014 14:31:48 +0100 Subject: Move the event storage into a single transaction --- synapse/storage/stream.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'synapse/storage/stream.py') 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,) -- cgit 1.4.1