summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/query_analysis_op_observer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/s/query_analysis_op_observer.cpp')
-rw-r--r--src/mongo/db/s/query_analysis_op_observer.cpp12
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,