mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-02 14:06:02 -04:00
Make get_room_version use cached get_room_version_id. (#11808)
This commit is contained in:
parent
5f62a094de
commit
8e56a1b73c
3 changed files with 18 additions and 15 deletions
|
@ -42,6 +42,16 @@ logger = logging.getLogger(__name__)
|
|||
MAX_STATE_DELTA_HOPS = 100
|
||||
|
||||
|
||||
def _retrieve_and_check_room_version(room_id: str, room_version_id: str) -> RoomVersion:
|
||||
v = KNOWN_ROOM_VERSIONS.get(room_version_id)
|
||||
if not v:
|
||||
raise UnsupportedRoomVersionError(
|
||||
"Room %s uses a room version %s which is no longer supported"
|
||||
% (room_id, room_version_id)
|
||||
)
|
||||
return v
|
||||
|
||||
|
||||
# this inherits from EventsWorkerStore because it calls self.get_events
|
||||
class StateGroupWorkerStore(EventsWorkerStore, SQLBaseStore):
|
||||
"""The parts of StateGroupStore that can be called from workers."""
|
||||
|
@ -62,11 +72,8 @@ class StateGroupWorkerStore(EventsWorkerStore, SQLBaseStore):
|
|||
Typically this happens if support for the room's version has been
|
||||
removed from Synapse.
|
||||
"""
|
||||
return await self.db_pool.runInteraction(
|
||||
"get_room_version_txn",
|
||||
self.get_room_version_txn,
|
||||
room_id,
|
||||
)
|
||||
room_version_id = await self.get_room_version_id(room_id)
|
||||
return _retrieve_and_check_room_version(room_id, room_version_id)
|
||||
|
||||
def get_room_version_txn(
|
||||
self, txn: LoggingTransaction, room_id: str
|
||||
|
@ -82,15 +89,7 @@ class StateGroupWorkerStore(EventsWorkerStore, SQLBaseStore):
|
|||
removed from Synapse.
|
||||
"""
|
||||
room_version_id = self.get_room_version_id_txn(txn, room_id)
|
||||
v = KNOWN_ROOM_VERSIONS.get(room_version_id)
|
||||
|
||||
if not v:
|
||||
raise UnsupportedRoomVersionError(
|
||||
"Room %s uses a room version %s which is no longer supported"
|
||||
% (room_id, room_version_id)
|
||||
)
|
||||
|
||||
return v
|
||||
return _retrieve_and_check_room_version(room_id, room_version_id)
|
||||
|
||||
@cached(max_entries=10000)
|
||||
async def get_room_version_id(self, room_id: str) -> str:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue