mirror of
https://github.com/element-hq/synapse
synced 2024-09-04 00:50:10 +00:00
Fix get destinations to catch up query. (#9114)
t was doing a sequential scan on `destination_rooms`, which took minutes.
This commit is contained in:
parent
7036e24e98
commit
631dd06f2c
2 changed files with 12 additions and 13 deletions
1
changelog.d/9114.bugfix
Normal file
1
changelog.d/9114.bugfix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Fix bug in federation catchup logic that caused outbound federation to be delayed for large servers after start up. Introduced in v1.21.0.
|
|
@ -464,12 +464,10 @@ class TransactionStore(TransactionWorkerStore):
|
||||||
txn: LoggingTransaction, now_time_ms: int, after_destination: Optional[str]
|
txn: LoggingTransaction, now_time_ms: int, after_destination: Optional[str]
|
||||||
) -> List[str]:
|
) -> List[str]:
|
||||||
q = """
|
q = """
|
||||||
SELECT destination FROM destinations
|
SELECT DISTINCT destination FROM destinations
|
||||||
WHERE destination IN (
|
INNER JOIN destination_rooms USING (destination)
|
||||||
SELECT destination FROM destination_rooms
|
WHERE
|
||||||
WHERE destination_rooms.stream_ordering >
|
stream_ordering > last_successful_stream_ordering
|
||||||
destinations.last_successful_stream_ordering
|
|
||||||
)
|
|
||||||
AND destination > ?
|
AND destination > ?
|
||||||
AND (
|
AND (
|
||||||
retry_last_ts IS NULL OR
|
retry_last_ts IS NULL OR
|
||||||
|
|
Loading…
Reference in a new issue