summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/balancer/balancer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/s/balancer/balancer.cpp')
-rw-r--r--src/mongo/db/s/balancer/balancer.cpp25
1 files changed, 15 insertions, 10 deletions
diff --git a/src/mongo/db/s/balancer/balancer.cpp b/src/mongo/db/s/balancer/balancer.cpp
index 3b0a5777c9b..d7e3839b533 100644
--- a/src/mongo/db/s/balancer/balancer.cpp
+++ b/src/mongo/db/s/balancer/balancer.cpp
@@ -382,8 +382,9 @@ Status Balancer::rebalanceSingleChunk(OperationContext* opCtx,
return refreshStatus;
}
- auto coll = Grid::get(opCtx)->catalogClient()->getCollection(
- opCtx, nss, repl::ReadConcernLevel::kMajorityReadConcern);
+ const auto catalogClient = ShardingCatalogManager::get(opCtx)->localCatalogClient();
+ auto coll =
+ catalogClient->getCollection(opCtx, nss, repl::ReadConcernLevel::kMajorityReadConcern);
auto maxChunkSize =
coll.getMaxChunkSizeBytes().value_or(balancerConfig->getMaxChunkSizeBytes());
@@ -408,8 +409,9 @@ Status Balancer::moveSingleChunk(OperationContext* opCtx,
return moveAllowedStatus;
}
- auto coll = Grid::get(opCtx)->catalogClient()->getCollection(
- opCtx, nss, repl::ReadConcernLevel::kMajorityReadConcern);
+ const auto catalogClient = ShardingCatalogManager::get(opCtx)->localCatalogClient();
+ auto coll =
+ catalogClient->getCollection(opCtx, nss, repl::ReadConcernLevel::kMajorityReadConcern);
const auto maxChunkSize = getMaxChunkSizeBytes(opCtx, coll);
MoveChunkSettings settings(maxChunkSize, secondaryThrottle, waitForDelete);
@@ -426,8 +428,9 @@ Status Balancer::moveRange(OperationContext* opCtx,
const NamespaceString& nss,
const ConfigsvrMoveRange& request,
bool issuedByRemoteUser) {
- auto coll = Grid::get(opCtx)->catalogClient()->getCollection(
- opCtx, nss, repl::ReadConcernLevel::kMajorityReadConcern);
+ const auto catalogClient = ShardingCatalogManager::get(opCtx)->localCatalogClient();
+ auto coll =
+ catalogClient->getCollection(opCtx, nss, repl::ReadConcernLevel::kMajorityReadConcern);
const auto maxChunkSize = getMaxChunkSizeBytes(opCtx, coll);
const auto [fromShardId, min] = [&]() {
@@ -654,6 +657,7 @@ void Balancer::_mainThread() {
Client::initThread("Balancer");
auto opCtx = cc().makeOperationContext();
auto shardingContext = Grid::get(opCtx.get());
+ const auto catalogClient = ShardingCatalogManager::get(opCtx.get())->localCatalogClient();
LOGV2(21856, "CSRS balancer is starting");
@@ -767,7 +771,7 @@ void Balancer::_mainThread() {
// Collect and apply up-to-date configuration values on the cluster collections.
{
OperationContext* ctx = opCtx.get();
- auto allCollections = Grid::get(ctx)->catalogClient()->getCollections(ctx, {});
+ auto allCollections = catalogClient->getCollections(ctx, {});
for (const auto& coll : allCollections) {
_defragmentationPolicy->startCollectionDefragmentation(ctx, coll);
}
@@ -1020,7 +1024,7 @@ int Balancer::_moveChunks(OperationContext* opCtx,
const MigrateInfoVector& chunksToRebalance,
const MigrateInfoVector& chunksToDefragment) {
auto balancerConfig = Grid::get(opCtx)->getBalancerConfiguration();
- auto catalogClient = Grid::get(opCtx)->catalogClient();
+ auto catalogClient = ShardingCatalogManager::get(opCtx)->localCatalogClient();
// If the balancer was disabled since we started this round, don't start new chunk moves
if (_stopRequested() || !balancerConfig->shouldBalance() ||
@@ -1037,7 +1041,7 @@ int Balancer::_moveChunks(OperationContext* opCtx,
return *migrateInfo.optMaxChunkSizeBytes;
}
- auto coll = Grid::get(opCtx)->catalogClient()->getCollection(
+ auto coll = catalogClient->getCollection(
opCtx, migrateInfo.nss, repl::ReadConcernLevel::kMajorityReadConcern);
return coll.getMaxChunkSizeBytes().value_or(balancerConfig->getMaxChunkSizeBytes());
}();
@@ -1156,9 +1160,10 @@ SharedSemiFuture<void> Balancer::applyLegacyChunkSizeConstraintsOnClusterData(
BalancerCollectionStatusResponse Balancer::getBalancerStatusForNs(OperationContext* opCtx,
const NamespaceString& ns) {
+ const auto catalogClient = ShardingCatalogManager::get(opCtx)->localCatalogClient();
CollectionType coll;
try {
- coll = Grid::get(opCtx)->catalogClient()->getCollection(opCtx, ns, {});
+ coll = catalogClient->getCollection(opCtx, ns, {});
} catch (const ExceptionFor<ErrorCodes::NamespaceNotFound>&) {
uasserted(ErrorCodes::NamespaceNotSharded, "Collection unsharded or undefined");
}