diff options
author | Erik Johnston <erik@matrix.org> | 2016-10-24 13:35:51 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2016-10-24 13:35:51 +0100 |
commit | d04e2ff3a43cca3f7d393a4770f022c7bf1a372c (patch) | |
tree | 272dbeb66fc94a830c874945522cb188d42403e1 /synapse/handlers/room.py | |
parent | Merge pull request #1177 from matrix-org/paul/standard-metric-names (diff) | |
download | synapse-d04e2ff3a43cca3f7d393a4770f022c7bf1a372c.tar.xz |
Fix incredubly slow back pagination query
If a client didn't specify a from token when paginating backwards synapse would attempt to query the (global) maximum topological token. This a) doesn't make much sense since they're room specific and b) there are no indices that lets postgres do this efficiently.
Diffstat (limited to 'synapse/handlers/room.py')
-rw-r--r-- | synapse/handlers/room.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/synapse/handlers/room.py b/synapse/handlers/room.py index a7f533f7be..59e4d1cd15 100644 --- a/synapse/handlers/room.py +++ b/synapse/handlers/room.py @@ -475,8 +475,11 @@ class RoomEventSource(object): defer.returnValue((events, end_key)) - def get_current_key(self, direction='f'): - return self.store.get_room_events_max_id(direction) + def get_current_key(self): + return self.store.get_room_events_max_id() + + def get_current_key_for_room(self, room_id): + return self.store.get_room_events_max_id(room_id) @defer.inlineCallbacks def get_pagination_rows(self, user, config, key): |