summaryrefslogtreecommitdiff
path: root/src/mongo/db/ops/write_ops_exec.cpp
diff options
context:
space:
mode:
authorDan Larkin-York <dan.larkin-york@mongodb.com>2023-11-02 18:44:43 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2023-11-09 20:56:38 +0000
commit38f3e37057a43d2e9f41a39142681a76062d582e (patch)
tree4181e9244fcb9d1d6882340c2c2593c4b055a90b /src/mongo/db/ops/write_ops_exec.cpp
parent56f0b607d5e0f63366fcf56b2b6d002ac5959741 (diff)
SERVER-81435 Add metrics to capture impact of time series group commitr7.0.4-rc0r7.0.4
(cherry picked from commit dd25a9fa1d145ba84ad8fa8f57d0a3bfa6cff511)
Diffstat (limited to 'src/mongo/db/ops/write_ops_exec.cpp')
-rw-r--r--src/mongo/db/ops/write_ops_exec.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/mongo/db/ops/write_ops_exec.cpp b/src/mongo/db/ops/write_ops_exec.cpp
index bf91f342d01..1b1b138fbc3 100644
--- a/src/mongo/db/ops/write_ops_exec.cpp
+++ b/src/mongo/db/ops/write_ops_exec.cpp
@@ -2906,10 +2906,21 @@ std::vector<size_t> performUnorderedTimeseriesWrites(
bool canContinue = true;
std::vector<size_t> docsToRetry;
+ stdx::unordered_set<timeseries::bucket_catalog::WriteBatch*> handledHere;
+ int64_t handledElsewhere = 0;
+ auto guard = ScopeGuard([&handledElsewhere, &request, opCtx]() {
+ if (handledElsewhere > 0) {
+ auto& bucketCatalog = timeseries::bucket_catalog::BucketCatalog::get(opCtx);
+ timeseries::bucket_catalog::reportMeasurementsGroupCommitted(
+ bucketCatalog, request.getNamespace(), handledElsewhere);
+ }
+ });
+
size_t itr = 0;
for (; itr < batches.size(); ++itr) {
auto& [batch, index] = batches[itr];
if (timeseries::bucket_catalog::claimWriteBatchCommitRights(*batch)) {
+ handledHere.insert(batch.get());
auto stmtIds = isTimeseriesWriteRetryable(opCtx)
? std::move(bucketStmtIds[batch->bucketHandle.bucketId.oid])
: std::vector<StmtId>{};
@@ -2929,6 +2940,8 @@ std::vector<size_t> performUnorderedTimeseriesWrites(
if (!canContinue) {
break;
}
+ } else if (!handledHere.contains(batch.get())) {
+ ++handledElsewhere;
}
}