Skip to content
Snippets Groups Projects
Commit bc8fa150 authored by Erik Johnston's avatar Erik Johnston
Browse files

Documentation

parent 92e6fb5c
No related branches found
No related tags found
No related merge requests found
...@@ -137,7 +137,6 @@ for each stream so that on reconneciton it can start streaming from the correct ...@@ -137,7 +137,6 @@ for each stream so that on reconneciton it can start streaming from the correct
place. Note: not all RDATA have valid tokens due to batching. See place. Note: not all RDATA have valid tokens due to batching. See
``RdataCommand`` for more details. ``RdataCommand`` for more details.
Example Example
~~~~~~~ ~~~~~~~
...@@ -221,3 +220,23 @@ SYNC (S, C) ...@@ -221,3 +220,23 @@ SYNC (S, C)
See ``synapse/replication/tcp/commands.py`` for a detailed description and the See ``synapse/replication/tcp/commands.py`` for a detailed description and the
format of each command. format of each command.
Cache Invalidation Stream
~~~~~~~~~~~~~~~~~~~~~~~~~
The cache invalidation stream is used to inform workers when they need to
invalidate any of their caches in the data store. This is done by streaming all
cache invalidations done on master down to the workers, assuming that any caches
on the workers also exist on the master.
Each individual cache invalidation results in a row being sent down replication,
which includes the cache name (the name of the function) and they key to
invalidate. For example::
> RDATA caches 550953771 ["get_user_by_id", ["@bob:example.com"], 1550574873251]
However, there are times when a number of caches need to be invalidated at the
same time with the same key. To reduce traffic we batch those invalidations into
a single poke by defining a special cache name that workers understand to mean
to expand to invalidate the correct caches.
...@@ -1199,8 +1199,8 @@ class SQLBaseStore(object): ...@@ -1199,8 +1199,8 @@ class SQLBaseStore(object):
Args: Args:
txn txn
room_id (str): Room were state changed room_id (str): Room where state changed
members_changed (set[str]): The user_ids of members that have changed members_changed (Iterable[str]): The user_ids of members that have changed
""" """
txn.call_after(self._invalidate_state_caches, room_id, members_changed) txn.call_after(self._invalidate_state_caches, room_id, members_changed)
...@@ -1215,7 +1215,7 @@ class SQLBaseStore(object): ...@@ -1215,7 +1215,7 @@ class SQLBaseStore(object):
not stream invalidations down replication. not stream invalidations down replication.
Args: Args:
room_id (str): Room were state changed room_id (str): Room where state changed
members_changed (set[str]): The user_ids of members that have changed members_changed (set[str]): The user_ids of members that have changed
""" """
for member in members_changed: for member in members_changed:
...@@ -1237,7 +1237,7 @@ class SQLBaseStore(object): ...@@ -1237,7 +1237,7 @@ class SQLBaseStore(object):
Args: Args:
txn txn
cache_name (str) cache_name (str)
keys (list[str]) keys (iterable[str])
""" """
if isinstance(self.database_engine, PostgresEngine): if isinstance(self.database_engine, PostgresEngine):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment