@@ -63,6 +63,8 @@ TFollowerId TLeaderTabletInfo::GetFollowerPromotableOnNode(TNodeId nodeId) const
6363}
6464
6565void TLeaderTabletInfo::AssignDomains (const TSubDomainKey& objectDomain, const TVector<TSubDomainKey>& allowedDomains) {
66+ const TSubDomainKey oldObjectDomain = ObjectDomain;
67+
6668 if (!allowedDomains.empty ()) {
6769 NodeFilter.AllowedDomains = allowedDomains;
6870 if (!objectDomain) {
@@ -82,6 +84,22 @@ void TLeaderTabletInfo::AssignDomains(const TSubDomainKey& objectDomain, const T
8284 followerGroup.NodeFilter .AllowedDomains = NodeFilter.AllowedDomains ;
8385 followerGroup.NodeFilter .ObjectDomain = NodeFilter.ObjectDomain ;
8486 }
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+ }
85103}
86104
87105bool TLeaderTabletInfo::InitiateAssignTabletGroups () {
@@ -127,6 +145,7 @@ TFollowerTabletInfo& TLeaderTabletInfo::AddFollower(TFollowerGroup& followerGrou
127145 follower.Id = followerId;
128146 }
129147 Hive.UpdateCounterTabletsTotal (+1 );
148+ Hive.UpdateDomainTabletsTotal (ObjectDomain, +1 );
130149 return follower;
131150}
132151
0 commit comments