Revisit fixedBucketing behavior when $out rewrites an existing timeseries collection

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Catalog and Routing
    • 🟥 DDL
    • None
    • None
    • None
    • None
    • None
    • None

      Background:

      When $out targets an existing viewless timeseries collection, the current implementation strips fixedBucketing from the snapshot options before creating the temporary collection. The primary reason is FCV downgrades: during a downgrade the collection transitions from viewless to viewful (legacy), and viewful timeseries don't accept the fixedBucketing parameter. Without stripping, attempting to create a viewful temp collection with fixedBucketing in the options would fail with InvalidOptions. By stripping it, the temp collection is created cleanly and the defaulting logic applies.

      A side effect is that $out always produces a collection with fixedBucketing: true (the default for new viewless collections), even if the target collection previously had fixedBucketing: false. This is a silent semantic change.

      Decision needed:

      Once featureFlagFixedBucketingCatalog is removed (SERVER-127534) and FCV < 9.0 is no longer
      supported, the FCV-downgrade justification for stripping goes away. At that point, decide whether:

      1. Keep stripping: $out always produces fixedBucketing: true. Simple, consistent.
      2. Preserve target value: Plumb the target's fixedBucketing value through temp collection
        creation, avoiding the silent change from false to true.

      Affects: src/mongo/db/exec/agg/out_stage.cpp (createTemporaryCollection)

      See also: SERVER-126823, SERVER-127534

      Github conversation:

            Assignee:
            Unassigned
            Reporter:
            Daniele Alessandrelli
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: