-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Query Execution
-
None
-
None
-
None
-
None
-
None
-
None
-
None
MongoProcessInterface (src/mongo/db/pipeline/process_interface/mongo_process_interface.h) is 820 lines with 68 virtual methods, owned by 10gen/query-optimization via src/mongo/db/pipeline/OWNERS.yml. Every change requires QO review, including methods maintained day-to-day by QE and QI.
A class declaration does not require all method definitions in one translation unit, so ownership can be routed without touching the header. Leave the header untouched and split the implementation files, adding per-file OWNERS.yml entries:
- Split common_mongod_process_interface.cpp into _qe.cpp, _qo.cpp, _qi.cpp, and a smaller shared-infra file co-owned by all three teams.
- Apply the same split to shardsvr_process_interface.cpp and mongos_process_interface.cpp.
- Leave stubs and replica_set_node unsplit.
Each new file is a separate srcs entry in the existing cc_library target. No behavior change. Per-method assignments will be enumerated in the PR.
Signature changes in the header still route to the header owner. Splitting it into per-team pure-abstract mixins would close that gap and is a natural follow-up; this split is its prerequisite.