@@ -103,10 +103,6 @@ struct TEvPrivate {
103
103
104
104
struct TEvSchedulePublishResources : public TEventLocal <TEvSchedulePublishResources, EEv::EvSchedulePublishResources> {
105
105
};
106
-
107
- struct TEvTakeResourcesSnapshot : public TEventLocal <TEvTakeResourcesSnapshot, EEv::EvTakeResourcesSnapshot> {
108
- std::function<void (TVector<NKikimrKqp::TKqpNodeResources>&&)> Callback;
109
- };
110
106
};
111
107
112
108
class TKqpResourceManager : public IKqpResourceManager {
@@ -117,7 +113,6 @@ class TKqpResourceManager : public IKqpResourceManager {
117
113
, ExecutionUnitsResource(config.GetComputeActorsCount())
118
114
, ExecutionUnitsLimit(config.GetComputeActorsCount())
119
115
, ScanQueryMemoryResource(config.GetQueryMemoryLimit())
120
- , PublishResourcesByExchanger(config.GetEnablePublishResourcesByExchanger())
121
116
{
122
117
SetConfigValues (config);
123
118
}
@@ -132,10 +127,7 @@ class TKqpResourceManager : public IKqpResourceManager {
132
127
config.GetKqpPatternCacheCompiledCapacityBytes (),
133
128
config.GetKqpPatternCachePatternAccessTimesBeforeTryToCompile ());
134
129
135
- if (PublishResourcesByExchanger) {
136
- CreateResourceInfoExchanger (config.GetInfoExchangerSettings ());
137
- return ;
138
- }
130
+ CreateResourceInfoExchanger (config.GetInfoExchangerSettings ());
139
131
}
140
132
141
133
const TIntrusivePtr<TKqpCounters>& GetCounters () const override {
@@ -144,14 +136,10 @@ class TKqpResourceManager : public IKqpResourceManager {
144
136
145
137
void CreateResourceInfoExchanger (
146
138
const NKikimrConfig::TTableServiceConfig::TResourceManager::TInfoExchangerSettings& settings) {
147
- PublishResourcesByExchanger = true ;
148
- if (!ResourceInfoExchanger) {
149
- ResourceSnapshotState = std::make_shared<TResourceSnapshotState>();
150
- auto exchanger = CreateKqpResourceInfoExchangerActor (
151
- Counters, ResourceSnapshotState, settings);
152
- ResourceInfoExchanger = ActorSystem->Register (exchanger);
153
- return ;
154
- }
139
+ ResourceSnapshotState = std::make_shared<TResourceSnapshotState>();
140
+ auto exchanger = CreateKqpResourceInfoExchangerActor (
141
+ Counters, ResourceSnapshotState, settings);
142
+ ResourceInfoExchanger = ActorSystem->Register (exchanger);
155
143
}
156
144
157
145
bool AllocateExecutionUnits (ui32 cnt) {
@@ -328,39 +316,28 @@ class TKqpResourceManager : public IKqpResourceManager {
328
316
329
317
TVector<NKikimrKqp::TKqpNodeResources> GetClusterResources () const override {
330
318
TVector<NKikimrKqp::TKqpNodeResources> resources;
331
- Y_ABORT_UNLESS (PublishResourcesByExchanger);
332
-
333
- if (PublishResourcesByExchanger) {
334
- std::shared_ptr<TVector<NKikimrKqp::TKqpNodeResources>> infos;
335
- with_lock (ResourceSnapshotState->Lock ) {
336
- infos = ResourceSnapshotState->Snapshot ;
337
- }
338
- if (infos != nullptr ) {
339
- resources = *infos;
340
- }
319
+ std::shared_ptr<TVector<NKikimrKqp::TKqpNodeResources>> infos;
320
+ with_lock (ResourceSnapshotState->Lock ) {
321
+ infos = ResourceSnapshotState->Snapshot ;
322
+ }
323
+ if (infos != nullptr ) {
324
+ resources = *infos;
341
325
}
342
326
343
327
return resources;
344
328
}
345
329
346
330
void RequestClusterResourcesInfo (TOnResourcesSnapshotCallback&& callback) override {
347
331
LOG_AS_D (" Schedule Snapshot request" );
348
- if (PublishResourcesByExchanger) {
349
- std::shared_ptr<TVector<NKikimrKqp::TKqpNodeResources>> infos;
350
- with_lock (ResourceSnapshotState->Lock ) {
351
- infos = ResourceSnapshotState->Snapshot ;
352
- }
353
- TVector<NKikimrKqp::TKqpNodeResources> resources;
354
- if (infos != nullptr ) {
355
- resources = *infos;
356
- }
357
- callback (std::move (resources));
358
- return ;
332
+ std::shared_ptr<TVector<NKikimrKqp::TKqpNodeResources>> infos;
333
+ with_lock (ResourceSnapshotState->Lock ) {
334
+ infos = ResourceSnapshotState->Snapshot ;
335
+ }
336
+ TVector<NKikimrKqp::TKqpNodeResources> resources;
337
+ if (infos != nullptr ) {
338
+ resources = *infos;
359
339
}
360
- auto ev = MakeHolder<TEvPrivate::TEvTakeResourcesSnapshot>();
361
- ev->Callback = std::move (callback);
362
- TAutoPtr<IEventHandle> handle = new IEventHandle (SelfId, SelfId, ev.Release ());
363
- ActorSystem->Send (handle);
340
+ callback (std::move (resources));
364
341
}
365
342
366
343
TKqpLocalNodeResources GetLocalResources () const override {
@@ -470,7 +447,6 @@ class TKqpResourceManager : public IKqpResourceManager {
470
447
471
448
// state for resource info exchanger
472
449
std::shared_ptr<TResourceSnapshotState> ResourceSnapshotState;
473
- bool PublishResourcesByExchanger;
474
450
TActorId ResourceInfoExchanger = TActorId();
475
451
};
476
452
@@ -500,7 +476,6 @@ class TKqpResourceManagerActor : public TActorBootstrapped<TKqpResourceManagerAc
500
476
: Config(config)
501
477
, ResourceBrokerId(resourceBrokerId ? resourceBrokerId : MakeResourceBrokerID())
502
478
, KqpProxySharedResources(std::move(kqpProxySharedResources))
503
- , PublishResourcesByExchanger(config.GetEnablePublishResourcesByExchanger())
504
479
{
505
480
ResourceManager = std::make_shared<TKqpResourceManager>(config, counters);
506
481
with_lock (ResourceManagers.Lock ) {
@@ -575,7 +550,6 @@ class TKqpResourceManagerActor : public TActorBootstrapped<TKqpResourceManagerAc
575
550
hFunc (TEvInterconnect::TEvNodeInfo, Handle);
576
551
hFunc (TEvPrivate::TEvPublishResources, HandleWork);
577
552
hFunc (TEvPrivate::TEvSchedulePublishResources, HandleWork);
578
- hFunc (TEvPrivate::TEvTakeResourcesSnapshot, HandleWork);
579
553
hFunc (NNodeWhiteboard::TEvWhiteboard::TEvSystemStateResponse, Handle);
580
554
hFunc (TEvKqp::TEvKqpProxyPublishRequest, HandleWork);
581
555
hFunc (TEvResourceBroker::TEvConfigResponse, HandleWork);
@@ -611,20 +585,6 @@ class TKqpResourceManagerActor : public TActorBootstrapped<TKqpResourceManagerAc
611
585
PublishResourceUsage (" kqp_proxy" );
612
586
}
613
587
614
- void HandleWork (TEvPrivate::TEvTakeResourcesSnapshot::TPtr& ev) {
615
- if (WbState.DomainNotFound ) {
616
- LOG_E (" Can not take resources snapshot, ssGroupId not set. Tenant: " << WbState.Tenant
617
- << " , Board: " << WbState.BoardPath );
618
- ev->Get ()->Callback ({});
619
- return ;
620
- }
621
-
622
- LOG_D (" Create Snapshot actor, board: " << WbState.BoardPath );
623
-
624
- Register (
625
- CreateTakeResourcesSnapshotActor (WbState.BoardPath , std::move (ev->Get ()->Callback )));
626
- }
627
-
628
588
void HandleWork (TEvResourceBroker::TEvConfigResponse::TPtr& ev) {
629
589
if (!ev->Get ()->QueueConfig ) {
630
590
LOG_E (NLocalDb::KqpResourceManagerQueue << " not configured!" );
@@ -699,23 +659,6 @@ class TKqpResourceManagerActor : public TActorBootstrapped<TKqpResourceManagerAc
699
659
config.GetKqpPatternCacheCompiledCapacityBytes (),
700
660
config.GetKqpPatternCachePatternAccessTimesBeforeTryToCompile ());
701
661
702
- bool enablePublishResourcesByExchanger = config.GetEnablePublishResourcesByExchanger ();
703
- if (enablePublishResourcesByExchanger != PublishResourcesByExchanger) {
704
- PublishResourcesByExchanger = enablePublishResourcesByExchanger;
705
- if (enablePublishResourcesByExchanger) {
706
- ResourceManager->CreateResourceInfoExchanger (config.GetInfoExchangerSettings ());
707
- PublishResourceUsage (" exchanger enabled" );
708
- } else {
709
- if (ResourceManager->ResourceInfoExchanger ) {
710
- Send (ResourceManager->ResourceInfoExchanger , new TEvents::TEvPoison);
711
- ResourceManager->ResourceInfoExchanger = TActorId ();
712
- }
713
- ResourceManager->PublishResourcesByExchanger = false ;
714
- ResourceManager->ResourceSnapshotState .reset ();
715
- PublishResourceUsage (" exchanger disabled" );
716
- }
717
- }
718
-
719
662
#define FORCE_VALUE (name ) if (!config.Has ## name ()) config.Set ## name(config.Get ## name());
720
663
FORCE_VALUE (ComputeActorsCount)
721
664
FORCE_VALUE (ChannelBufferSize)
@@ -762,14 +705,7 @@ class TKqpResourceManagerActor : public TActorBootstrapped<TKqpResourceManagerAc
762
705
TStringStream str;
763
706
str.Reserve (8 * 1024 );
764
707
765
- auto snapshot = TVector<NKikimrKqp::TKqpNodeResources>();
766
-
767
- if (PublishResourcesByExchanger) {
768
- ResourceManager->RequestClusterResourcesInfo (
769
- [&snapshot](TVector<NKikimrKqp::TKqpNodeResources>&& resources) {
770
- snapshot = std::move (resources);
771
- });
772
- }
708
+ auto snapshot = ResourceManager->GetClusterResources ();
773
709
774
710
HTML (str) {
775
711
PRE () {
@@ -823,9 +759,6 @@ class TKqpResourceManagerActor : public TActorBootstrapped<TKqpResourceManagerAc
823
759
ResourceManager->ResourceInfoExchanger = TActorId ();
824
760
}
825
761
ResourceManager->ResourceSnapshotState .reset ();
826
- if (WbState.BoardPublisherActorId ) {
827
- Send (WbState.BoardPublisherActorId , new TEvents::TEvPoison);
828
- }
829
762
TActor::PassAway ();
830
763
}
831
764
@@ -882,39 +815,14 @@ class TKqpResourceManagerActor : public TActorBootstrapped<TKqpResourceManagerAc
882
815
pool->SetAvailable (ResourceManager->ScanQueryMemoryResource .Available ());
883
816
}
884
817
885
- if (PublishResourcesByExchanger) {
886
- LOG_I (" Send to publish resource usage for "
887
- << " reason: " << reason
888
- << " , payload: " << payload.ShortDebugString ());
889
- WbState.LastPublishTime = now;
890
- if (ResourceManager->ResourceInfoExchanger ) {
891
- Send (ResourceManager->ResourceInfoExchanger ,
892
- new TEvKqpResourceInfoExchanger::TEvPublishResource (std::move (payload)));
893
- }
894
- return ;
895
- }
896
-
897
- if (WbState.BoardPublisherActorId ) {
898
- LOG_I (" Kill previous board publisher for '" << WbState.BoardPath
899
- << " ' at " << WbState.BoardPublisherActorId << " , reason: " << reason);
900
- Send (WbState.BoardPublisherActorId , new TEvents::TEvPoison);
901
- }
902
-
903
- WbState.BoardPublisherActorId = TActorId ();
904
-
905
- if (WbState.DomainNotFound ) {
906
- LOG_E (" Can not find default state storage group for database " << WbState.Tenant );
907
- return ;
908
- }
909
-
910
- auto boardPublisher = CreateBoardPublishActor (WbState.BoardPath , payload.SerializeAsString (), SelfId (),
911
- /* ttlMs */ 0 , /* reg */ true );
912
- WbState.BoardPublisherActorId = Register (boardPublisher);
913
-
818
+ LOG_I (" Send to publish resource usage for "
819
+ << " reason: " << reason
820
+ << " , payload: " << payload.ShortDebugString ());
914
821
WbState.LastPublishTime = now;
915
-
916
- LOG_I (" Publish resource usage for '" << WbState.BoardPath << " ' at " << WbState.BoardPublisherActorId
917
- << " , reason: " << reason << " , payload: " << payload.ShortDebugString ());
822
+ if (ResourceManager->ResourceInfoExchanger ) {
823
+ Send (ResourceManager->ResourceInfoExchanger ,
824
+ new TEvKqpResourceInfoExchanger::TEvPublishResource (std::move (payload)));
825
+ }
918
826
}
919
827
920
828
private:
@@ -927,7 +835,6 @@ class TKqpResourceManagerActor : public TActorBootstrapped<TKqpResourceManagerAc
927
835
TString Tenant;
928
836
TString BoardPath;
929
837
bool DomainNotFound = false ;
930
- TActorId BoardPublisherActorId;
931
838
std::optional<TInstant> LastPublishTime;
932
839
};
933
840
TWhiteBoardState WbState;
@@ -940,7 +847,6 @@ class TKqpResourceManagerActor : public TActorBootstrapped<TKqpResourceManagerAc
940
847
std::shared_ptr<TKqpResourceManager> ResourceManager;
941
848
942
849
std::optional<TInstant> PublishResourcesScheduledAt;
943
- bool PublishResourcesByExchanger;
944
850
std::optional<TString> SelfDataCenterId;
945
851
};
946
852
0 commit comments