diff options
Diffstat (limited to 'src/mongo/db/transaction_metrics_observer.cpp')
| -rw-r--r-- | src/mongo/db/transaction_metrics_observer.cpp | 8 |
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); } } |
