summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaley Connelly <haley.connelly@mongodb.com>2022-08-23 11:27:28 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-08-23 12:31:39 +0000
commit4ed275ae52bba8f4fdfbe025f42a52b46d3a218d (patch)
tree2c8e7831272421b5150601b5b1d73df9cc2e200a
parent7b72555ab5c89dd4554ae1f4c7be06217e9b9de7 (diff)
downloadmongo-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.cpp30
-rw-r--r--src/mongo/db/storage/storage_engine_parameters.idl11
-rw-r--r--src/mongo/util/concurrency/admission_context.h3
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