Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Commit

Permalink
Revert "Use sortedcontainers instead of blist"
Browse files Browse the repository at this point in the history
This reverts commit 9fbe70a.

It turns out that sortedcontainers.SortedDict is not an exact match for
blist.sorteddict; in particular, `popitem()` removes things from the opposite
end of the dict.

This is trivial to fix, but I want to add some unit tests, and potentially some
more thought about it, before we do so.
  • Loading branch information
richvdh committed Apr 13, 2018
1 parent d5c74b9 commit d3347ad
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 10 deletions.
14 changes: 7 additions & 7 deletions synapse/federation/send_queue.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
from synapse.util.metrics import Measure
import synapse.metrics

from sortedcontainers import SortedDict
from blist import sorteddict
from collections import namedtuple

import logging
Expand All @@ -56,19 +56,19 @@ def __init__(self, hs):
self.is_mine_id = hs.is_mine_id

self.presence_map = {} # Pending presence map user_id -> UserPresenceState
self.presence_changed = SortedDict() # Stream position -> user_id
self.presence_changed = sorteddict() # Stream position -> user_id

self.keyed_edu = {} # (destination, key) -> EDU
self.keyed_edu_changed = SortedDict() # stream position -> (destination, key)
self.keyed_edu_changed = sorteddict() # stream position -> (destination, key)

self.edus = SortedDict() # stream position -> Edu
self.edus = sorteddict() # stream position -> Edu

self.failures = SortedDict() # stream position -> (destination, Failure)
self.failures = sorteddict() # stream position -> (destination, Failure)

self.device_messages = SortedDict() # stream position -> destination
self.device_messages = sorteddict() # stream position -> destination

self.pos = 1
self.pos_time = SortedDict()
self.pos_time = sorteddict()

# EVERYTHING IS SAD. In particular, python only makes new scopes when
# we make a new function, so we need to make a new function so the inner
Expand Down
2 changes: 1 addition & 1 deletion synapse/python_dependencies.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@
"bcrypt": ["bcrypt>=3.1.0"],
"pillow": ["PIL"],
"pydenticon": ["pydenticon"],
"blist": ["blist"],
"pysaml2>=3.0.0": ["saml2>=3.0.0"],
"sortedcontainers": ["sortedcontainers"],
"pymacaroons-pynacl": ["pymacaroons"],
"msgpack-python>=0.3.0": ["msgpack"],
"phonenumbers>=8.2.0": ["phonenumbers"],
Expand Down
4 changes: 2 additions & 2 deletions synapse/util/caches/stream_change_cache.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
from synapse.util.caches import register_cache, CACHE_SIZE_FACTOR


from sortedcontainers import SortedDict
from blist import sorteddict
import logging


Expand All @@ -35,7 +35,7 @@ class StreamChangeCache(object):
def __init__(self, name, current_stream_pos, max_size=10000, prefilled_cache={}):
self._max_size = int(max_size * CACHE_SIZE_FACTOR)
self._entity_to_key = {}
self._cache = SortedDict()
self._cache = sorteddict()
self._earliest_known_stream_pos = current_stream_pos
self.name = name
self.metrics = register_cache(self.name, self._cache)
Expand Down

0 comments on commit d3347ad

Please sign in to comment.