-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Storage Execution
-
Storage Execution 2025-03-31, Storage Execution 2025-04-14
-
None
-
None
-
None
-
None
-
None
-
None
-
None
There have been several assumptions that we relied on in the time-series write path that we did not explicitly enforce, and that we ended up running into issues as a result of.
For example, we relied on there being only one open bucket per metadata in the bucket catalog, but found this to not be true and fixed it in SERVER-89990.
We relied on the control.min time value of a bucket never changing when we used it as a shard key and when we used the control.min time value as the key for the map of archived buckets. We found this wasn't true in SERVER-94559.
We relied on [control.min time, control.min time + bucket max span] = [timestamp embedded in id, embedded timestamp + bucket max span], but found this to not be true inĀ SERVER-99527
It could be useful to perform an audit of other assumptions that we might currently be relying on without enforcing. If there are other such assumptions, we could add runtime, potentially debug-only checks/invariants, similar to the checks that were added in SERVER-89990 and SERVER-86937
This audit could be timeboxed to a week/sprint.