-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Storage Execution
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Overview
Surface featureFlagContinuousInternodeValidationPerDocument through the
rss::PersistenceProvider interface so consumers query a provider capability instead of the feature flag directly, and enable it for disaggregated (Atlas Infinite) storage.
Background
featureFlagContinuousInternodeValidationPerDocument (src/mongo/db/server_feature_flags.idl,
default false, fcv_gated) gates continuous per-document internode validation for Atlas Infinite nodes (SPM-4740). SERVER-128506 added the optional top-level oplog field h (per-document hash).
The flag is currently defined but not consumed anywhere. PersistenceProvider already exposes storage-backend capabilities (e.g. shouldUseReplicatedRecordIds(),
supportsCrossShardTransactions()), and the disaggregated provider gates several of these on feature flags via .isEnabled().
Scope of Work
- src/mongo/db/rss/persistence_provider.h — add capability method, e.g.
shouldUseContinuousInternodeValidationPerDocument(). - src/mongo/db/rss/attached_storage/attached_persistence_provider.cpp — return false.
- disaggregated_persistence_provider.cpp — return
gFeatureFlagContinuousInternodeValidationPerDocument.isEnabled() (mirrors
supportsCrossShardTransactions()). - src/mongo/db/rss/stub_persistence_provider.h — default + test setter.
- Route the per-document hash write/validate call sites through the new capability.
Acceptance Criteria
- Disagg nodes perform per-document validation only when the flag is enabled and FCV permits.
- Attached storage is unaffected.
- Unit tests cover the capability across all three providers.
Technical Notes
- Touches the write/oplog-apply hot path (per-document SHA256) — run a sys-perf patch.
- Flag is fcv_gated (v9.0); if it later becomes a hard disagg requirement, add it to
DisaggregatedPersistenceProvider::getMinimumRequiredFCV().
- is related to
-
SERVER-128506 Create a new optional top-level oplog entry field h (document hash)
-
- Closed
-