-
Type: Bug
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Sharding
-
Fully Compatible
-
ALL
-
Sharding 2021-02-22, Sharding 2021-03-08, Sharding 2021-03-22, Sharding 2021-04-05
-
0
-
1
Splitting this off from SERVER-53678 because the change is more involved.
getDestinedRecipient() is called by OpObserverImpl for all write operations and returns boost::none when there isn't an ongoing resharding operation. Making it so CollectionShardingState::get() and CollectionShardingState::getCollectionDescription() are only called once for each OpObserverImpl::onInserts() call (all of the inserts are to the same collection) would likely address this performance regression. It may be worth noting that OpObserverShardingImpl::shardObserveInsertOp() calls CollectionShardingRuntime::get() once per document being inserted too so addressing both interfaces could be a net performance win.
- is caused by
-
SERVER-49822 Add destined recipient to oplog entries from inserts
- Closed
- is related to
-
SERVER-53678 No-op for filling in destined recipient for insert oplog entries adds overhead on non-shardsvrs
- Closed
- related to
-
SERVER-57666 Convert getDestinedRecipient() in resharding_util to be a class method
- Closed
-
SERVER-58918 Replace getDestinedRecipient() in the code-base with calls into the ReshardingDonorWriteRouter object
- Closed
-
SERVER-75787 remove std::function reference from repl::logInsertOps
- Closed