mirror of
https://git.anonymousland.org/anonymousland/synapse-product.git
synced 2024-09-08 00:41:55 +00:00
Merge pull request #3544 from matrix-org/erikj/fixup_stream_cache
Fix perf regression in PR #3530
This commit is contained in:
commit
c7320a5564
0
changelog.d/3544.misc
Normal file
0
changelog.d/3544.misc
Normal file
@ -74,12 +74,14 @@ class StreamChangeCache(object):
|
|||||||
assert type(stream_pos) is int
|
assert type(stream_pos) is int
|
||||||
|
|
||||||
if stream_pos >= self._earliest_known_stream_pos:
|
if stream_pos >= self._earliest_known_stream_pos:
|
||||||
result = {
|
changed_entities = {
|
||||||
self._cache[k] for k in self._cache.islice(
|
self._cache[k] for k in self._cache.islice(
|
||||||
start=self._cache.bisect_right(stream_pos),
|
start=self._cache.bisect_right(stream_pos),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
result = changed_entities.intersection(entities)
|
||||||
|
|
||||||
self.metrics.inc_hits()
|
self.metrics.inc_hits()
|
||||||
else:
|
else:
|
||||||
result = set(entities)
|
result = set(entities)
|
||||||
|
@ -178,6 +178,22 @@ class StreamChangeCacheTests(unittest.TestCase):
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Query a subset of the entries mid-way through the stream. We should
|
||||||
|
# only get back the subset.
|
||||||
|
self.assertEqual(
|
||||||
|
cache.get_entities_changed(
|
||||||
|
[
|
||||||
|
"bar@baz.net",
|
||||||
|
],
|
||||||
|
stream_pos=2,
|
||||||
|
),
|
||||||
|
set(
|
||||||
|
[
|
||||||
|
"bar@baz.net",
|
||||||
|
]
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
def test_max_pos(self):
|
def test_max_pos(self):
|
||||||
"""
|
"""
|
||||||
StreamChangeCache.get_max_pos_of_last_change will return the most
|
StreamChangeCache.get_max_pos_of_last_change will return the most
|
||||||
|
Loading…
Reference in New Issue
Block a user