0
0
Fork 1
mirror of https://mau.dev/maunium/synapse.git synced 2024-12-15 03:43:51 +01:00

Merge pull request #542 from matrix-org/erikj/cache_fix

Cache fixes
This commit is contained in:
Erik Johnston 2016-01-29 16:54:34 +00:00
commit 226a9a5fa6
2 changed files with 7 additions and 8 deletions

View file

@ -157,6 +157,10 @@ class AccountDataStore(SQLBaseStore):
"content": content_json, "content": content_json,
} }
) )
txn.call_after(
self._account_data_stream_cache.entity_has_changed,
user_id, next_id,
)
self._update_max_stream_id(txn, next_id) self._update_max_stream_id(txn, next_id)
with (yield self._account_data_id_gen.get_next(self)) as next_id: with (yield self._account_data_id_gen.get_next(self)) as next_id:

View file

@ -52,15 +52,10 @@ class StreamChangeCache(object):
cache_counter.inc_misses(self.name) cache_counter.inc_misses(self.name)
return True return True
if stream_pos == self._earliest_known_stream_pos:
# If the same as the earliest key, assume nothing has changed.
cache_counter.inc_hits(self.name)
return False
latest_entity_change_pos = self._entity_to_key.get(entity, None) latest_entity_change_pos = self._entity_to_key.get(entity, None)
if latest_entity_change_pos is None: if latest_entity_change_pos is None:
cache_counter.inc_misses(self.name) cache_counter.inc_hits(self.name)
return True return False
if stream_pos < latest_entity_change_pos: if stream_pos < latest_entity_change_pos:
cache_counter.inc_misses(self.name) cache_counter.inc_misses(self.name)
@ -98,7 +93,7 @@ class StreamChangeCache(object):
if stream_pos > self._earliest_known_stream_pos: if stream_pos > self._earliest_known_stream_pos:
old_pos = self._entity_to_key.get(entity, None) old_pos = self._entity_to_key.get(entity, None)
if old_pos: if old_pos is not None:
stream_pos = max(stream_pos, old_pos) stream_pos = max(stream_pos, old_pos)
self._cache.pop(old_pos, None) self._cache.pop(old_pos, None)
self._cache[stream_pos] = entity self._cache[stream_pos] = entity