diff options
author | Haley Connelly <haley.connelly@mongodb.com> | 2022-08-23 11:27:28 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-08-23 12:31:39 +0000 |
commit | 4ed275ae52bba8f4fdfbe025f42a52b46d3a218d (patch) | |
tree | 2c8e7831272421b5150601b5b1d73df9cc2e200a | |
parent | 7b72555ab5c89dd4554ae1f4c7be06217e9b9de7 (diff) | |
download | mongo-4ed275ae52bba8f4fdfbe025f42a52b46d3a218d.tar.gz |
SERVER-69029 Split Readers & Writers for PriorityTicketHolder
SERVER-68943 Make enabling FeatureFlagDeprioritizeLowPriorityOperations independent of FeatureFlagExecutionControl
-rw-r--r-- | src/mongo/db/storage/storage_engine_init.cpp | 30 | ||||
-rw-r--r-- | src/mongo/db/storage/storage_engine_parameters.idl | 11 | ||||
-rw-r--r-- | src/mongo/util/concurrency/admission_context.h | 3 |
3 files changed, 15 insertions, 29 deletions
diff --git a/src/mongo/db/storage/storage_engine_init.cpp b/src/mongo/db/storage/storage_engine_init.cpp index bc95c565ead..ffc4b8dc6b9 100644 --- a/src/mongo/db/storage/storage_engine_init.cpp +++ b/src/mongo/db/storage/storage_engine_init.cpp @@ -160,7 +160,13 @@ StorageEngine::LastShutdownState initializeStorageEngine(OperationContext* opCtx writeTransactions = writeTransactions == 0 ? DEFAULT_TICKETS_VALUE : writeTransactions; auto svcCtx = opCtx->getServiceContext(); - if (feature_flags::gFeatureFlagExecutionControl.isEnabledAndIgnoreFCV()) { + if (feature_flags::gFeatureFlagDeprioritizeLowPriorityOperations.isEnabledAndIgnoreFCV()) { + LOGV2_DEBUG(6902900, 1, "Using Priority Queue-based ticketing scheduler"); + auto ticketHolder = std::make_unique<ReaderWriterTicketHolder>( + std::make_unique<PriorityTicketHolder>(readTransactions, svcCtx), + std::make_unique<PriorityTicketHolder>(writeTransactions, svcCtx)); + TicketHolder::use(svcCtx, std::move(ticketHolder)); + } else if (feature_flags::gFeatureFlagExecutionControl.isEnabledAndIgnoreFCV()) { LOGV2_DEBUG(5190400, 1, "Enabling new ticketing policies"); switch (gTicketQueueingPolicy) { case QueueingPolicyEnum::Semaphore: { @@ -181,22 +187,12 @@ StorageEngine::LastShutdownState initializeStorageEngine(OperationContext* opCtx } case QueueingPolicyEnum::SchedulingQueue: { LOGV2_DEBUG(6615200, 1, "Using Scheduling Queue-based ticketing scheduler"); - if (feature_flags::gFeatureFlagDeprioritizeLowPriorityOperations - .isEnabledAndIgnoreFCV()) { - auto totalTransactions = gConcurrentTotalTransactions.load(); - totalTransactions = - totalTransactions == 0 ? DEFAULT_TICKETS_VALUE : totalTransactions; - auto ticketHolder = - std::make_unique<PriorityTicketHolder>(totalTransactions, svcCtx); - TicketHolder::use(svcCtx, std::move(ticketHolder)); - } else { - auto ticketHolder = std::make_unique<StochasticTicketHolder>( - readTransactions + writeTransactions, - readTransactions, - writeTransactions, - svcCtx); - TicketHolder::use(svcCtx, std::move(ticketHolder)); - } + auto ticketHolder = std::make_unique<StochasticTicketHolder>( + readTransactions + writeTransactions, + readTransactions, + writeTransactions, + svcCtx); + TicketHolder::use(svcCtx, std::move(ticketHolder)); break; } } diff --git a/src/mongo/db/storage/storage_engine_parameters.idl b/src/mongo/db/storage/storage_engine_parameters.idl index c242b97c876..f656efa2f1b 100644 --- a/src/mongo/db/storage/storage_engine_parameters.idl +++ b/src/mongo/db/storage/storage_engine_parameters.idl @@ -67,17 +67,6 @@ server_parameters: validator: gt: 0 - storageEngineTotalConcurrentTransactions: - description: "Storage Engine Total Concurrent Transactions" - set_at: [ startup, runtime ] - cpp_vartype: AtomicWord<int> - cpp_varname: gConcurrentTotalTransactions - on_update: "TickerHolderStorageParams::updateConcurrentTotalTransactions" - # Default value being 0 means we're allowing the underlying storage engines to use their default values. - default: 0 - validator: - gt: 0 - feature_flags: featureFlagEnableExecutionControl: description: Enables the new execution control queueing policy diff --git a/src/mongo/util/concurrency/admission_context.h b/src/mongo/util/concurrency/admission_context.h index 8e7d8963e96..e7643f47431 100644 --- a/src/mongo/util/concurrency/admission_context.h +++ b/src/mongo/util/concurrency/admission_context.h @@ -106,7 +106,8 @@ private: TickSource::Tick _startProcessingTime{0}; int admissions{0}; LockMode _lockMode = LockMode::MODE_NONE; - boost::optional<AcquisitionPriority> _priority; + // TODO SERVER-68933: Don't default _priority to kNormal. + boost::optional<AcquisitionPriority> _priority{AcquisitionPriority::kNormal}; }; } // namespace mongo |