Details
-
Task
-
Resolution: Fixed
-
Major - P3
-
None
-
None
-
None
-
Fully Compatible
-
Server Serverless 2022-05-16, Server Serverless 2022-05-30
Description
The technical design says we will create a benchmark of the critical section of the shard split operation in order to possibly optimize the implement in future work. Confer with the performance team to write a benchmark measuring the critical section.
Phases
- Start of the shard split
- Log line "Starting shard split"
- Right before writes are blocked by the tenant access blocker
- Application of the split config
- Log line "Applying split config"
- When `replSetReconfig` is called with the split config
- End of the shard split
- Log line "Shard split completed"
- When the `DurableState` is created to be returned and fulfill `decisionPromise`
- End of the shard split (without `replSetStepUp`)
- Log line "Shard split completed"
- When the `DurableState` is created to be returned and fulfill `decisionPromise`
- Sending of `replSetStepUp` is disabled, the split completes as soon as all recipient nodes have joined the set (a primary may not have been elected yet)
Result
Data on top of master c6c59ecba6a2c85ad93d2f985f69a9f53d0f19da by running the test locally on evergreen workstation. Incertitude is one standard deviation with 10 repetition of a shard split.
| End of the shard split | End of the shard split (without replSetStepUp) | |
|---|---|---|
| Start of the shard split | 3.55s ± 0.03 | |
| Applying split config | 2.07s ± 0.02 | 2.05s ± 0.02 |