-
Type:
Task
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Query Execution
-
Fully Compatible
-
QE 2026-06-22
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Summary
Implement the universal fallback executor: the existing routed lookup mechanism (a routed match on the documentKey via MongoProcessInterface::lookupSingleDocument) wrapped behind the SingleDocumentLookupExecutor interface. This is the correctness floor every fast path can decline to.
Scope
- AggregationSingleDocumentLookupExecutor in src/mongo/db/exec/agg/single_doc_lookup/aggregation_single_document_lookup_executor.h / .cpp.
- Yields all locks before routing (the single lock-free routing site).
- Builds a majority readConcern with afterClusterTime only when routing, and none when afterClusterTime is absent.
- Always returns kHandledFound or kHandledNotFound, never kNotHandled, so a PrimaryWithFallback chain always resolves.
Acceptance criteria
- Unit tests for found / not-found outcomes and readConcern construction (present iff afterClusterTime is present).
- Depends on the SingleDocumentLookupExecutor interface ticket (
SERVER-128408).
- is related to
-
SERVER-128408 Introduce SingleDocumentLookupExecutor interface and PrimaryWithFallback combinator
-
- Closed
-
- related to
-
SERVER-129513 Record updateLookup metrics from the Aggregation lookup executor
-
- Backlog
-
-
SERVER-128410 Route ChangeStreamUpdateLookupStage through SingleDocumentLookupExecutor (Aggregation-only)
-
- Closed
-