-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Replication
-
Fully Compatible
-
Repl 2018-10-08, Repl 2018-10-22, Repl 2018-11-05, Repl 2018-11-19, Repl 2018-12-03, Repl 2018-12-17
-
62
Secondary application tends to acquire locks conservatively, for example, all commands acquire global write lock. This will conflict with prepared transactions. We can yield locks of transactions on secondary since the oplog should include no conflicting operations due to the concurrency control on primary.
An alternative solution is to have secondaries acquire the same locks as the primary, but yielding locks will also fix other issues, e.g. SERVER-38121
- causes
-
SERVER-38588 Hybrid index builds do not work when applied concurrently with prepared transactions on secondaries
- Closed
- is depended on by
-
SERVER-38282 Reacquire locks for transactions on step-up and release them on step-down
- Closed
- is duplicated by
-
SERVER-38121 multikey index ops in a transaction can cause secondaries to hang
- Closed
- is related to
-
SERVER-37313 FTDC collection blocked during foreground index build on secondary
- Closed
- related to
-
SERVER-37336 Test that background index build do not block on prepared transactions on secondaries
- Closed
-
SERVER-39372 Make secondary lock acquisition for DDL operations consistent with behavior on primary
- Closed
-
SERVER-40723 Deadlock between S lock acquisition on secondary and prepare conflict
- Closed
-
SERVER-39424 Test that DDL operations can't succeed after prepared transactions are aborted during shutdown
- Closed
-
SERVER-37988 recover locks on step up at the beginning of the state transition rather than at the end
- Closed