mirror of
https://git.anonymousland.org/anonymousland/synapse-product.git
synced 2025-01-29 22:13:26 -05:00
Use READ COMMITTED isolation level when inserting read receipts (#12957)
This commit is contained in:
parent
dd2d66b0c9
commit
04ca3a52f6
1
changelog.d/12957.misc
Normal file
1
changelog.d/12957.misc
Normal file
@ -0,0 +1 @@
|
|||||||
|
Use lower isolation level when inserting read receipts to avoid serialization errors. Contributed by Nick @ Beeper.
|
@ -36,6 +36,7 @@ from synapse.storage.database import (
|
|||||||
LoggingTransaction,
|
LoggingTransaction,
|
||||||
)
|
)
|
||||||
from synapse.storage.engines import PostgresEngine
|
from synapse.storage.engines import PostgresEngine
|
||||||
|
from synapse.storage.engines._base import IsolationLevel
|
||||||
from synapse.storage.util.id_generators import (
|
from synapse.storage.util.id_generators import (
|
||||||
AbstractStreamIdTracker,
|
AbstractStreamIdTracker,
|
||||||
MultiWriterIdGenerator,
|
MultiWriterIdGenerator,
|
||||||
@ -764,6 +765,10 @@ class ReceiptsWorkerStore(SQLBaseStore):
|
|||||||
linearized_event_id,
|
linearized_event_id,
|
||||||
data,
|
data,
|
||||||
stream_id=stream_id,
|
stream_id=stream_id,
|
||||||
|
# Read committed is actually beneficial here because we check for a receipt with
|
||||||
|
# greater stream order, and checking the very latest data at select time is better
|
||||||
|
# than the data at transaction start time.
|
||||||
|
isolation_level=IsolationLevel.READ_COMMITTED,
|
||||||
)
|
)
|
||||||
|
|
||||||
# If the receipt was older than the currently persisted one, nothing to do.
|
# If the receipt was older than the currently persisted one, nothing to do.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user