@cached() annotate get_user_by_token() - achieves a minor DB performance improvement
This commit is contained in:
parent
1489521ee5
commit
93978c5e2b
|
@ -388,7 +388,7 @@ class Auth(object):
|
||||||
AuthError if no user by that token exists or the token is invalid.
|
AuthError if no user by that token exists or the token is invalid.
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
ret = yield self.store.get_user_by_token(token=token)
|
ret = yield self.store.get_user_by_token(token)
|
||||||
if not ret:
|
if not ret:
|
||||||
raise StoreError(400, "Unknown token")
|
raise StoreError(400, "Unknown token")
|
||||||
user_info = {
|
user_info = {
|
||||||
|
|
|
@ -19,7 +19,7 @@ from sqlite3 import IntegrityError
|
||||||
|
|
||||||
from synapse.api.errors import StoreError, Codes
|
from synapse.api.errors import StoreError, Codes
|
||||||
|
|
||||||
from ._base import SQLBaseStore
|
from ._base import SQLBaseStore, cached
|
||||||
|
|
||||||
|
|
||||||
class RegistrationStore(SQLBaseStore):
|
class RegistrationStore(SQLBaseStore):
|
||||||
|
@ -91,6 +91,11 @@ class RegistrationStore(SQLBaseStore):
|
||||||
"get_user_by_id", self.cursor_to_dict, query, user_id
|
"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):
|
def get_user_by_token(self, token):
|
||||||
"""Get a user from the given access token.
|
"""Get a user from the given access token.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue