1
0

Use sorted dicts

Note that they are sorted in ascending size order, so this needs further touch-ups.
This commit is contained in:
Olivier Wilkinson (reivilibre)
2021-12-20 12:55:44 +00:00
parent efe0059b98
commit d9800c3f6f
+5 -2
View File
@@ -25,6 +25,7 @@ from typing import (
)
import attr
from sortedcontainers import SortedDict
from twisted.internet import defer
@@ -143,7 +144,7 @@ class StateGroupDataStore(StateBackgroundUpdateStore, SQLBaseStore):
# Current ongoing get_state_for_groups in-flight requests
# {group ID -> {StateFilter -> ObservableDeferred}}
self._state_group_inflight_requests: Dict[
int, Dict[StateFilter, ObservableDeferred[StateMap[str]]]
int, SortedDict[StateFilter, ObservableDeferred[StateMap[str]]]
] = {}
def get_max_state_group_txn(txn: Cursor) -> int:
@@ -371,7 +372,9 @@ class StateGroupDataStore(StateBackgroundUpdateStore, SQLBaseStore):
observable_deferred = ObservableDeferred(request_deferred)
# Insert the ObservableDeferred into the cache
group_request_dict = self._state_group_inflight_requests.setdefault(group, {})
group_request_dict = self._state_group_inflight_requests.setdefault(
group, SortedDict(state_filter_rough_size_comparator)
)
group_request_dict[db_state_filter] = observable_deferred
return await make_deferred_yieldable(observable_deferred.observe())