-
Type: Improvement
-
Resolution: Won't Do
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Storage Execution
-
Execution Team 2023-05-01
In the TS scalability project, we introduced bucket reopening. If we fetch a bucket that might be stale, we re-fetch the bucket and do so without bounds (especially dangerous if we continuously receive WriteConflict errors) see: [write_ops_exec.cpp:insertIntoBucketCatalog].
My suggestion is to cap the number of retries to something like 3. It's a bit arbitrary but I think it could still be beneficial to retry a few times before inserting into a new bucket. Otherwise, we should consider not returning WriteConflicts during the reopening process and insert into a new bucket upon a single reopening failure.
For context, this was surfaced through SERVER-73094 where we test concurrent multi-deletes and inserts into the same/overlapping buckets.
- depends on
-
SERVER-75094 Fix indefinite WriteConflict return when reopening buckets
- Closed