summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/config/sharding_catalog_manager_collection_operations.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/s/config/sharding_catalog_manager_collection_operations.cpp')
-rw-r--r--src/mongo/db/s/config/sharding_catalog_manager_collection_operations.cpp12
1 files changed, 4 insertions, 8 deletions
diff --git a/src/mongo/db/s/config/sharding_catalog_manager_collection_operations.cpp b/src/mongo/db/s/config/sharding_catalog_manager_collection_operations.cpp
index c996fa00c85..d35fa7f6ec1 100644
--- a/src/mongo/db/s/config/sharding_catalog_manager_collection_operations.cpp
+++ b/src/mongo/db/s/config/sharding_catalog_manager_collection_operations.cpp
@@ -287,10 +287,8 @@ std::pair<std::vector<BSONObj>, std::vector<BSONObj>> makeChunkAndTagUpdatesForR
void ShardingCatalogManager::refineCollectionShardKey(OperationContext* opCtx,
const NamespaceString& nss,
const ShardKeyPattern& newShardKeyPattern) {
- // Take _kChunkOpLock in exclusive mode to prevent concurrent chunk splits, merges, and
- // migrations. Take _kZoneOpLock in exclusive mode to prevent concurrent zone operations.
- // TODO(SERVER-25359): Replace with a collection-specific lock map to allow splits/merges/
- // move chunks on different collections to proceed in parallel.
+ // Take _kChunkOpLock in exclusive mode to prevent concurrent chunk modifications and generate
+ // strictly monotonously increasing collection versions
Lock::ExclusiveLock chunkLk(opCtx, opCtx->lockState(), _kChunkOpLock);
Lock::ExclusiveLock zoneLk(opCtx, opCtx->lockState(), _kZoneOpLock);
@@ -650,10 +648,8 @@ void ShardingCatalogManager::renameShardedMetadata(
const NamespaceString& to,
const WriteConcernOptions& writeConcern,
boost::optional<CollectionType> optFromCollType) {
- // Take _kChunkOpLock in exclusive mode to prevent concurrent chunk splits, merges, and
- // migrations. Take _kZoneOpLock in exclusive mode to prevent concurrent zone operations.
- // TODO(SERVER-25359): Replace with a collection-specific lock map to allow splits/merges/
- // move chunks on different collections to proceed in parallel.
+ // Take _kChunkOpLock in exclusive mode to prevent concurrent chunk modifications and generate
+ // strictly monotonously increasing collection versions
Lock::ExclusiveLock chunkLk(opCtx, opCtx->lockState(), _kChunkOpLock);
Lock::ExclusiveLock zoneLk(opCtx, opCtx->lockState(), _kZoneOpLock);