summaryrefslogtreecommitdiff
path: root/src/mongo/db/transaction_metrics_observer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/transaction_metrics_observer.cpp')
-rw-r--r--src/mongo/db/transaction_metrics_observer.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/mongo/db/transaction_metrics_observer.cpp b/src/mongo/db/transaction_metrics_observer.cpp
index fa683bce8de..65e50f2fc85 100644
--- a/src/mongo/db/transaction_metrics_observer.cpp
+++ b/src/mongo/db/transaction_metrics_observer.cpp
@@ -183,15 +183,15 @@ void TransactionMetricsObserver::onTransactionOperation(OperationContext* opCtx,
// into an existing storageStats instance stored in SingleTransactionStats.
// WiredTiger doesn't let storage statistics be collected when transaction is prepared.
if (!isPrepared) {
- std::shared_ptr<StorageStats> storageStats =
- opCtx->recoveryUnit()->getOperationStatistics();
+ std::unique_ptr<StorageStats> storageStats =
+ opCtx->recoveryUnit()->computeOperationStatisticsSinceLastCall();
if (storageStats) {
- CurOp::get(opCtx)->debug().storageStats = storageStats;
if (!_singleTransactionStats.getOpDebug()->storageStats) {
- _singleTransactionStats.getOpDebug()->storageStats = storageStats->getCopy();
+ _singleTransactionStats.getOpDebug()->storageStats = storageStats->clone();
} else {
*_singleTransactionStats.getOpDebug()->storageStats += *storageStats;
}
+ CurOp::get(opCtx)->debug().storageStats = std::move(storageStats);
}
}