diff options
author | Erik Johnston <erik@matrix.org> | 2016-06-27 14:52:08 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2016-06-27 15:10:39 +0100 |
commit | 4b7abedfd984b099f1a00452246aa7816dede7dc (patch) | |
tree | 288406b41d18aaffffae9bca974bfef04a047c8c | |
parent | Use cbor (diff) | |
download | synapse-4b7abedfd984b099f1a00452246aa7816dede7dc.tar.xz |
Comments
-rw-r--r-- | synapse/handlers/sync.py | 15 | ||||
-rw-r--r-- | synapse/rest/client/v2_alpha/sync.py | 5 | ||||
-rw-r--r-- | synapse/storage/stream.py | 10 |
3 files changed, 18 insertions, 12 deletions
diff --git a/synapse/handlers/sync.py b/synapse/handlers/sync.py index 3c6f2fe989..0c88a10ba6 100644 --- a/synapse/handlers/sync.py +++ b/synapse/handlers/sync.py @@ -47,6 +47,7 @@ class SyncPaginationConfig(collections.namedtuple("SyncPaginationConfig", [ "limit", "tags", ])): + "Initial pagination configuration from initial sync." def __init__(self, order, limit, tags): if order not in SYNC_PAGINATION_VALID_ORDERS: raise SynapseError(400, "Invalid 'order'") @@ -838,6 +839,8 @@ class SyncHandler(object): for r in room_entries: if r.room_id in missing_state: if include_all_tags: + # If we're always including tagged rooms, then only + # resync rooms which are newly tagged. change = tag_changes.get(r.room_id) if change == TAG_CHANGE_NEWLY_TAGGED: r.always_include = True @@ -908,13 +911,11 @@ class SyncHandler(object): _, bottom_ts = cutoff_list[-1] new_pagination_value = bottom_ts - logger.info("old pagination value: %r", old_pagination_value) - logger.info("New pagination value: %r", new_pagination_value) - - # Are there any rooms that fall into the range between the - # old and new value? + # We're limited if there are any rooms that are after cutoff + # in the list, but still have an origin server ts from after + # the pagination value from the since token. limited = any( - old_pagination_value < r[1] < new_pagination_value + old_pagination_value < r[1] for r in sorted_list[pagination_limit + extra_limit:] ) @@ -924,7 +925,7 @@ class SyncHandler(object): tags=pagination_config.tags, ) - to_sync_map = {key: value for key, value in cutoff_list} + to_sync_map = dict(cutoff_list) else: to_sync_map = {} diff --git a/synapse/rest/client/v2_alpha/sync.py b/synapse/rest/client/v2_alpha/sync.py index e20a9ef317..693b1bad07 100644 --- a/synapse/rest/client/v2_alpha/sync.py +++ b/synapse/rest/client/v2_alpha/sync.py @@ -98,11 +98,8 @@ class SyncRestServlet(RestServlet): body = parse_json_object_from_request(request) timeout = body.get("timeout", 0) - since = body.get("since", None) - logger.info("Since: %r", since) - extras = body.get("extras", {}) extras = SyncExtras( paginate=extras.get("paginate", {}), @@ -177,8 +174,6 @@ class SyncRestServlet(RestServlet): extras=extras, ) - logger.info("next_batch: %r", sync_result[1]["next_batch"]) - defer.returnValue(sync_result) @defer.inlineCallbacks diff --git a/synapse/storage/stream.py b/synapse/storage/stream.py index ada20706dc..434adf9a17 100644 --- a/synapse/storage/stream.py +++ b/synapse/storage/stream.py @@ -526,6 +526,16 @@ class StreamStore(SQLBaseStore): ) def get_last_event_id_ts_for_room(self, room_id, token): + """Get the latest event_id and origin_server_ts for a room_id before a + given token. + + Args: + room_id (str) + token (str) + + Returns: + Dictionary with ``event_id`` and ``origin_server_ts`` keys. + """ stream_ordering = RoomStreamToken.parse_stream_token(token).stream sql = ( |