@@ -63,6 +63,8 @@ TFollowerId TLeaderTabletInfo::GetFollowerPromotableOnNode(TNodeId nodeId) const
63
63
}
64
64
65
65
void TLeaderTabletInfo::AssignDomains (const TSubDomainKey& objectDomain, const TVector<TSubDomainKey>& allowedDomains) {
66
+ const TSubDomainKey oldObjectDomain = ObjectDomain;
67
+
66
68
if (!allowedDomains.empty ()) {
67
69
NodeFilter.AllowedDomains = allowedDomains;
68
70
if (!objectDomain) {
@@ -82,6 +84,22 @@ void TLeaderTabletInfo::AssignDomains(const TSubDomainKey& objectDomain, const T
82
84
followerGroup.NodeFilter .AllowedDomains = NodeFilter.AllowedDomains ;
83
85
followerGroup.NodeFilter .ObjectDomain = NodeFilter.ObjectDomain ;
84
86
}
87
+
88
+ const ui64 leaderAndFollowers = 1 + Followers.size ();
89
+ Hive.UpdateDomainTabletsTotal (oldObjectDomain, -leaderAndFollowers);
90
+ Hive.UpdateDomainTabletsTotal (ObjectDomain, +leaderAndFollowers);
91
+
92
+ if (IsAlive ()) {
93
+ Hive.UpdateDomainTabletsAlive (oldObjectDomain, -1 , Node->GetServicedDomain ());
94
+ Hive.UpdateDomainTabletsAlive (ObjectDomain, +1 , Node->GetServicedDomain ());
95
+ }
96
+
97
+ for (const auto & follower : Followers) {
98
+ if (follower.IsAlive ()) {
99
+ Hive.UpdateDomainTabletsAlive (oldObjectDomain, -1 , follower.Node ->GetServicedDomain ());
100
+ Hive.UpdateDomainTabletsAlive (ObjectDomain, +1 , follower.Node ->GetServicedDomain ());
101
+ }
102
+ }
85
103
}
86
104
87
105
bool TLeaderTabletInfo::InitiateAssignTabletGroups () {
@@ -127,6 +145,7 @@ TFollowerTabletInfo& TLeaderTabletInfo::AddFollower(TFollowerGroup& followerGrou
127
145
follower.Id = followerId;
128
146
}
129
147
Hive.UpdateCounterTabletsTotal (+1 );
148
+ Hive.UpdateDomainTabletsTotal (ObjectDomain, +1 );
130
149
return follower;
131
150
}
132
151
0 commit comments