summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/metadata_manager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/s/metadata_manager.cpp')
-rw-r--r--src/mongo/db/s/metadata_manager.cpp26
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;
}