Skip to content

Commit 687a5f9

Browse files
committed
Revert "use potential max thread count in local (ydb-platform#7050)"
This reverts commit 2e59d50.
1 parent 4a7f723 commit 687a5f9

19 files changed

+63
-159
lines changed

ydb/core/base/pool_stats_collector.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@ class TStatsCollectingActor : public NActors::TStatsCollectingActor {
4646
void OnWakeup(const TActorContext &ctx) override {
4747
MiniKQLPoolStats.Update();
4848

49-
TVector<std::tuple<TString, double, ui32, ui32>> pools;
49+
TVector<std::tuple<TString, double, ui32>> pools;
5050
for (const auto& pool : PoolCounters) {
51-
pools.emplace_back(pool.Name, pool.Usage, pool.Threads, pool.LimitThreads);
51+
pools.emplace_back(pool.Name, pool.Usage, pool.Threads);
5252
}
5353

5454
ctx.Send(NNodeWhiteboard::MakeNodeWhiteboardServiceId(ctx.SelfID.NodeId()), new NNodeWhiteboard::TEvWhiteboard::TEvSystemStateUpdate(pools));

ydb/core/mind/hive/tx__update_tablet_metrics.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@ class TTxUpdateTabletMetrics : public TTransactionBase<THive> {
5454
}
5555
TNodeInfo* node = Self->FindNode(nodeId);
5656
if (node != nullptr) {
57-
node->UpdateResourceMaximum(record.GetResourceMaximum());
5857
node->UpdateResourceTotalUsage(record);
5958
node->Statistics.SetLastAliveTimestamp(now.MilliSeconds());
6059
node->ActualizeNodeStatistics(now);

ydb/core/mind/local.cpp

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,6 @@ class TLocalNodeRegistrar : public TActorBootstrapped<TLocalNodeRegistrar> {
109109
ui64 UserPoolUsage = 0; // (usage uS x threads) / sec
110110
ui64 MemUsage = 0;
111111
ui64 MemLimit = 0;
112-
ui64 CpuLimit = 0; // PotentialMaxThreadCount of UserPool
113112
double NodeUsage = 0;
114113

115114
bool SentDrainNode = false;
@@ -273,28 +272,28 @@ class TLocalNodeRegistrar : public TActorBootstrapped<TLocalNodeRegistrar> {
273272
HandlePipeDestroyed(ctx);
274273
}
275274

276-
void FillResourceMaximum(NKikimrTabletBase::TMetrics* record) {
277-
record->CopyFrom(ResourceLimit);
278-
if (!record->HasCPU()) {
279-
if (CpuLimit != 0) {
280-
record->SetCPU(CpuLimit);
275+
void SendStatusOk(const TActorContext &ctx) {
276+
LOG_DEBUG_S(ctx, NKikimrServices::LOCAL, "TLocalNodeRegistrar SendStatusOk");
277+
TAutoPtr<TEvLocal::TEvStatus> eventStatus = new TEvLocal::TEvStatus(TEvLocal::TEvStatus::StatusOk);
278+
auto& record = eventStatus->Record;
279+
record.SetStartTime(StartTime.GetValue());
280+
record.MutableResourceMaximum()->CopyFrom(ResourceLimit);
281+
if (!record.GetResourceMaximum().HasCPU()) {
282+
TExecutorPoolStats poolStats;
283+
TVector<TExecutorThreadStats> statsCopy;
284+
TVector<TExecutorThreadStats> sharedStatsCopy;
285+
ctx.ExecutorThread.ActorSystem->GetPoolStats(AppData()->UserPoolId, poolStats, statsCopy, sharedStatsCopy);
286+
if (!statsCopy.empty()) {
287+
record.MutableResourceMaximum()->SetCPU(poolStats.CurrentThreadCount * 1000000);
281288
}
282289
}
283-
if (!record->HasMemory()) {
290+
if (!record.GetResourceMaximum().HasMemory()) {
284291
if (MemLimit != 0) {
285-
record->SetMemory(MemLimit);
292+
record.MutableResourceMaximum()->SetMemory(MemLimit);
286293
} else {
287-
record->SetMemory(NSystemInfo::TotalMemorySize());
294+
record.MutableResourceMaximum()->SetMemory(NSystemInfo::TotalMemorySize());
288295
}
289296
}
290-
}
291-
292-
void SendStatusOk(const TActorContext &ctx) {
293-
LOG_DEBUG_S(ctx, NKikimrServices::LOCAL, "TLocalNodeRegistrar SendStatusOk");
294-
TAutoPtr<TEvLocal::TEvStatus> eventStatus = new TEvLocal::TEvStatus(TEvLocal::TEvStatus::StatusOk);
295-
auto& record = eventStatus->Record;
296-
record.SetStartTime(StartTime.GetValue());
297-
FillResourceMaximum(record.MutableResourceMaximum());
298297
NTabletPipe::SendData(ctx, HivePipeClient, eventStatus.Release());
299298
}
300299

@@ -588,7 +587,6 @@ class TLocalNodeRegistrar : public TActorBootstrapped<TLocalNodeRegistrar> {
588587
record.MutableTotalResourceUsage()->SetMemory(MemUsage);
589588
}
590589
record.SetTotalNodeUsage(NodeUsage);
591-
FillResourceMaximum(record.MutableResourceMaximum());
592590
NTabletPipe::SendData(ctx, HivePipeClient, event.Release());
593591
SendTabletMetricsTime = ctx.Now();
594592
} else {
@@ -651,8 +649,7 @@ class TLocalNodeRegistrar : public TActorBootstrapped<TLocalNodeRegistrar> {
651649
const NKikimrWhiteboard::TSystemStateInfo& info = record.GetSystemStateInfo(0);
652650
if (static_cast<ui32>(info.PoolStatsSize()) > AppData()->UserPoolId) {
653651
const auto& poolStats(info.GetPoolStats(AppData()->UserPoolId));
654-
CpuLimit = poolStats.limit() * 1'000'000; // microseconds
655-
UserPoolUsage = poolStats.usage() * CpuLimit; // microseconds
652+
UserPoolUsage = poolStats.usage() * poolStats.threads() * 1000000; // uS
656653
}
657654

658655
// Note: we use allocated memory because MemoryUsed(AnonRSS) has lag

ydb/core/node_whiteboard/node_whiteboard.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -361,13 +361,12 @@ struct TEvWhiteboard{
361361
}
362362
}
363363

364-
TEvSystemStateUpdate(const TVector<std::tuple<TString, double, ui32, ui32>>& poolStats) {
364+
TEvSystemStateUpdate(const TVector<std::tuple<TString, double, ui32>>& poolStats) {
365365
for (const auto& row : poolStats) {
366366
auto& pb = *Record.AddPoolStats();
367367
pb.SetName(std::get<0>(row));
368368
pb.SetUsage(std::get<1>(row));
369369
pb.SetThreads(std::get<2>(row));
370-
pb.SetLimit(std::get<3>(row));
371370
}
372371
}
373372

ydb/core/protos/hive.proto

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,6 @@ message TEvTabletMetrics {
246246
repeated TTabletMetrics TabletMetrics = 1;
247247
optional NKikimrTabletBase.TMetrics TotalResourceUsage = 2;
248248
optional double TotalNodeUsage = 3;
249-
optional NKikimrTabletBase.TMetrics ResourceMaximum = 4;
250249
}
251250

252251
message TEvReassignTablet {

ydb/core/protos/node_whiteboard.proto

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,6 @@ message TSystemStateInfo {
277277
optional string Name = 1;
278278
optional double Usage = 2 [(InsignificantChangePercent) = 30];
279279
optional uint32 Threads = 3;
280-
optional uint32 Limit = 4;
281280
}
282281

283282
message TEndpoint {

ydb/library/actors/core/actorsystem.cpp

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -338,13 +338,4 @@ namespace NActors {
338338
CpuManager->Cleanup();
339339
Scheduler.Destroy();
340340
}
341-
342-
void TActorSystem::GetExecutorPoolState(i16 poolId, TExecutorPoolState &state) const {
343-
CpuManager->GetExecutorPoolState(poolId, state);
344-
}
345-
346-
void TActorSystem::GetExecutorPoolStates(std::vector<TExecutorPoolState> &states) const {
347-
CpuManager->GetExecutorPoolStates(states);
348-
}
349-
350341
}

ydb/library/actors/core/actorsystem.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -306,8 +306,5 @@ namespace NActors {
306306
return CpuManager->GetBasicExecutorPools();
307307
}
308308

309-
void GetExecutorPoolState(i16 poolId, TExecutorPoolState &state) const;
310-
void GetExecutorPoolStates(std::vector<TExecutorPoolState> &states) const;
311-
312309
};
313310
}

ydb/library/actors/core/cpu_manager.cpp

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#include "cpu_manager.h"
22
#include "executor_pool_jail.h"
3-
#include "mon_stats.h"
43
#include "probes.h"
54

65
#include "executor_pool_basic.h"
@@ -173,17 +172,4 @@ namespace NActors {
173172
}
174173
}
175174

176-
void TCpuManager::GetExecutorPoolState(i16 poolId, TExecutorPoolState &state) const {
177-
if (static_cast<ui32>(poolId) < ExecutorPoolCount) {
178-
Executors[poolId]->GetExecutorPoolState(state);
179-
}
180-
}
181-
182-
void TCpuManager::GetExecutorPoolStates(std::vector<TExecutorPoolState> &states) const {
183-
states.resize(ExecutorPoolCount);
184-
for (i16 poolId = 0; poolId < static_cast<ui16>(ExecutorPoolCount); ++poolId) {
185-
GetExecutorPoolState(poolId, states[poolId]);
186-
}
187-
}
188-
189175
}

ydb/library/actors/core/cpu_manager.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
#include "harmonizer.h"
66
#include "executor_pool.h"
77
#include "executor_pool_shared.h"
8-
#include "mon_stats.h"
98
#include <memory>
109

1110
namespace NActors {
@@ -48,8 +47,6 @@ namespace NActors {
4847
}
4948

5049
void GetPoolStats(ui32 poolId, TExecutorPoolStats& poolStats, TVector<TExecutorThreadStats>& statsCopy, TVector<TExecutorThreadStats>& sharedStatsCopy) const;
51-
void GetExecutorPoolState(i16 poolId, TExecutorPoolState &state) const;
52-
void GetExecutorPoolStates(std::vector<TExecutorPoolState> &states) const;
5350

5451
THarmonizerStats GetHarmonizerStats() const {
5552
if (Harmonizer) {

ydb/library/actors/core/executor_pool.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ namespace NActors {
99
struct TMailboxHeader;
1010
struct TWorkerContext;
1111
struct TExecutorPoolStats;
12-
struct TExecutorPoolState;
1312
struct TExecutorThreadStats;
1413
class TExecutorPoolJail;
1514
class ISchedulerCookie;
@@ -109,10 +108,6 @@ namespace NActors {
109108
Y_UNUSED(statsCopy);
110109
}
111110

112-
virtual void GetExecutorPoolState(TExecutorPoolState &poolState) const {
113-
Y_UNUSED(poolState);
114-
}
115-
116111
virtual TString GetName() const {
117112
return TString();
118113
}

ydb/library/actors/core/executor_pool_basic.cpp

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
#include "mailbox.h"
1010
#include "thread_context.h"
1111
#include <atomic>
12-
#include <memory>
1312
#include <ydb/library/actors/util/affinity.h>
1413
#include <ydb/library/actors/util/datetime.h>
1514

@@ -426,19 +425,6 @@ namespace NActors {
426425
}
427426
}
428427

429-
void TBasicExecutorPool::GetExecutorPoolState(TExecutorPoolState &poolState) const {
430-
if (Harmonizer) {
431-
TPoolHarmonizerStats stats = Harmonizer->GetPoolStats(PoolId);
432-
poolState.UsedCpu = stats.AvgConsumedCpu;
433-
poolState.PossibleMaxLimit = stats.PotentialMaxThreadCount;
434-
} else {
435-
poolState.PossibleMaxLimit = poolState.MaxLimit;
436-
}
437-
poolState.CurrentLimit = GetThreadCount();
438-
poolState.MaxLimit = GetMaxThreadCount();
439-
poolState.MinLimit = GetDefaultThreadCount();
440-
}
441-
442428
void TBasicExecutorPool::Prepare(TActorSystem* actorSystem, NSchedulerQueue::TReader** scheduleReaders, ui32* scheduleSz) {
443429
TAffinityGuard affinityGuard(Affinity());
444430

ydb/library/actors/core/executor_pool_basic.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,6 @@ namespace NActors {
251251
void Shutdown() override;
252252

253253
void GetCurrentStats(TExecutorPoolStats& poolStats, TVector<TExecutorThreadStats>& statsCopy) const override;
254-
void GetExecutorPoolState(TExecutorPoolState &poolState) const override;
255254
TString GetName() const override {
256255
return PoolName;
257256
}

ydb/library/actors/core/executor_pool_io.cpp

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,14 @@ namespace NActors {
1212
, PoolName(poolName)
1313
{}
1414

15-
TIOExecutorPool::TIOExecutorPool(const TIOExecutorPoolConfig& cfg, IHarmonizer *harmonizer)
15+
TIOExecutorPool::TIOExecutorPool(const TIOExecutorPoolConfig& cfg)
1616
: TIOExecutorPool(
1717
cfg.PoolId,
1818
cfg.Threads,
1919
cfg.PoolName,
2020
new TAffinity(cfg.Affinity)
2121
)
22-
{
23-
Harmonizer = harmonizer;
24-
}
22+
{}
2523

2624
TIOExecutorPool::~TIOExecutorPool() {
2725
Threads.Destroy();
@@ -150,17 +148,6 @@ namespace NActors {
150148
}
151149
}
152150

153-
void TIOExecutorPool::GetExecutorPoolState(TExecutorPoolState &poolState) const {
154-
if (Harmonizer) {
155-
TPoolHarmonizerStats stats = Harmonizer->GetPoolStats(PoolId);
156-
poolState.UsedCpu = stats.AvgConsumedCpu;
157-
}
158-
poolState.CurrentLimit = PoolThreads;
159-
poolState.MaxLimit = PoolThreads;
160-
poolState.MinLimit = PoolThreads;
161-
poolState.PossibleMaxLimit = PoolThreads;
162-
}
163-
164151
TString TIOExecutorPool::GetName() const {
165152
return PoolName;
166153
}

ydb/library/actors/core/executor_pool_io.h

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
#include "actorsystem.h"
44
#include "executor_thread.h"
55
#include "executor_thread_ctx.h"
6-
#include "harmonizer.h"
76
#include "scheduler_queue.h"
87
#include "executor_pool_base.h"
98
#include <ydb/library/actors/actor_type/indexes.h>
@@ -21,13 +20,12 @@ namespace NActors {
2120

2221
THolder<NSchedulerQueue::TQueueType> ScheduleQueue;
2322
TTicketLock ScheduleLock;
24-
IHarmonizer *Harmonizer = nullptr;
2523

2624
const TString PoolName;
2725
const ui32 ActorSystemIndex = NActors::TActorTypeOperator::GetActorSystemIndex();
2826
public:
2927
TIOExecutorPool(ui32 poolId, ui32 threads, const TString& poolName = "", TAffinity* affinity = nullptr);
30-
explicit TIOExecutorPool(const TIOExecutorPoolConfig& cfg, IHarmonizer *harmonizer = nullptr);
28+
explicit TIOExecutorPool(const TIOExecutorPoolConfig& cfg);
3129
~TIOExecutorPool();
3230

3331
ui32 GetReadyActivation(TWorkerContext& wctx, ui64 revolvingCounter) override;
@@ -44,7 +42,6 @@ namespace NActors {
4442
void Shutdown() override;
4543

4644
void GetCurrentStats(TExecutorPoolStats& poolStats, TVector<TExecutorThreadStats>& statsCopy) const override;
47-
void GetExecutorPoolState(TExecutorPoolState &poolState) const override;
4845
TString GetName() const override;
4946
};
5047
}

0 commit comments

Comments
 (0)