-
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:
- Keep stripping: $out always produces fixedBucketing: true. Simple, consistent.
- 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:
- is related to
-
SERVER-127534 Remove Feature Flag for SPM-4751
-
- Blocked
-
-
SERVER-126823 Set fixedBucketing to true by default on newly created timeseries collections
-
- In Code Review
-