summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTommaso Tocci <tommaso.tocci@mongodb.com>2022-03-14 12:59:15 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-03-14 13:31:12 +0000
commit960a4440e82f1fb274f0c4cb01dbda16c866cf88 (patch)
tree2dcbc979ec48f00d5beed1999ed9c4df3c3c2e8d
parent00553eb23389a3213f384835b5c7d821a0bde1b4 (diff)
downloadmongo-960a4440e82f1fb274f0c4cb01dbda16c866cf88.tar.gz
SERVER-64344 Do not use atClusterTime when refreshing routing table on config server
-rw-r--r--src/mongo/s/config_server_catalog_cache_loader.cpp25
1 files changed, 10 insertions, 15 deletions
diff --git a/src/mongo/s/config_server_catalog_cache_loader.cpp b/src/mongo/s/config_server_catalog_cache_loader.cpp
index 4e4d0e452df..3910e1e4c88 100644
--- a/src/mongo/s/config_server_catalog_cache_loader.cpp
+++ b/src/mongo/s/config_server_catalog_cache_loader.cpp
@@ -56,29 +56,24 @@ CollectionAndChangedChunks getChangedChunks(OperationContext* opCtx,
const NamespaceString& nss,
ChunkVersion sinceVersion,
bool avoidSnapshotForRefresh) {
- const auto catalogClient = Grid::get(opCtx)->catalogClient();
+ const auto readConcern = [&]() -> repl::ReadConcernArgs {
+ // TODO SERVER-54394 always use snapshot read concern once
+ // ephemeral storage engine supports it
+ const auto readConcernLevel = !avoidSnapshotForRefresh
+ ? repl::ReadConcernLevel::kSnapshotReadConcern
+ : repl::ReadConcernLevel::kLocalReadConcern;
- // TODO SERVER-54394 always use snapshot read concern once ephemeral storage engine supports it
- const auto readConcernLevel = !avoidSnapshotForRefresh
- ? repl::ReadConcernLevel::kSnapshotReadConcern
- : repl::ReadConcernLevel::kLocalReadConcern;
-
- const auto afterClusterTime = [&] {
if (serverGlobalParams.clusterRole == ClusterRole::ConfigServer) {
- return repl::ReplicationCoordinator::get(opCtx)
- ->getMyLastAppliedOpTime()
- .getTimestamp();
-
+ return {readConcernLevel};
} else {
const auto vcTime = VectorClock::get(opCtx)->getTime();
- return vcTime.configTime().asTimestamp();
+ return {vcTime.configTime(), readConcernLevel};
}
}();
- const auto readConcern = repl::ReadConcernArgs(LogicalTime(afterClusterTime), readConcernLevel);
+ auto collAndChunks = Grid::get(opCtx)->catalogClient()->getCollectionAndChunks(
+ opCtx, nss, sinceVersion, readConcern);
- auto collAndChunks =
- catalogClient->getCollectionAndChunks(opCtx, nss, sinceVersion, readConcern);
const auto& coll = collAndChunks.first;
return CollectionAndChangedChunks{coll.getEpoch(),
coll.getTimestamp(),