Skip to content

Commit 8312474

Browse files
authored
Add UseRingQueue to ActorSystemConfig (#8122)
1 parent a4003fe commit 8312474

File tree

6 files changed

+11
-5
lines changed

6 files changed

+11
-5
lines changed

ydb/core/driver_lib/run/config_helpers.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ void AddExecutorPool(NActors::TCpuManagerConfig& cpuManager, const NKikimrConfig
5252
NActors::TBasicExecutorPoolConfig basic;
5353
basic.PoolId = poolId;
5454
basic.PoolName = poolConfig.GetName();
55+
basic.UseRingQueue = systemConfig.HasUseRingQueue() && systemConfig.GetUseRingQueue();
5556
if (poolConfig.HasMaxAvgPingDeviation() && counters) {
5657
auto poolGroup = counters->GetSubgroup("execpool", basic.PoolName);
5758
auto &poolInfo = cpuManager.PingInfoByPool[poolId];
@@ -92,6 +93,7 @@ void AddExecutorPool(NActors::TCpuManagerConfig& cpuManager, const NKikimrConfig
9293
io.Threads = poolConfig.GetThreads();
9394
io.Affinity = ParseAffinity(poolConfig.GetAffinity());
9495
cpuManager.IO.emplace_back(std::move(io));
96+
io.UseRingQueue = systemConfig.HasUseRingQueue() && systemConfig.GetUseRingQueue();
9597
break;
9698
}
9799

ydb/core/protos/config.proto

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ message TActorSystemConfig {
118118
optional ENodeType NodeType = 14 [default = COMPUTE];
119119
optional uint32 ForceIOPoolThreads = 17;
120120
optional bool UseSharedThreads = 18;
121+
optional bool UseRingQueue = 19;
121122

122123
optional bool MonitorStuckActors = 15;
123124
optional EActorSystemProfile ActorSystemProfile = 16;

ydb/library/actors/core/config.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ namespace NActors {
3131
i16 SoftProcessingDurationTs = 0;
3232
EASProfile ActorSystemProfile = EASProfile::Default;
3333
bool HasSharedThread = false;
34+
bool UseRingQueue = false;
3435
};
3536

3637
struct TSharedExecutorPoolConfig {
@@ -47,6 +48,7 @@ namespace NActors {
4748
TString PoolName;
4849
ui32 Threads = 1;
4950
TCpuMask Affinity; // Executor thread affinity
51+
bool UseRingQueue = false;
5052
};
5153

5254
struct TSelfPingInfo {

ydb/library/actors/core/executor_pool_basic.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ namespace NActors {
8282
}
8383

8484
TBasicExecutorPool::TBasicExecutorPool(const TBasicExecutorPoolConfig& cfg, IHarmonizer *harmonizer, TExecutorPoolJail *jail)
85-
: TExecutorPoolBase(cfg.PoolId, cfg.Threads, new TAffinity(cfg.Affinity), false)
85+
: TExecutorPoolBase(cfg.PoolId, cfg.Threads, new TAffinity(cfg.Affinity), cfg.UseRingQueue)
8686
, DefaultSpinThresholdCycles(cfg.SpinThreshold * NHPTimer::GetCyclesPerSecond() * 0.000001) // convert microseconds to cycles
8787
, SpinThresholdCycles(DefaultSpinThresholdCycles)
8888
, SpinThresholdCyclesPerThread(new NThreading::TPadded<std::atomic<ui64>>[cfg.Threads])

ydb/library/actors/core/executor_pool_io.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
#include <ydb/library/actors/util/datetime.h>
77

88
namespace NActors {
9-
TIOExecutorPool::TIOExecutorPool(ui32 poolId, ui32 threads, const TString& poolName, TAffinity* affinity)
10-
: TExecutorPoolBase(poolId, threads, affinity, false)
9+
TIOExecutorPool::TIOExecutorPool(ui32 poolId, ui32 threads, const TString& poolName, TAffinity* affinity, bool useRingQueue)
10+
: TExecutorPoolBase(poolId, threads, affinity, useRingQueue)
1111
, Threads(new TExecutorThreadCtx[threads])
1212
, PoolName(poolName)
1313
{}
@@ -17,7 +17,8 @@ namespace NActors {
1717
cfg.PoolId,
1818
cfg.Threads,
1919
cfg.PoolName,
20-
new TAffinity(cfg.Affinity)
20+
new TAffinity(cfg.Affinity),
21+
cfg.UseRingQueue
2122
)
2223
{
2324
Harmonizer = harmonizer;

ydb/library/actors/core/executor_pool_io.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ namespace NActors {
2626
const TString PoolName;
2727
const ui32 ActorSystemIndex = NActors::TActorTypeOperator::GetActorSystemIndex();
2828
public:
29-
TIOExecutorPool(ui32 poolId, ui32 threads, const TString& poolName = "", TAffinity* affinity = nullptr);
29+
TIOExecutorPool(ui32 poolId, ui32 threads, const TString& poolName = "", TAffinity* affinity = nullptr, bool useRingQueue = false);
3030
explicit TIOExecutorPool(const TIOExecutorPoolConfig& cfg, IHarmonizer *harmonizer = nullptr);
3131
~TIOExecutorPool();
3232

0 commit comments

Comments
 (0)