diff options
Diffstat (limited to 'src/mongo/db/s/query_analysis_op_observer.cpp')
-rw-r--r-- | src/mongo/db/s/query_analysis_op_observer.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/mongo/db/s/query_analysis_op_observer.cpp b/src/mongo/db/s/query_analysis_op_observer.cpp index 84606c7f4c7..658c50c992d 100644 --- a/src/mongo/db/s/query_analysis_op_observer.cpp +++ b/src/mongo/db/s/query_analysis_op_observer.cpp @@ -31,6 +31,7 @@ #include "mongo/db/s/query_analysis_coordinator.h" #include "mongo/db/s/query_analysis_op_observer.h" +#include "mongo/db/s/query_analysis_writer.h" #include "mongo/logv2/log.h" #include "mongo/s/analyze_shard_key_util.h" #include "mongo/s/catalog/type_mongos.h" @@ -88,6 +89,17 @@ void QueryAnalysisOpObserver::onUpdate(OperationContext* opCtx, const OplogUpdat }); } } + + if (analyze_shard_key::supportsPersistingSampledQueries() && args.updateArgs->sampleId && + args.updateArgs->preImageDoc && opCtx->writesAreReplicated()) { + analyze_shard_key::QueryAnalysisWriter::get(opCtx) + .addDiff(*args.updateArgs->sampleId, + args.coll->ns(), + args.coll->uuid(), + *args.updateArgs->preImageDoc, + args.updateArgs->updatedDoc) + .getAsync([](auto) {}); + } } void QueryAnalysisOpObserver::aboutToDelete(OperationContext* opCtx, |