[SERVER-72431] Make the commit of split chunks idempotent Created: 29/Dec/22  Updated: 06/Feb/24

Status: In Code Review
Project: Core Server
Component/s: None
Affects Version/s: 4.4.0, 5.0.0, 6.0.0, 7.1.0-rc0, 7.0.0-rc4
Fix Version/s: None

Type: Bug Priority: Major - P3
Reporter: Silvia Surroca Assignee: Yujin Kang Park
Resolution: Unresolved Votes: 0
Labels: 12/12
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
Assigned Teams:
Catalog and Routing
Sprint: Sharding EMEA 2023-05-15, CAR Team 2024-01-22, CAR Team 2024-02-05, CAR Team 2024-02-19
Participants:
Linked BF Score: 5
Story Points: 3

 Description   

The split command may return an error to the user when the execution succeeds.

That's an example:

  • User sends split command to the router.
  • Router processes the user info and gets the chunk range to be splitted and the split points.
  • Router sends _configsvrCommitChunkSplit command to the config server with the info processed.
  • Config server succeeds but the router doesn't receive the response.
  • Router retries _configsvrCommitChunkSplit command.
  • Config server returns an error because it can't find a chunk within the given range since it was already splitted. (v6.0 sends another error, but the result is the same).
  • Router returns an error to the user.

 

To enable idempotency on _configsvrCommitChunkSplit a check should be placed on the split commit: first check if a chunk with the given range exists, if not, check if there are chunks with the given split points as boundaries.

 



 Comments   
Comment by Silvia Surroca [ 09/Jun/23 ]

tommaso.tocci@mongodb.com I've updated the description with clearer information.

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