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

Time series bucket rollover can leave extra entries in in-memory set

    • Type: Icon: Bug Bug
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Storage Execution
    • Fully Compatible
    • ALL
    • v8.0, v7.3, v7.0
    • Execution Team 2024-05-13, Execution Team 2024-05-27, Execution Team 2024-06-10, Execution Team 2024-06-24, Execution Team 2024-07-08, Execution Team 2024-07-22, Execution Team 2024-08-05
    • 147

      When multiple threads are writing measurements with the same metaField value, the bucket catalog may maintain multiple buckets open in the in-memory set temporarily as a working set. It's supposed to be the case that all but one of these buckets is pending closure once the staged measurements are committed. However, under certain circumstances it's possible that we will open a new bucket without properly rolling over the open bucket, leading to multiple buckets in the set not marked as pending closure.

      While this does not cause any risk to correctness, it can hurt performance considerably for impacted workloads. While the direct effect of having a somewhat larger in-memory set is typically fairly minor, it can lead us to incorrectly attempt a query-based reopening and find a bucket which is already open, effectively wasting a significant amount of work.

            dan.larkin-york@mongodb.com Dan Larkin-York
            dan.larkin-york@mongodb.com Dan Larkin-York
            0 Vote for this issue
            3 Start watching this issue