diff options
Diffstat (limited to 'src/mongo/db/s/metadata_manager.cpp')
| -rw-r--r-- | src/mongo/db/s/metadata_manager.cpp | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/src/mongo/db/s/metadata_manager.cpp b/src/mongo/db/s/metadata_manager.cpp index 6f57d95f93a..1dd525d704d 100644 --- a/src/mongo/db/s/metadata_manager.cpp +++ b/src/mongo/db/s/metadata_manager.cpp @@ -36,6 +36,7 @@ #include "mongo/base/string_data.h" #include "mongo/bson/simple_bsonobj_comparator.h" #include "mongo/bson/util/builder.h" +#include "mongo/db/cursor_manager.h" #include "mongo/db/query/internal_plans.h" #include "mongo/db/range_arithmetic.h" #include "mongo/db/s/migration_util.h" @@ -276,14 +277,15 @@ SharedSemiFuture<void> MetadataManager::cleanUpRange(ChunkRange const& range, shouldDelayBeforeDeletion ? Seconds(orphanCleanupDelaySecs.load()) : Seconds(0); if (overlapMetadata) { - LOGV2_OPTIONS(21989, - {logv2::LogComponent::kShardingMigration}, - "Deletion of {namespace} range {range} will be scheduled after all possibly " - "dependent queries finish", - "Deletion of the collection's specified range will be scheduled after all " - "possibly dependent queries finish", - "namespace"_attr = _nss.ns(), - "range"_attr = redact(range.toString())); + const auto openCursorsIds = + CursorManager::get(_serviceContext)->getCursorIdsForNamespace(_nss); + LOGV2_INFO_OPTIONS( + 7179200, + {logv2::LogComponent::kShardingRangeDeleter}, + "Range deletion will be scheduled after all possibly dependent queries finish", + "namespace"_attr = _nss, + "range"_attr = range.toString(), + "cursorsDirectlyReferringTheNamespace"_attr = openCursorsIds); ++overlapMetadata->numContingentRangeDeletionTasks; // Schedule the range for deletion once the overlapping metadata object is destroyed // (meaning no more queries can be using the range) and obtain a future which will be @@ -373,12 +375,6 @@ SharedSemiFuture<void> MetadataManager::_submitRangeForDeletion( const ChunkRange& range, const UUID& migrationId, Seconds delayForActiveQueriesOnSecondariesToComplete) { - - int maxToDelete = rangeDeleterBatchSize.load(); - if (maxToDelete <= 0) { - maxToDelete = kRangeDeleterBatchSizeDefault; - } - auto cleanupComplete = removeDocumentsInRange(_executor, std::move(waitForActiveQueriesToComplete), @@ -387,7 +383,6 @@ SharedSemiFuture<void> MetadataManager::_submitRangeForDeletion( _metadata.back()->metadata->getKeyPattern().getOwned(), range, migrationId, - maxToDelete, delayForActiveQueriesOnSecondariesToComplete); _rangesScheduledForDeletion.emplace_front(range, cleanupComplete); @@ -400,6 +395,7 @@ SharedSemiFuture<void> MetadataManager::_submitRangeForDeletion( stdx::lock_guard<Latch> lg(self->_managerLock); self->_rangesScheduledForDeletion.erase(it); }); + return cleanupComplete; } |
