-
Type:
Task
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Cluster Scalability
-
Fully Compatible
-
CAR Team 2026-04-27, CAR Team 2026-05-11, CAR Team 2026-05-25, CAR Team 2026-06-08, CAR Team 2026-06-22, ClusterScalability 22Jun-6Jul, ClusterScalability 6Jul-20Jul
-
200
-
🟥 DDL
-
None
-
None
-
None
-
None
-
None
-
None
Overview
Add a concurrency (FSM) workload that runs every chunk operation (moveChunk, splitChunk, mergeChunks, mergeAllChunksOnShard) and basic CRUD (insert, update, remove, find) concurrently on the same sharded collection, to verify they coexist without deadlocks, invariant violations, or unexpected failures under contention.
Background
Today no single FSM workload exercises all four chunk operations together, and none exercises mergeAllChunksOnShard under concurrency at all. Existing coverage is scattered: collection_defragmentation.js covers moveChunk + splitChunks + mergeChunks without CRUD; the random_moveChunk family covers moveChunk + CRUD but no split/merge; and the per-op sharded_*Chunk_partitioned workloads each cover only one chunk op. Filling this gap gives us a single stress surface for serialization and coexistence between chunk DDL and data plane operations.
Scope of Work
* jstests/concurrency/fsm_workloads/sharded_partitioned/sharded_chunk_operations_with_crud_partitioned.js — new workload extending sharded_base_partitioned.js. Each thread owns a disjoint _id range; the lower half is pre-populated at setup for update/find, the upper half is free space for insert/remove. Thread 0 additionally issues mergeAllChunksOnShard (the only op not scoped to a thread partition).
* No production code changes. No BUILD.bazel edits needed — the enclosing package uses a glob to discover workload files.
Acceptance Criteria
* The workload runs in the standard sharding concurrency resmoke suites and passes.
* All 8 states (4 chunk ops + 4 CRUD) are reachable from the uniform transition table.
* Expected contention errors are tolerated by the helper wrappers (ConflictingOperationInProgress, LockBusy); unexpected errors still fail the test.
Technical Notes
* Extends jstests/concurrency/fsm_workloads/sharded_partitioned/sharded_base_partitioned.js.
* Reuses ChunkHelper wrappers from jstests/concurrency/fsm_workload_helpers/chunks.js for split/move/merge with the existing contention-tolerance behaviour.
* mergeAllChunksOnShard is partition-global, so it runs on a single thread to avoid cross-thread data-invariant noise while still exercising the op concurrently with other threads' chunk ops.
- fixes
-
SERVER-125470 Move chunks.js into fsm_workload_helpers/cluster_scalability directory
-
- Closed
-
-
SERVER-125469 Move chunks.js into fsm_workload_helpers/cluster_scalability/
-
- Closed
-