Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-101267

Audit time-series assumptions that we don't enforce

    • Type: Icon: Task Task
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 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.

            Assignee:
            damian.wasilewicz@mongodb.com Damian Wasilewicz
            Reporter:
            damian.wasilewicz@mongodb.com Damian Wasilewicz
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              None
              None
              None
              None