diff options
author | Paul "LeoNerd" Evans <paul@matrix.org> | 2015-03-17 17:24:51 +0000 |
---|---|---|
committer | Paul "LeoNerd" Evans <paul@matrix.org> | 2015-03-17 17:24:51 +0000 |
commit | 93978c5e2beb22b097061e58182777e9c2257228 (patch) | |
tree | 7abf35f400a4f83f3534f22213641fc6c228b963 | |
parent | Be polite and ensure we use @functools.wraps() when creating a function decor... (diff) | |
download | synapse-93978c5e2beb22b097061e58182777e9c2257228.tar.xz |
@cached() annotate get_user_by_token() - achieves a minor DB performance improvement
-rw-r--r-- | synapse/api/auth.py | 2 | ||||
-rw-r--r-- | synapse/storage/registration.py | 7 |
2 files changed, 7 insertions, 2 deletions
diff --git a/synapse/api/auth.py b/synapse/api/auth.py index 90f9eb6847..64f605b962 100644 --- a/synapse/api/auth.py +++ b/synapse/api/auth.py @@ -388,7 +388,7 @@ class Auth(object): AuthError if no user by that token exists or the token is invalid. """ try: - ret = yield self.store.get_user_by_token(token=token) + ret = yield self.store.get_user_by_token(token) if not ret: raise StoreError(400, "Unknown token") user_info = { diff --git a/synapse/storage/registration.py b/synapse/storage/registration.py index adc8fc0794..3c2f1d6a15 100644 --- a/synapse/storage/registration.py +++ b/synapse/storage/registration.py @@ -19,7 +19,7 @@ from sqlite3 import IntegrityError from synapse.api.errors import StoreError, Codes -from ._base import SQLBaseStore +from ._base import SQLBaseStore, cached class RegistrationStore(SQLBaseStore): @@ -91,6 +91,11 @@ class RegistrationStore(SQLBaseStore): "get_user_by_id", self.cursor_to_dict, query, user_id ) + @cached() + # TODO(paul): Currently there's no code to invalidate this cache. That + # means if/when we ever add internal ways to invalidate access tokens or + # change whether a user is a server admin, those will need to invoke + # store.get_user_by_token.invalidate(token) def get_user_by_token(self, token): """Get a user from the given access token. |