diff options
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.cpp | 12 |
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); |