-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: 8.3.0-rc0
-
Component/s: None
-
None
-
Catalog and Routing
-
🟦 Shard Catalog
-
None
-
None
-
None
-
None
-
None
-
None
The viewless timeseries upgrade/downgrade, as implemented by SERVER-114830 / SERVER-114505, must lock both the main(view) and buckets namespaces.
Viewful timeseries collections don't generally follow the canonical locking order (increasing ResourceId), so to preclude deadlocks, we set a lock deadline (30s) and an indefinite retry loop when acquiring the locks.
Usually the loop will quickly succeed, but in general the loop may end up taking a long time to succeed (e.g. in a cluster busy with long running reads holding locks).
This ticket is to review if this could realistically happen, and if so implement a solution (e.g. make viewful timeseries collections follow the canonical locking order, bubble up the error, expand the deadline, kill conflicting operations: SERVER-106990, unify buckets-view lock: SERVER-99646, etc.).
- is related to
-
SERVER-106990 Make ShardingRecoveryService::acquireRecoverableCriticalSectionBlockWrite support aborting unprepared transactions in between enqueuing lock request for collection X lock and acquiring the lock
-
- Blocked
-
-
SERVER-114505 Basic support for viewless timeseries upgrade/downgrade in replica sets
-
- Closed
-
-
SERVER-114830 Implement viewless timeseries upgrade/downgrade in the shard catalog
-
- Closed
-
-
SERVER-99646 Unify collection locks for the timeseries view and buckets namespaces
-
- Backlog
-