diff options
| author | Dan Larkin-York <dan.larkin-york@mongodb.com> | 2023-11-02 18:44:43 +0000 |
|---|---|---|
| committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2023-11-09 20:56:38 +0000 |
| commit | 38f3e37057a43d2e9f41a39142681a76062d582e (patch) | |
| tree | 4181e9244fcb9d1d6882340c2c2593c4b055a90b /src/mongo/db/ops/write_ops_exec.cpp | |
| parent | 56f0b607d5e0f63366fcf56b2b6d002ac5959741 (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.cpp | 13 |
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; } } |
