-
Type: Improvement
-
Resolution: Won't Fix
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Sharding
-
Sharding
(Old title: Allow finer grained control of coordinator re-creation on step-up)
On step-up, we launch an asynchronous task to read all documents from the coordinators collection and recreate new TransactionCoordinator objects in memory for each document to continue the commit process for that transaction where it left off. Currently, all operations that access the TransactionCoordinatorCatalog during this time block until this process is complete. This means that all operations that attempt to create a new transaction or to commit an existing transaction will block behind that process, which could be time-consuming since it requires a full collection scan. We should probably benchmark how long that will be expected to take, and if necessary, improve the concurrency mechanism around creating new coordinators on step-up.