-
Type: Improvement
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Fully Compatible
-
Execution Team 2023-05-29, Execution Team 2023-06-12
OpObserverShardingImpl inherits from OpObserverImpl, yet doesn't override any methods, it also has OpObserverImpl (its parent) aware of and calling into child methods. This breaks many aspects of good design and modularity.
For sharded nodes, OpObserverImpl should be registered and perform its usual behavior explicitly.
For the few actual dependencies on OpTime acquisition in OpObserverImpl, OpObserverImpl will call into OpObserverShardingImpl which will no longer be a child class.
- depends on
-
SERVER-76369 Accumulate state among early OpObservers
- Closed
- is related to
-
SERVER-74121 Streamline logical branches in opObserverImpl::onUpdate
- Backlog
-
SERVER-49086 Fail with MovePrimaryInProgress error in insert, update and delete commands
- Closed
-
SERVER-36084 Remove sharding runtime from embedded
- Closed
- related to
-
SERVER-66612 Split up OpObserverImpl
- Open
-
SERVER-77121 move OpObserverShardingImpl::isMigrating() to MigrationSourceManager
- Closed
-
SERVER-77157 move OpObserverShardingImpl::assertIntersectingChunkHasNotMoved() to MigrationChunkClonerSourceOpObserver
- Closed
-
SERVER-77258 move assertNoMovePrimaryInProgress() to MigrationChunkClonerSourceOpObserver
- Closed
-
SERVER-77284 move OpObserverShardingImpl multi-doc transaction logic to MigrationChunkClonerSourceOpObserver
- Closed
-
SERVER-77366 add OpAccumulator to OpObserver::aboutToDelete()
- Closed
-
SERVER-77418 restrict ShardingWriteRouter scope in OpObserverImpl::aboutToDelete()
- Closed
-
SERVER-77482 move OpObserverShardingImpl::shardObserveDeleteOp() logic to MigrationChunkClonerSourceOpObserver
- Closed
-
SERVER-77484 migrate OperationContext decorations to OplogDeleteEntryArgs for delete operations
- Closed
-
SERVER-77731 merge OpStateAccumulator and InsertsOpStateAccumulator in OpObserver interface
- Closed