-
Type:
Improvement
-
Resolution: Fixed
-
Priority:
Minor - P4
-
Affects Version/s: None
-
Component/s: Sharding
-
Cluster Scalability
-
Fully Compatible
-
ClusterScalability 22Jun-6Jul
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Overview
reshardCollection translates the user-facing timeseries namespace (e.g. db.coll) to the internal bucket namespace (e.g. db.system.buckets.coll) transparently. However, abortReshardCollection and commitReshardCollection do not perform the same translation, requiring users to pass the internal bucket namespace to abort/commit an operation that was started with the user-facing namespace.
Background
Discovered during review of SERVER-126217. A user who runs:
db.adminCommand({ reshardCollection: "db.coll", key: { ... } })
must currently abort using the internal bucket namespace:
db.adminCommand({ abortReshardCollection: "db.system.buckets.coll" })
This leaks an internal implementation detail into the user-facing API and is inconsistent with the behavior of reshardCollection.
Scope of Work
- Investigate whether abortReshardCollection can perform the same user-facing-to-bucket-namespace translation as reshardCollection
- Discuss with the sharding team to align on the correct fix
- Update abortReshardCollection to accept the user-facing timeseries namespace
- Add or update tests to cover the corrected behavior
Acceptance Criteria
- abortReshardCollection: "db.coll" successfully aborts a timeseries resharding operation started with the user-facing namespace
- The internal bucket namespace is no longer required in user-facing abort commands