summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/query_analysis_writer.cpp
diff options
context:
space:
mode:
authorIsrael Hsu <israel.hsu@mongodb.com>2023-03-09 04:18:42 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2023-03-09 05:04:56 +0000
commit5b99e24bf230cb1b22b1b8df3f485438ca3ef911 (patch)
tree82df57eae3e74999daebf9c91b3ab13f3194aabd /src/mongo/db/s/query_analysis_writer.cpp
parent22f96b5add43ff10158a18073e9dcb3d001e2444 (diff)
downloadmongo-5b99e24bf230cb1b22b1b8df3f485438ca3ef911.tar.gz
SERVER-70996 Add serverStatus reporting for query analysis, reorg QueryAnalysis sample counting
Diffstat (limited to 'src/mongo/db/s/query_analysis_writer.cpp')
-rw-r--r--src/mongo/db/s/query_analysis_writer.cpp37
1 files changed, 8 insertions, 29 deletions
diff --git a/src/mongo/db/s/query_analysis_writer.cpp b/src/mongo/db/s/query_analysis_writer.cpp
index d0b508ae366..91433f6ffea 100644
--- a/src/mongo/db/s/query_analysis_writer.cpp
+++ b/src/mongo/db/s/query_analysis_writer.cpp
@@ -540,8 +540,8 @@ ExecutorFuture<void> QueryAnalysisWriter::_addReadQuery(const UUID& sampleId,
stdx::lock_guard<Latch> lk(_mutex);
if (_queries.add(doc)) {
- auto counters = _getOrCreateSampleCounters(nss, *collUuid);
- counters->incrementReads(doc.objsize());
+ QueryAnalysisSampleCounters::get(opCtx).incrementReads(
+ nss, *collUuid, doc.objsize());
}
})
.then([this] {
@@ -590,8 +590,8 @@ ExecutorFuture<void> QueryAnalysisWriter::addUpdateQuery(
stdx::lock_guard<Latch> lk(_mutex);
if (_queries.add(doc)) {
- auto counters = _getOrCreateSampleCounters(sampledUpdateCmd.nss, *collUuid);
- counters->incrementWrites(doc.objsize());
+ QueryAnalysisSampleCounters::get(opCtx).incrementWrites(
+ sampledUpdateCmd.nss, *collUuid, doc.objsize());
}
})
.then([this] {
@@ -640,8 +640,8 @@ ExecutorFuture<void> QueryAnalysisWriter::addDeleteQuery(
stdx::lock_guard<Latch> lk(_mutex);
if (_queries.add(doc)) {
- auto counters = _getOrCreateSampleCounters(sampledDeleteCmd.nss, *collUuid);
- counters->incrementWrites(doc.objsize());
+ QueryAnalysisSampleCounters::get(opCtx).incrementWrites(
+ sampledDeleteCmd.nss, *collUuid, doc.objsize());
}
})
.then([this] {
@@ -692,8 +692,8 @@ ExecutorFuture<void> QueryAnalysisWriter::addFindAndModifyQuery(
stdx::lock_guard<Latch> lk(_mutex);
if (_queries.add(doc)) {
- auto counters = _getOrCreateSampleCounters(sampledFindAndModifyCmd.nss, *collUuid);
- counters->incrementWrites(doc.objsize());
+ QueryAnalysisSampleCounters::get(opCtx).incrementWrites(
+ sampledFindAndModifyCmd.nss, *collUuid, doc.objsize());
}
})
.then([this] {
@@ -755,26 +755,5 @@ ExecutorFuture<void> QueryAnalysisWriter::addDiff(const UUID& sampleId,
});
}
-void QueryAnalysisWriter::reportForCurrentOp(std::vector<BSONObj>* ops) const {
- for (auto it = _sampleCountersMap.begin(); it != _sampleCountersMap.end(); ++it) {
- ops->push_back(it->second->reportCurrentOp());
- }
-}
-
-std::shared_ptr<SampleCounters> QueryAnalysisWriter::_getOrCreateSampleCounters(
- const NamespaceString& nss, const UUID& collUuid) {
- auto it = _sampleCountersMap.find(collUuid);
- if (it == _sampleCountersMap.end()) {
- it = _sampleCountersMap.emplace(collUuid, std::make_shared<SampleCounters>(nss, collUuid))
- .first;
- } else {
- if (nss != it->second->getNss()) {
- // TODO SERVER-73990 Make sure collection renames are handled correctly, and test.
- it->second->setNss(nss);
- }
- }
- return it->second;
-}
-
} // namespace analyze_shard_key
} // namespace mongo