diff options
author | Israel Hsu <israel.hsu@mongodb.com> | 2023-03-09 04:18:42 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2023-03-09 05:04:56 +0000 |
commit | 5b99e24bf230cb1b22b1b8df3f485438ca3ef911 (patch) | |
tree | 82df57eae3e74999daebf9c91b3ab13f3194aabd /src/mongo/db/s/query_analysis_writer.cpp | |
parent | 22f96b5add43ff10158a18073e9dcb3d001e2444 (diff) | |
download | mongo-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.cpp | 37 |
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 |