Skip to content

Commit 360e71f

Browse files
authored
add node roles (#9413)
1 parent 69669df commit 360e71f

File tree

4 files changed

+28
-5
lines changed

4 files changed

+28
-5
lines changed

ydb/core/base/board_replica.cpp

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#include "statestorage_impl.h"
2+
#include <ydb/core/node_whiteboard/node_whiteboard.h>
23
#include <ydb/library/services/services.pb.h>
34
#include <ydb/library/actors/core/interconnect.h>
45

@@ -17,7 +18,7 @@
1718

1819
namespace NKikimr {
1920

20-
class TBoardReplicaActor : public TActor<TBoardReplicaActor> {
21+
class TBoardReplicaActor : public TActorBootstrapped<TBoardReplicaActor> {
2122

2223
using TOwnerIndex = TMap<TActorId, ui32, TActorId::TOrderedCmp>;
2324
using TPathIndex = TMap<TString, TSet<ui32>>;
@@ -419,9 +420,15 @@ class TBoardReplicaActor : public TActor<TBoardReplicaActor> {
419420
}
420421

421422
TBoardReplicaActor()
422-
: TActor(&TThis::StateWork)
423423
{}
424424

425+
void Bootstrap() {
426+
auto localNodeId = SelfId().NodeId();
427+
auto whiteboardId = NNodeWhiteboard::MakeNodeWhiteboardServiceId(localNodeId);
428+
Send(whiteboardId, new NNodeWhiteboard::TEvWhiteboard::TEvSystemStateAddRole("StateStorageBoard"));
429+
Become(&TThis::StateWork);
430+
}
431+
425432
STATEFN(StateWork) {
426433
switch (ev->GetTypeRewrite()) {
427434
hFunc(TEvStateStorage::TEvReplicaBoardPublish, Handle);

ydb/core/base/statestorage_replica.cpp

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include <ydb/library/actors/core/interconnect.h>
88
#include <ydb/library/actors/core/hfunc.h>
99
#include <ydb/library/actors/core/log.h>
10+
#include <ydb/core/node_whiteboard/node_whiteboard.h>
1011

1112
#include <util/generic/map.h>
1213
#include <util/generic/hash_set.h>
@@ -22,7 +23,7 @@
2223

2324
namespace NKikimr {
2425

25-
class TStateStorageReplica : public TActor<TStateStorageReplica> {
26+
class TStateStorageReplica : public TActorBootstrapped<TStateStorageReplica> {
2627
TIntrusivePtr<TStateStorageInfo> Info;
2728
const ui32 ReplicaIndex;
2829

@@ -416,13 +417,19 @@ class TStateStorageReplica : public TActor<TStateStorageReplica> {
416417
}
417418

418419
TStateStorageReplica(const TIntrusivePtr<TStateStorageInfo> &info, ui32 replicaIndex)
419-
: TActor(&TThis::StateInit)
420-
, Info(info)
420+
: Info(info)
421421
, ReplicaIndex(replicaIndex)
422422
{
423423
Y_UNUSED(ReplicaIndex);
424424
}
425425

426+
void Bootstrap() {
427+
auto localNodeId = SelfId().NodeId();
428+
auto whiteboardId = NNodeWhiteboard::MakeNodeWhiteboardServiceId(localNodeId);
429+
Send(whiteboardId, new NNodeWhiteboard::TEvWhiteboard::TEvSystemStateAddRole("StateStorage"));
430+
Become(&TThis::StateInit);
431+
}
432+
426433
STATEFN(StateInit) {
427434
switch (ev->GetTypeRewrite()) {
428435
hFunc(TEvStateStorage::TEvReplicaLookup, Handle);

ydb/core/tablet/bootstrapper.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#include <ydb/core/base/tablet.h>
44
#include <ydb/core/base/statestorage.h>
55
#include <ydb/core/base/appdata.h>
6+
#include <ydb/core/node_whiteboard/node_whiteboard.h>
67

78
#include <ydb/library/actors/core/interconnect.h>
89
#include <ydb/library/actors/core/hfunc.h>
@@ -190,6 +191,10 @@ class TBootstrapper : public TActor<TBootstrapper> {
190191
}
191192

192193
void BeginNewRound(const TActorContext &ctx) {
194+
auto localNodeId = SelfId().NodeId();
195+
auto whiteboardId = NNodeWhiteboard::MakeNodeWhiteboardServiceId(localNodeId);
196+
Send(whiteboardId, new NNodeWhiteboard::TEvWhiteboard::TEvSystemStateAddRole("Bootstrapper"));
197+
193198
if (BootstrapperInfo->OtherNodes.empty())
194199
return Boot(ctx);
195200

ydb/core/tx/scheme_board/replica.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#include "replica.h"
99

1010
#include <ydb/core/scheme/scheme_pathid.h>
11+
#include <ydb/core/node_whiteboard/node_whiteboard.h>
1112

1213
#include <ydb/library/services/services.pb.h>
1314
#include <ydb/library/yverify_stream/yverify_stream.h>
@@ -1269,6 +1270,9 @@ class TReplica: public TMonitorableActor<TReplica> {
12691270

12701271
void Bootstrap() {
12711272
TMonitorableActor::Bootstrap();
1273+
auto localNodeId = SelfId().NodeId();
1274+
auto whiteboardId = NNodeWhiteboard::MakeNodeWhiteboardServiceId(localNodeId);
1275+
Send(whiteboardId, new NNodeWhiteboard::TEvWhiteboard::TEvSystemStateAddRole("SchemeBoard"));
12721276
Become(&TThis::StateWork);
12731277
}
12741278

0 commit comments

Comments
 (0)