-
Type: Improvement
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Fully Compatible
-
Query Execution 2021-03-08, Query Execution 2021-03-22, Query Execution 2021-04-05, Query Execution 2021-05-17
The shard-side stages of a change stream are:
$_internalOplogMatch, $_internalChangeStreamTransform, $_internalCheckInvalidate, $_internalCheckResumability
In addition to adding serialization, all these stages except for $_internalChangeStreamTransform should have the
Privilege(ResourcePattern::forClusterResource(), ActionType::internal) in their requiredPrivileges. The requiredPrivileges for $_internalChangeStreamTransform should be the same as those provided by DocumentSourceChangeStream.
Note that all these must be added in one patch, so that the shard side of a decomposed $changeStream can be completely serialized and deserialized together.
- depends on
-
SERVER-54913 Create a LiteParse class for change stream internal stages
- Closed
- is depended on by
-
SERVER-55491 Make DocumentSourceUpdateOnAddShards as the first class member of the pipeline
- Closed
-
SERVER-55438 Move applyOps unwinding logic to its own internal pipeline stage
- Closed
-
SERVER-55534 Store original pipeline in DocumentSourceUpdateOnAddShard for dispatch to new shards
- Closed
-
SERVER-56872 Add optimization function to apply $match predicates on change streams events directly to oplog entry
- Closed
- is duplicated by
-
SERVER-54678 Updated explain format for internal change streams stages
- Closed
- related to
-
SERVER-54677 Serialization and deserialization for change streams lookup stages
- Closed