diff options
author | Paul "LeoNerd" Evans <paul@matrix.org> | 2015-03-20 19:21:13 +0000 |
---|---|---|
committer | Paul "LeoNerd" Evans <paul@matrix.org> | 2015-03-20 19:21:13 +0000 |
commit | 72d84064094be60a907ca515739e2a4ea1af0bd5 (patch) | |
tree | 7531e5c68b8cfbf21a7d7f0289e1880d87cd9ed7 | |
parent | Remember the 'last seen' time for a given user/IP/device combination and only... (diff) | |
download | synapse-72d84064094be60a907ca515739e2a4ea1af0bd5.tar.xz |
Put a cache on get_aliases_for_room
Diffstat (limited to '')
-rw-r--r-- | synapse/storage/directory.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/synapse/storage/directory.py b/synapse/storage/directory.py index 6672752fe0..0199539fea 100644 --- a/synapse/storage/directory.py +++ b/synapse/storage/directory.py @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from ._base import SQLBaseStore +from ._base import SQLBaseStore, cached from synapse.api.errors import SynapseError @@ -106,14 +106,19 @@ class DirectoryStore(SQLBaseStore): }, desc="create_room_alias_association", ) + self.get_aliases_for_room.invalidate(room_id) + @defer.inlineCallbacks def delete_room_alias(self, room_alias): - return self.runInteraction( + room_id = yield self.runInteraction( "delete_room_alias", self._delete_room_alias_txn, room_alias, ) + self.get_aliases_for_room.invalidate(room_id) + defer.returnValue(room_id) + def _delete_room_alias_txn(self, txn, room_alias): cursor = txn.execute( "SELECT room_id FROM room_aliases WHERE room_alias = ?", @@ -138,6 +143,7 @@ class DirectoryStore(SQLBaseStore): return room_id + @cached() def get_aliases_for_room(self, room_id): return self._simple_select_onecol( "room_aliases", |