-
Type: Task
-
Resolution: Done
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Storage Execution
-
Fully Compatible
We create a copy of the CollectionCatalog when we need to modify it. This can be somewhat expensive when we have many collections. In some cases where we have a global exclusive lock, such as at startup, we can mitigate this by using batched writes. During steady state though, we can't use this batch processing. For some workloads, like creating many collections in sequence, this can have quadratic cost.
We could potentially reduce the cost of the CollectionCatalog copy so that it isn't linear in the number of collections by using persistent data structures. We already have a persistent map-like structure in our codebase--the radix tree used for EphemeralForTest. This could be used to, at the very least, do a quick POC and see if the idea warrants further work.
- is related to
-
SERVER-68674 Vendor an immutable/persistent data structure library
- Closed