[SERVER-78415] Avoid sending unrelated operations from transactions to recipient shard during chunk migration Created: 23/Jun/23  Updated: 12/Dec/23

Status: Backlog
Project: Core Server
Component/s: Sharding
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major - P3
Reporter: Max Hirschhorn Assignee: Backlog - Cluster Scalability
Resolution: Unresolved Votes: 0
Labels: cs-subteam1, sharding-nyc-subteam1
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
is related to SERVER-78414 Recipient shard in chunk migration ca... Closed
is related to SERVER-40791 Chunk migration clone blocks behind p... Closed
Assigned Teams:
Cluster Scalability
Participants:

 Description   

LogTransactionOperationsForShardingHandler is the onCommit() handler registered for changes resulting from a multi-statement transaction to add those to the _transferMods buffer and eventually propagate them to the recipient shard. LogTransactionOperationsForShardingHandler will filter out changes made to a different namespace but won't filter out changes made to documents outside of the range being migrated. (There are helper functions isShardKeyValueInRange() and isDocInRange() for doing this kind of filtering.) Instead, the recipient shard will receive these change notifications and ignore them when applying changes. This is wasteful because it means a sharded collection under high transactions activity will have slower chunk migrations due to the volume of data the _transferMods command returns.


Generated at Thu Feb 08 06:38:18 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.