Browse Source

Add find_first_stream_ordering_after_ts

Expose this as a public function which can be called outside a txn
tags/v0.27.0-rc1
Richard van der Hoff 6 years ago
parent
commit
06a14876e5
1 changed files with 21 additions and 0 deletions
  1. +21
    -0
      synapse/storage/event_push_actions.py

+ 21
- 0
synapse/storage/event_push_actions.py View File

@@ -489,6 +489,27 @@ class EventPushActionsWorkerStore(SQLBaseStore):
self.stream_ordering_day_ago
)

def find_first_stream_ordering_after_ts(self, ts):
"""Gets the stream ordering corresponding to a given timestamp.

Specifically, finds the stream_ordering of the first event that was
received after the timestamp. This is done by a binary search on the
events table, since there is no index on received_ts, so is
relatively slow.

Args:
ts (int): timestamp in millis

Returns:
Deferred[int]: stream ordering of the first event received after
the timestamp
"""
return self.runInteraction(
"_find_first_stream_ordering_after_ts_txn",
self._find_first_stream_ordering_after_ts_txn,
ts,
)

def _find_first_stream_ordering_after_ts_txn(self, txn, ts):
"""
Find the stream_ordering of the first event that was received after


Loading…
Cancel
Save