diff options
author | Matt Diener <matt.diener@mongodb.com> | 2022-10-12 20:19:44 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-10-12 21:06:32 +0000 |
commit | 02a79726b9109458d4eb37b010d58faf7332929b (patch) | |
tree | 03b789383d087ea67e627f8201e8f75b99a9e18e /src/mongo/db/transaction | |
parent | 112d7ad9e8eab0c0f8839a98d78b712b2eff9cbd (diff) | |
download | mongo-02a79726b9109458d4eb37b010d58faf7332929b.tar.gz |
SERVER-70264 make slowMS and sampleRate atomic
Diffstat (limited to 'src/mongo/db/transaction')
-rw-r--r-- | src/mongo/db/transaction/transaction_participant.cpp | 2 | ||||
-rw-r--r-- | src/mongo/db/transaction/transaction_participant_test.cpp | 108 |
2 files changed, 55 insertions, 55 deletions
diff --git a/src/mongo/db/transaction/transaction_participant.cpp b/src/mongo/db/transaction/transaction_participant.cpp index 81d09138ba9..bcb9bc689e4 100644 --- a/src/mongo/db/transaction/transaction_participant.cpp +++ b/src/mongo/db/transaction/transaction_participant.cpp @@ -2656,7 +2656,7 @@ void TransactionParticipant::Participant::_logSlowTransaction( if (shouldLogSlowOpWithSampling(opCtx, logv2::LogComponent::kTransaction, opDuration, - Milliseconds(serverGlobalParams.slowMS)) + Milliseconds(serverGlobalParams.slowMS.load())) .first) { logv2::DynamicAttributes attr; _transactionInfoForLog( diff --git a/src/mongo/db/transaction/transaction_participant_test.cpp b/src/mongo/db/transaction/transaction_participant_test.cpp index 61adbe097b6..971b81d2a91 100644 --- a/src/mongo/db/transaction/transaction_participant_test.cpp +++ b/src/mongo/db/transaction/transaction_participant_test.cpp @@ -3853,17 +3853,17 @@ TEST_F(TransactionsMetricsTest, LogTransactionInfoAfterSlowCommit) { kNss, _uuid, BSON("_id" << 0), BSON("_id" << 0)); txnParticipant.addTransactionOperation(opCtx(), operation); - const auto originalSlowMS = serverGlobalParams.slowMS; - const auto originalSampleRate = serverGlobalParams.sampleRate; + const auto originalSlowMS = serverGlobalParams.slowMS.load(); + const auto originalSampleRate = serverGlobalParams.sampleRate.load(); - serverGlobalParams.slowMS = 10; - serverGlobalParams.sampleRate = 1; + serverGlobalParams.slowMS.store(10); + serverGlobalParams.sampleRate.store(1); ON_BLOCK_EXIT([originalSlowMS, originalSampleRate] { // serverGlobalParams may have been modified prior to this test, so we set them back to // their default values. - serverGlobalParams.slowMS = originalSlowMS; - serverGlobalParams.sampleRate = originalSampleRate; + serverGlobalParams.slowMS.store(originalSlowMS); + serverGlobalParams.sampleRate.store(originalSampleRate); }); tickSource->advance(Microseconds(11 * 1000)); @@ -3905,16 +3905,16 @@ TEST_F(TransactionsMetricsTest, LogPreparedTransactionInfoAfterSlowCommit) { const int metricValue = 1; setupAdditiveMetrics(metricValue, opCtx()); - const auto originalSlowMS = serverGlobalParams.slowMS; - const auto originalSampleRate = serverGlobalParams.sampleRate; + const auto originalSlowMS = serverGlobalParams.slowMS.load(); + const auto originalSampleRate = serverGlobalParams.sampleRate.load(); - serverGlobalParams.slowMS = 10; - serverGlobalParams.sampleRate = 1; + serverGlobalParams.slowMS.store(10); + serverGlobalParams.sampleRate.store(1); // Reset the global parameters to their original values after this test exits. ON_BLOCK_EXIT([originalSlowMS, originalSampleRate] { - serverGlobalParams.slowMS = originalSlowMS; - serverGlobalParams.sampleRate = originalSampleRate; + serverGlobalParams.slowMS.store(originalSlowMS); + serverGlobalParams.sampleRate.store(originalSampleRate); }); tickSource->advance(Microseconds(11 * 1000)); @@ -3955,16 +3955,16 @@ TEST_F(TransactionsMetricsTest, LogTransactionInfoAfterSlowAbort) { txnParticipant.unstashTransactionResources(opCtx(), "abortTransaction"); - const auto originalSlowMS = serverGlobalParams.slowMS; - const auto originalSampleRate = serverGlobalParams.sampleRate; + const auto originalSlowMS = serverGlobalParams.slowMS.load(); + const auto originalSampleRate = serverGlobalParams.sampleRate.load(); - serverGlobalParams.slowMS = 10; - serverGlobalParams.sampleRate = 1; + serverGlobalParams.slowMS.store(10); + serverGlobalParams.sampleRate.store(1); // Reset the global parameters to their original values after this test exits. ON_BLOCK_EXIT([originalSlowMS, originalSampleRate] { - serverGlobalParams.slowMS = originalSlowMS; - serverGlobalParams.sampleRate = originalSampleRate; + serverGlobalParams.slowMS.store(originalSlowMS); + serverGlobalParams.sampleRate.store(originalSampleRate); }); tickSource->advance(Microseconds(11 * 1000)); @@ -4015,16 +4015,16 @@ TEST_F(TransactionsMetricsTest, LogPreparedTransactionInfoAfterSlowAbort) { txnParticipant.unstashTransactionResources(opCtx(), "abortTransaction"); txnParticipant.prepareTransaction(opCtx(), {}); - const auto originalSlowMS = serverGlobalParams.slowMS; - const auto originalSampleRate = serverGlobalParams.sampleRate; + const auto originalSlowMS = serverGlobalParams.slowMS.load(); + const auto originalSampleRate = serverGlobalParams.sampleRate.load(); - serverGlobalParams.slowMS = 10; - serverGlobalParams.sampleRate = 1; + serverGlobalParams.slowMS.store(10); + serverGlobalParams.sampleRate.store(1); // Reset the global parameters to their original values after this test exits. ON_BLOCK_EXIT([originalSlowMS, originalSampleRate] { - serverGlobalParams.slowMS = originalSlowMS; - serverGlobalParams.sampleRate = originalSampleRate; + serverGlobalParams.slowMS.store(originalSlowMS); + serverGlobalParams.sampleRate.store(originalSampleRate); }); tickSource->advance(Microseconds(11 * 1000)); @@ -4076,16 +4076,16 @@ TEST_F(TransactionsMetricsTest, LogTransactionInfoAfterExceptionInPrepare) { txnParticipant.unstashTransactionResources(opCtx(), "prepareTransaction"); - const auto originalSlowMS = serverGlobalParams.slowMS; - const auto originalSampleRate = serverGlobalParams.sampleRate; + const auto originalSlowMS = serverGlobalParams.slowMS.load(); + const auto originalSampleRate = serverGlobalParams.sampleRate.load(); - serverGlobalParams.slowMS = 10; - serverGlobalParams.sampleRate = 1; + serverGlobalParams.slowMS.store(10); + serverGlobalParams.sampleRate.store(1); // Reset the global parameters to their original values after this test exits. ON_BLOCK_EXIT([originalSlowMS, originalSampleRate] { - serverGlobalParams.slowMS = originalSlowMS; - serverGlobalParams.sampleRate = originalSampleRate; + serverGlobalParams.slowMS.store(originalSlowMS); + serverGlobalParams.sampleRate.store(originalSampleRate); }); tickSource->advance(Microseconds(11 * 1000)); @@ -4147,16 +4147,16 @@ TEST_F(TransactionsMetricsTest, LogTransactionInfoAfterSlowStashedAbort) { ASSERT(txnResourceStashLocker); const auto lockerInfo = txnResourceStashLocker->getLockerInfo(boost::none); - const auto originalSlowMS = serverGlobalParams.slowMS; - const auto originalSampleRate = serverGlobalParams.sampleRate; + const auto originalSlowMS = serverGlobalParams.slowMS.load(); + const auto originalSampleRate = serverGlobalParams.sampleRate.load(); - serverGlobalParams.slowMS = 10; - serverGlobalParams.sampleRate = 1; + serverGlobalParams.slowMS.store(10); + serverGlobalParams.sampleRate.store(1); // Reset the global parameters to their original values after this test exits. ON_BLOCK_EXIT([originalSlowMS, originalSampleRate] { - serverGlobalParams.slowMS = originalSlowMS; - serverGlobalParams.sampleRate = originalSampleRate; + serverGlobalParams.slowMS.store(originalSlowMS); + serverGlobalParams.sampleRate.store(originalSampleRate); }); tickSource->advance(Microseconds(11 * 1000)); @@ -4173,20 +4173,20 @@ TEST_F(TransactionsMetricsTest, LogTransactionInfoZeroSampleRate) { auto sessionCheckout = checkOutSession(); - const auto originalSlowMS = serverGlobalParams.slowMS; - const auto originalSampleRate = serverGlobalParams.sampleRate; + const auto originalSlowMS = serverGlobalParams.slowMS.load(); + const auto originalSampleRate = serverGlobalParams.sampleRate.load(); - serverGlobalParams.slowMS = 10; + serverGlobalParams.slowMS.store(10); // Set the sample rate to 0 to never log this transaction. - serverGlobalParams.sampleRate = 0; + serverGlobalParams.sampleRate.store(0); auto txnParticipant = TransactionParticipant::get(opCtx()); txnParticipant.unstashTransactionResources(opCtx(), "commitTransaction"); // Reset the global parameters to their original values after this test exits. ON_BLOCK_EXIT([originalSlowMS, originalSampleRate] { - serverGlobalParams.slowMS = originalSlowMS; - serverGlobalParams.sampleRate = originalSampleRate; + serverGlobalParams.slowMS.store(originalSlowMS); + serverGlobalParams.sampleRate.store(originalSampleRate); }); tickSource->advance(Microseconds(11 * 1000)); @@ -4204,17 +4204,17 @@ TEST_F(TransactionsMetricsTest, LogTransactionInfoVerbosityInfo) { auto txnParticipant = TransactionParticipant::get(opCtx()); - const auto originalSlowMS = serverGlobalParams.slowMS; - const auto originalSampleRate = serverGlobalParams.sampleRate; + const auto originalSlowMS = serverGlobalParams.slowMS.load(); + const auto originalSampleRate = serverGlobalParams.sampleRate.load(); // Set a high slow operation threshold to avoid the transaction being logged as slow. - serverGlobalParams.slowMS = 10000; - serverGlobalParams.sampleRate = 1; + serverGlobalParams.slowMS.store(10000); + serverGlobalParams.sampleRate.store(1); // Reset the global parameters to their original values after this test exits. ON_BLOCK_EXIT([originalSlowMS, originalSampleRate] { - serverGlobalParams.slowMS = originalSlowMS; - serverGlobalParams.sampleRate = originalSampleRate; + serverGlobalParams.slowMS.store(originalSlowMS); + serverGlobalParams.sampleRate.store(originalSampleRate); }); // Set verbosity level of transaction components to info. @@ -4242,17 +4242,17 @@ TEST_F(TransactionsMetricsTest, LogTransactionInfoVerbosityDebug) { txnParticipant.unstashTransactionResources(opCtx(), "commitTransaction"); - const auto originalSlowMS = serverGlobalParams.slowMS; - const auto originalSampleRate = serverGlobalParams.sampleRate; + const auto originalSlowMS = serverGlobalParams.slowMS.load(); + const auto originalSampleRate = serverGlobalParams.sampleRate.load(); // Set a high slow operation threshold to avoid the transaction being logged as slow. - serverGlobalParams.slowMS = 10000; - serverGlobalParams.sampleRate = 1; + serverGlobalParams.slowMS.store(10000); + serverGlobalParams.sampleRate.store(1); // Reset the global parameters to their original values after this test exits. ON_BLOCK_EXIT([originalSlowMS, originalSampleRate] { - serverGlobalParams.slowMS = originalSlowMS; - serverGlobalParams.sampleRate = originalSampleRate; + serverGlobalParams.slowMS.store(originalSlowMS); + serverGlobalParams.sampleRate.store(originalSampleRate); }); startCapturingLogMessages(); |