diff --git a/ydb/core/base/board_lookup.cpp b/ydb/core/base/board_lookup.cpp index 8a53352a674a..634cc5dc064e 100644 --- a/ydb/core/base/board_lookup.cpp +++ b/ydb/core/base/board_lookup.cpp @@ -26,7 +26,6 @@ class TBoardLookupActor : public TActorBootstrapped { const TString Path; const TActorId Owner; const EBoardLookupMode Mode; - const ui32 StateStorageGroupId; const bool Subscriber; TBoardRetrySettings BoardRetrySettings; @@ -112,11 +111,11 @@ class TBoardLookupActor : public TActorBootstrapped { void NotAvailable() { if (CurrentStateFunc() != &TThis::StateSubscribe) { Send(Owner, new TEvStateStorage::TEvBoardInfo( - TEvStateStorage::TEvBoardInfo::EStatus::NotAvailable, Path, StateStorageGroupId)); + TEvStateStorage::TEvBoardInfo::EStatus::NotAvailable, Path)); } else { Send(Owner, new TEvStateStorage::TEvBoardInfoUpdate( - TEvStateStorage::TEvBoardInfo::EStatus::NotAvailable, Path, StateStorageGroupId + TEvStateStorage::TEvBoardInfo::EStatus::NotAvailable, Path ) ); } @@ -128,7 +127,7 @@ class TBoardLookupActor : public TActorBootstrapped { if ((!Subscriber && Stats.HasInfo == WaitForReplicasToSuccess) || (Subscriber && Stats.HasInfo + Stats.NoInfo == WaitForReplicasToSuccess)) { auto reply = MakeHolder( - TEvStateStorage::TEvBoardInfo::EStatus::Ok, Path, StateStorageGroupId); + TEvStateStorage::TEvBoardInfo::EStatus::Ok, Path); reply->InfoEntries = std::move(Info); Send(Owner, std::move(reply)); if (Subscriber) { @@ -158,7 +157,7 @@ class TBoardLookupActor : public TActorBootstrapped { auto *msg = ev->Get(); if (msg->Replicas.empty()) { - BLOG_ERROR("lookup on unconfigured statestorage board service " << StateStorageGroupId); + BLOG_ERROR("lookup on unconfigured statestorage board service"); return NotAvailable(); } @@ -239,7 +238,7 @@ class TBoardLookupActor : public TActorBootstrapped { } if (update.has_value()) { auto reply = MakeHolder( - TEvStateStorage::TEvBoardInfo::EStatus::Ok, Path, StateStorageGroupId); + TEvStateStorage::TEvBoardInfo::EStatus::Ok, Path); reply->Updates = { { oid, std::move(update.value()) } }; Send(Owner, std::move(reply)); } @@ -307,7 +306,7 @@ class TBoardLookupActor : public TActorBootstrapped { if (isStateSubscribe && !updates.empty()) { auto reply = MakeHolder( - TEvStateStorage::TEvBoardInfo::EStatus::Ok, Path, StateStorageGroupId); + TEvStateStorage::TEvBoardInfo::EStatus::Ok, Path); reply->Updates = std::move(updates); Send(Owner, std::move(reply)); } @@ -483,7 +482,7 @@ class TBoardLookupActor : public TActorBootstrapped { } if (isStateSubscribe && !updates.empty()) { auto reply = MakeHolder( - TEvStateStorage::TEvBoardInfo::EStatus::Ok, Path, StateStorageGroupId); + TEvStateStorage::TEvBoardInfo::EStatus::Ok, Path); reply->Updates = std::move(updates); Send(Owner, std::move(reply)); } @@ -495,19 +494,18 @@ class TBoardLookupActor : public TActorBootstrapped { } TBoardLookupActor( - const TString &path, TActorId owner, EBoardLookupMode mode, ui32 groupId, + const TString &path, TActorId owner, EBoardLookupMode mode, TBoardRetrySettings boardRetrySettings) : Path(path) , Owner(owner) , Mode(mode) - , StateStorageGroupId(groupId) , Subscriber(Mode == EBoardLookupMode::Subscription) , BoardRetrySettings(std::move(boardRetrySettings)) , WaitForReplicasToSuccess(0) {} void Bootstrap() { - const TActorId proxyId = MakeStateStorageProxyID(StateStorageGroupId); + const TActorId proxyId = MakeStateStorageProxyID(); Send(proxyId, new TEvStateStorage::TEvResolveBoard(Path), IEventHandle::FlagTrackDelivery); Become(&TThis::StateResolve); } @@ -546,9 +544,9 @@ class TBoardLookupActor : public TActorBootstrapped { }; IActor* CreateBoardLookupActor( - const TString &path, const TActorId &owner, ui32 groupId, EBoardLookupMode mode, + const TString &path, const TActorId &owner, EBoardLookupMode mode, TBoardRetrySettings boardRetrySettings) { - return new TBoardLookupActor(path, owner, mode, groupId, std::move(boardRetrySettings)); + return new TBoardLookupActor(path, owner, mode, std::move(boardRetrySettings)); } } diff --git a/ydb/core/base/board_publish.cpp b/ydb/core/base/board_publish.cpp index 73261a65797c..81a4a50526f4 100644 --- a/ydb/core/base/board_publish.cpp +++ b/ydb/core/base/board_publish.cpp @@ -97,7 +97,6 @@ class TBoardPublishActor : public TActorBootstrapped { const TString Path; const TString Payload; const TActorId Owner; - const ui32 StateStorageGroupId; const ui32 TtlMs; const bool Register; const TBoardRetrySettings BoardRetrySettings; @@ -143,7 +142,7 @@ class TBoardPublishActor : public TActorBootstrapped { } void HandleUndelivered() { - BLOG_ERROR("publish on unavailable statestorage board service " << StateStorageGroupId); + BLOG_ERROR("publish on unavailable statestorage board service"); Become(&TThis::StateCalm); } @@ -151,7 +150,7 @@ class TBoardPublishActor : public TActorBootstrapped { auto *msg = ev->Get(); if (msg->Replicas.empty()) { - BLOG_ERROR("publish on unconfigured statestorage board service " << StateStorageGroupId); + BLOG_ERROR("publish on unconfigured statestorage board service"); } else { auto now = TlsActivationContext->Monotonic(); for (auto &replicaId : msg->Replicas) { @@ -238,12 +237,11 @@ class TBoardPublishActor : public TActorBootstrapped { } TBoardPublishActor( - const TString &path, const TString &payload, const TActorId &owner, ui32 groupId, ui32 ttlMs, bool reg, + const TString &path, const TString &payload, const TActorId &owner, ui32 ttlMs, bool reg, TBoardRetrySettings boardRetrySettings) : Path(path) , Payload(payload) , Owner(owner) - , StateStorageGroupId(groupId) , TtlMs(ttlMs) , Register(reg) , BoardRetrySettings(std::move(boardRetrySettings)) @@ -253,7 +251,7 @@ class TBoardPublishActor : public TActorBootstrapped { } void Bootstrap() { - const TActorId proxyId = MakeStateStorageProxyID(StateStorageGroupId); + const TActorId proxyId = MakeStateStorageProxyID(); Send(proxyId, new TEvStateStorage::TEvResolveBoard(Path), IEventHandle::FlagTrackDelivery); Become(&TThis::StateResolve); @@ -277,9 +275,9 @@ class TBoardPublishActor : public TActorBootstrapped { }; IActor* CreateBoardPublishActor( - const TString &path, const TString &payload, const TActorId &owner, ui32 groupId, ui32 ttlMs, bool reg, + const TString &path, const TString &payload, const TActorId &owner, ui32 ttlMs, bool reg, TBoardRetrySettings boardRetrySettings) { - return new TBoardPublishActor(path, payload, owner, groupId, ttlMs, reg, std::move(boardRetrySettings)); + return new TBoardPublishActor(path, payload, owner, ttlMs, reg, std::move(boardRetrySettings)); } TString MakeEndpointsBoardPath(const TString &database) { diff --git a/ydb/core/base/board_subscriber_ut.cpp b/ydb/core/base/board_subscriber_ut.cpp index b322312a71fc..b5952dee2b25 100644 --- a/ydb/core/base/board_subscriber_ut.cpp +++ b/ydb/core/base/board_subscriber_ut.cpp @@ -21,7 +21,7 @@ class TBoardSubscriberTest: public NUnitTest::TTestBase { TActorId CreateSubscriber(const TString& path, const TActorId& owner, ui32 nodeIdx) { const TActorId subscriber = Context->Register( - CreateBoardLookupActor(path, owner, 0, EBoardLookupMode::Subscription), nodeIdx + CreateBoardLookupActor(path, owner, EBoardLookupMode::Subscription), nodeIdx ); Context->EnableScheduleForActor(subscriber); return subscriber; @@ -30,7 +30,7 @@ class TBoardSubscriberTest: public NUnitTest::TTestBase { TActorId CreatePublisher( const TString& path, const TString& payload, const TActorId& owner, ui32 nodeIdx) { const TActorId publisher = Context->Register( - CreateBoardPublishActor(path, payload, owner, 0, 0, true), nodeIdx + CreateBoardPublishActor(path, payload, owner, 0, true), nodeIdx ); Context->EnableScheduleForActor(publisher); return publisher; @@ -61,7 +61,7 @@ class TBoardSubscriberTest: public NUnitTest::TTestBase { } TVector ResolveReplicas() { - const TActorId proxy = MakeStateStorageProxyID(0); + const TActorId proxy = MakeStateStorageProxyID(); const TActorId edge = Context->AllocateEdgeActor(); Context->Send(proxy, edge, new TEvStateStorage::TEvResolveBoard("path")); @@ -76,7 +76,7 @@ class TBoardSubscriberTest: public NUnitTest::TTestBase { void SetUp() override { Context = MakeHolder(3); - SetupCustomStateStorage(*Context, 3, 3, 1, 0); + SetupCustomStateStorage(*Context, 3, 3, 1); Context->Initialize(TAppPrepare().Unwrap()); } diff --git a/ydb/core/base/domain.cpp b/ydb/core/base/domain.cpp index 61505e158d5b..3fe01adabb31 100644 --- a/ydb/core/base/domain.cpp +++ b/ydb/core/base/domain.cpp @@ -4,22 +4,14 @@ namespace NKikimr { TDomainsInfo::TDomain::TDomain(const TString &name, ui32 domainUid, ui64 schemeRootId, - ui32 defaultStateStorageGroup, ui32 defaultSchemeBoardGroup, - TVectorUi32 stateStorageGroup, TVectorUi64 coordinators, TVectorUi64 mediators, TVectorUi64 allocators, - ui32 defaultHiveUid, TVectorUi32 hivesUids, ui64 domainPlanResolution, const TStoragePoolKinds *poolTypes) : DomainUid(domainUid) - , DefaultStateStorageGroup(defaultStateStorageGroup) - , DefaultSchemeBoardGroup(defaultSchemeBoardGroup) , SchemeRoot(schemeRootId) , Name(name) , Coordinators(std::move(coordinators)) , Mediators(std::move(mediators)) , TxAllocators(std::move(allocators)) - , StateStorageGroups(std::move(stateStorageGroup)) - , DefaultHiveUid(defaultHiveUid) - , HiveUids(std::move(hivesUids)) , DomainPlanResolution(domainPlanResolution) , StoragePoolTypes(poolTypes ? *poolTypes : TStoragePoolKinds()) {} diff --git a/ydb/core/base/domain.h b/ydb/core/base/domain.h index a832c73f4a00..00bce16e5bd7 100644 --- a/ydb/core/base/domain.h +++ b/ydb/core/base/domain.h @@ -14,52 +14,31 @@ namespace NKikimrBlobStorage { namespace NKikimr { struct TDomainsInfo : public TThrRefBase { - static const ui32 FirstUserTag = 32; - static const ui32 FakeRootTag = 0xFFFFE; - static const ui32 MaxUserTag = 0xFFFFF; - static const ui32 BadDomainId = 0xFFFFFFFFu; - static const ui64 BadTabletId = 0xFFFFFFFFFFFFFFFFull; - static const ui32 DomainBits = 5; - static const ui32 MaxDomainId = (1 << DomainBits) - 1; - - // it's very sad mistake - // MakeTabletID should be called with hiveUid == 0 for all domain's static tablets - // but we do it with hiveUid == domain, and collision with dynamic tablets occurs - // use AvoidBrokenUniqPartsBySystemTablets to avoid this mistake - static ui64 MakeTxCoordinatorID(ui32 domain, ui32 uid) { - Y_DEBUG_ABORT_UNLESS(domain < 32 && uid < 256); - const ui64 uniqPart = 0x800000 | (ui64)uid; - return MakeTabletID(domain, domain, uniqPart); - } - - static ui64 MakeTxCoordinatorIDFixed(ui32 domain, ui32 uid) { - Y_DEBUG_ABORT_UNLESS(domain < 32 && uid < 256); - const ui64 uniqPart = 0x800000 | (ui64)uid; - return MakeTabletID(domain, 0, uniqPart); - } + static constexpr ui32 FirstUserTag = 32; + static constexpr ui32 FakeRootTag = 0xFFFFE; + static constexpr ui32 MaxUserTag = 0xFFFFF; + static constexpr ui32 BadDomainId = 0xFFFFFFFFu; + static constexpr ui64 BadTabletId = 0xFFFFFFFFFFFFFFFFull; + static constexpr ui32 DomainBits = 5; + static constexpr ui32 MaxDomainId = (1 << DomainBits) - 1; - static ui64 MakeTxMediatorID(ui32 domain, ui32 uid) { - Y_DEBUG_ABORT_UNLESS(domain < 32 && uid < 256); - const ui64 uniqPart = 0x810000 | (ui64)uid; - return MakeTabletID(domain, domain, uniqPart); + // for testing purposes only + static ui64 MakeTxCoordinatorIDFixed(ui32 uid) { + Y_DEBUG_ABORT_UNLESS(uid < 256); + const ui64 uniqPart = 0x800000 | uid; + return MakeTabletID(false, uniqPart); } - static ui64 MakeTxMediatorIDFixed(ui32 domain, ui32 uid) { - Y_DEBUG_ABORT_UNLESS(domain < 32 && uid < 256); - const ui64 uniqPart = 0x810000 | (ui64)uid; - return MakeTabletID(domain, 0, uniqPart); + static ui64 MakeTxMediatorIDFixed(ui32 uid) { + Y_DEBUG_ABORT_UNLESS(uid < 256); + const ui64 uniqPart = 0x810000 | uid; + return MakeTabletID(false, uniqPart); } - static ui64 MakeTxAllocatorID(ui32 domain, ui32 uid) { - Y_DEBUG_ABORT_UNLESS(domain < 32 && uid > 0 && uid < 4096); - const ui64 uniqPart = 0x820000 | (ui64)uid; - return MakeTabletID(domain, domain, uniqPart); - } - - static ui64 MakeTxAllocatorIDFixed(ui32 domain, ui32 uid) { - Y_DEBUG_ABORT_UNLESS(domain < 32 && uid > 0 && uid < 4096); - const ui64 uniqPart = 0x820000 | (ui64)uid; - return MakeTabletID(domain, 0, uniqPart); + static ui64 MakeTxAllocatorIDFixed(ui32 uid) { + Y_DEBUG_ABORT_UNLESS(uid > 0 && uid < 4096); + const ui64 uniqPart = 0x820000 | uid; + return MakeTabletID(false, uniqPart); } static constexpr const char* SystemTableDefaultPoicyName() { @@ -80,16 +59,11 @@ struct TDomainsInfo : public TThrRefBase { using TStoragePoolKinds = THashMap; const ui32 DomainUid; - const ui32 DefaultStateStorageGroup; - const ui32 DefaultSchemeBoardGroup; const ui64 SchemeRoot; const TString Name; const TVector Coordinators; const TVector Mediators; const TVector TxAllocators; - const TVector StateStorageGroups; - const ui32 DefaultHiveUid; - const TVector HiveUids; const ui64 DomainPlanResolution; const TStoragePoolKinds StoragePoolTypes; @@ -98,80 +72,22 @@ struct TDomainsInfo : public TThrRefBase { private: //don't reinterpret any data TDomain(const TString &name, ui32 domainUid, ui64 schemeRootId, - ui32 defaultStateStorageGroup, ui32 defaultSchemeBoardGroup, - TVectorUi32 stateStorageGroup, TVectorUi64 coordinators, TVectorUi64 mediators, TVectorUi64 allocators, - ui32 defaultHiveUid, TVectorUi32 hivesUids, ui64 domainPlanResolution, const TStoragePoolKinds *poolTypes); public: ~TDomain(); - //interpret coordinatorUids, mediatorUids and allocatorUids as vector uids and call proper MakeTabletId for each - template - static TDomain::TPtr ConstructDomain(const TString &name, ui32 domainUid, ui64 schemeRoot, - ui32 defaultStateStorageGroup, ui32 defaultSchemeBoardGroup, - const TUidsContainerUi32 &stateStorageGroups, - ui32 defaultHiveUid,const TUidsContainerUi32 &hiveUids, - ui64 planResolution, - const TUidsContainerUi64 &coordinatorUids, - const TUidsContainerUi64 &mediatorUids, - const TUidsContainerUi64 &allocatorUids, - const TStoragePoolKinds &poolTypes) - { - return new TDomain(name, domainUid, schemeRoot, - defaultStateStorageGroup, defaultSchemeBoardGroup, - TVectorUi32(stateStorageGroups.begin(), stateStorageGroups.end()), - MakeCoordinatorsIds(TVectorUi64(coordinatorUids.begin(), coordinatorUids.end()), domainUid), - MakeMediatorsIds(TVectorUi64(mediatorUids.begin(), mediatorUids.end()), domainUid), - MakeAllocatorsIds(TVectorUi64(allocatorUids.begin(), allocatorUids.end()), domainUid), - defaultHiveUid, TVectorUi32(hiveUids.begin(), hiveUids.end()), - planResolution, &poolTypes); - } - - //interpret coordinatorUids, mediatorUids and allocatorUids as vector uids and call proper MakeTabletId for each - template - static TDomain::TPtr ConstructDomain(const TString &name, ui32 domainUid, ui64 schemeRoot, - ui32 defaultStateStorageGroup, ui32 defaultSchemeBoardGroup, - const TUidsContainerUi32 &stateStorageGroups, - ui32 defaultHiveUid,const TUidsContainerUi32 &hiveUids, - ui64 planResolution, - const TUidsContainerUi64 &coordinatorUids, - const TUidsContainerUi64 &mediatorUids, - const TUidsContainerUi64 &allocatorUids) - { - return new TDomain(name, domainUid, schemeRoot, - defaultStateStorageGroup, defaultSchemeBoardGroup, - TVectorUi32(stateStorageGroups.begin(), stateStorageGroups.end()), - MakeCoordinatorsIds(TVectorUi64(coordinatorUids.begin(), coordinatorUids.end()), domainUid), - MakeMediatorsIds(TVectorUi64(mediatorUids.begin(), mediatorUids.end()), domainUid), - MakeAllocatorsIds(TVectorUi64(allocatorUids.begin(), allocatorUids.end()), domainUid), - defaultHiveUid, TVectorUi32(hiveUids.begin(), hiveUids.end()), - planResolution, nullptr); - } - //no any tablets setted static TDomain::TPtr ConstructEmptyDomain(const TString &name, ui32 domainId = 0) { const ui64 schemeRoot = 0; - const ui32 stateStorageGroup = domainId; - const ui32 defHiveUid = domainId; ui64 planResolution = 500; - return new TDomain(name, domainId, schemeRoot, - stateStorageGroup, stateStorageGroup, - TVectorUi32(1, stateStorageGroup), - TVectorUi64(), - TVectorUi64(), - TVectorUi64(), - defHiveUid, TVectorUi32(1, defHiveUid), - planResolution, nullptr); + return new TDomain(name, domainId, schemeRoot, {}, {}, {}, planResolution, nullptr); } - template + template static TDomain::TPtr ConstructDomainWithExplicitTabletIds(const TString &name, ui32 domainUid, ui64 schemeRoot, - ui32 defaultStateStorageGroup, ui32 defaultSchemeBoardGroup, - const TUidsContainerUi32 &stateStorageGroups, - ui32 defaultHiveUid,const TUidsContainerUi32 &hiveUids, ui64 planResolution, const TUidsContainerUi64 &coordinatorUids, const TUidsContainerUi64 &mediatorUids, @@ -179,94 +95,33 @@ struct TDomainsInfo : public TThrRefBase { const TStoragePoolKinds &poolTypes) { return new TDomain(name, domainUid, schemeRoot, - defaultStateStorageGroup, defaultSchemeBoardGroup, - TVectorUi32(stateStorageGroups.begin(), stateStorageGroups.end()), TVectorUi64(coordinatorUids.begin(), coordinatorUids.end()), TVectorUi64(mediatorUids.begin(), mediatorUids.end()), TVectorUi64(allocatorUids.begin(), allocatorUids.end()), - defaultHiveUid, TVectorUi32(hiveUids.begin(), hiveUids.end()), planResolution, &poolTypes); } - template + template static TDomain::TPtr ConstructDomainWithExplicitTabletIds(const TString &name, ui32 domainUid, ui64 schemeRoot, - ui32 defaultStateStorageGroup, ui32 defaultSchemeBoardGroup, - const TUidsContainerUi32 &stateStorageGroups, - ui32 defaultHiveUid,const TUidsContainerUi32 &hiveUids, ui64 planResolution, const TUidsContainerUi64 &coordinatorUids, const TUidsContainerUi64 &mediatorUids, const TUidsContainerUi64 &allocatorUids) { return new TDomain(name, domainUid, schemeRoot, - defaultStateStorageGroup, defaultSchemeBoardGroup, - TVectorUi32(stateStorageGroups.begin(), stateStorageGroups.end()), TVectorUi64(coordinatorUids.begin(), coordinatorUids.end()), TVectorUi64(mediatorUids.begin(), mediatorUids.end()), TVectorUi64(allocatorUids.begin(), allocatorUids.end()), - defaultHiveUid, TVectorUi32(hiveUids.begin(), hiveUids.end()), planResolution, nullptr); } ui32 DomainRootTag() const { return DomainUid + FirstUserTag; } - - static TVector TransformUids(TVector &&uids, std::function func) { - TVector result(std::move(uids)); - for (ui32 i = 0; i < result.size(); ++i) { - result[i] = func(result[i]); - } - return result; - } - - static TVector TransformIntoVectorUids(ui32 count) { - TVector result; - result.reserve(count); - for (ui32 i = 1; i <= count; ++i) { - result.push_back(i); - } - return result; - } - - static TVector MakeCoordinatorsIds(TVector &&uids, ui32 domainUid) { - return TransformUids(std::move(uids), [&domainUid](ui32 uid) { return MakeTxCoordinatorID(domainUid, uid); }); - } - - static TVector MakeCoordinatorsIds(ui32 count, ui32 domainUid) { - return MakeCoordinatorsIds(TransformIntoVectorUids(count), domainUid); - } - - static TVector MakeMediatorsIds(TVector &&uids, ui32 domainUid) { - return TransformUids(std::move(uids), [&domainUid](ui32 uid) { return MakeTxMediatorID(domainUid, uid); }); - } - - static TVector MakeMediatorsIds(ui32 count, ui32 domainUid) { - return MakeMediatorsIds(TransformIntoVectorUids(count), domainUid); - } - - static TVector MakeAllocatorsIds(TVector &&uids, ui32 domainUid) { - return TransformUids(std::move(uids), [&domainUid](ui32 uid) { return MakeTxAllocatorID(domainUid, uid); }); - } - - static TVector MakeAllocatorsIds(ui32 count, ui32 domainUid) { - return MakeAllocatorsIds(TransformIntoVectorUids(count), domainUid); - } - - ui32 GetHiveUidByIdx(ui32 idx) const { - if (idx == Max()) { - return DefaultHiveUid; - } - - return HiveUids.at(idx); - } }; - TMap> Domains; - THashMap> DomainByName; - TMap> DomainByStateStorageGroup; - TMap> DomainByHiveUid; - TMap HivesByHiveUid; + TIntrusivePtr Domain; + std::optional HiveTabletId; TNamedCompactionPolicies NamedCompactionPolicies; TDomainsInfo() { @@ -288,91 +143,37 @@ struct TDomainsInfo : public TThrRefBase { } void AddDomain(TDomain *domain) { - Y_ABORT_UNLESS(domain->DomainUid <= MaxDomainId); - Domains[domain->DomainUid] = domain; - DomainByName[domain->Name] = domain; - Y_ABORT_UNLESS(Domains.size() == DomainByName.size()); - for (auto group: domain->StateStorageGroups) { - DomainByStateStorageGroup[group] = domain; - } - - for (auto hiveUid : domain->HiveUids) { - DomainByHiveUid[hiveUid] = domain; - } + Y_ABORT_UNLESS(!Domain); + Domain = domain; } - void AddHive(ui32 hiveUid, ui64 hive) { - HivesByHiveUid[hiveUid] = hive; + void AddHive(ui64 hive) { + Y_ABORT_UNLESS(!HiveTabletId); + HiveTabletId = hive; } void ClearDomainsAndHive() { - Domains.clear(); - DomainByName.clear(); - DomainByStateStorageGroup.clear(); - DomainByHiveUid.clear(); - HivesByHiveUid.clear(); - } - - ui32 GetDefaultStateStorageGroup(ui32 domainUid) const { - auto it = Domains.find(domainUid); - Y_ABORT_UNLESS(it != Domains.end(), "domainUid = %" PRIu32, domainUid); - return it->second->DefaultStateStorageGroup; - } - - ui32 GetDefaultHiveUid(ui32 domainUid) const { - auto it = Domains.find(domainUid); - Y_ABORT_UNLESS(it != Domains.end(), "domainUid = %" PRIu32, domainUid); - return it->second->DefaultHiveUid; - } - - ui32 GetStateStorageGroupDomainUid(ui32 stateStorageGroup) const { - auto it = DomainByStateStorageGroup.find(stateStorageGroup); - Y_ABORT_UNLESS(it != DomainByStateStorageGroup.end(), "stateStorageGroup = %" PRIu32, stateStorageGroup); - return it->second->DomainUid; - } - - ui32 GetDomainUidByTabletId(ui64 tabletId) const { - const ui32 ssid = StateStorageGroupFromTabletID(tabletId); - if (const auto *x = DomainByStateStorageGroup.FindPtr(ssid)) - return x->Get()->DomainUid; - else - return BadDomainId; + Domain.Reset(); + HiveTabletId.reset(); } const TDomain& GetDomain(ui32 domainUid) const { - auto it = Domains.find(domainUid); - Y_ABORT_UNLESS(it != Domains.end(), "domainUid = %" PRIu32, domainUid); - return *(it->second); - } - - const TDomain* GetDomainByName(TStringBuf name) const { - auto it = DomainByName.find(name); - if (it != DomainByName.end()) - return it->second.Get(); - return nullptr; + Y_ABORT_UNLESS(Domain); + Y_ABORT_UNLESS(domainUid == Domain->DomainUid); + return *Domain; } - ui64 GetHive(ui32 hiveUid) const { - auto it = HivesByHiveUid.find(hiveUid); - if (it != HivesByHiveUid.end()) - return it->second; - else - return BadTabletId; + const TDomain *GetDomain() const { + Y_ABORT_UNLESS(Domain); + return Domain.Get(); } - ui32 GetHiveDomainUid(ui32 hiveUid) const { - auto it = DomainByHiveUid.find(hiveUid); - if (it != DomainByHiveUid.end()) - return it->second->DomainUid; - else - return BadDomainId; + const TDomain* GetDomainByName(TStringBuf name) const { + return Domain && name == Domain->Name ? Domain.Get() : nullptr; } - ui32 GetHiveUidByHiveId(ui64 hiveTabletId) const { - for (const auto &xpair : HivesByHiveUid) - if (xpair.second == hiveTabletId) - return xpair.first; - return Max(); + ui64 GetHive() const { + return HiveTabletId.value_or(BadTabletId); } }; diff --git a/ydb/core/base/statestorage.cpp b/ydb/core/base/statestorage.cpp index e73cc923e42c..a530efaa1ed3 100644 --- a/ydb/core/base/statestorage.cpp +++ b/ydb/core/base/statestorage.cpp @@ -245,7 +245,7 @@ static void CopyStateStorageRingInfo( TIntrusivePtr BuildStateStorageInfo(char (&namePrefix)[TActorId::MaxServiceIDLength], const NKikimrConfig::TDomainsConfig::TStateStorage& config) { TIntrusivePtr info = new TStateStorageInfo(); - info->StateStorageGroup = config.GetSSId(); + Y_ABORT_UNLESS(config.GetSSId() == 1); info->StateStorageVersion = config.GetStateStorageVersion(); info->CompatibleVersions.reserve(config.CompatibleVersionsSize()); @@ -256,7 +256,8 @@ TIntrusivePtr BuildStateStorageInfo(char (&namePrefix)[TActor const size_t offset = FindIndex(namePrefix, char()); Y_ABORT_UNLESS(offset != NPOS && (offset + sizeof(ui32)) < TActorId::MaxServiceIDLength); - memcpy(namePrefix + offset, reinterpret_cast(&info->StateStorageGroup), sizeof(ui32)); + const ui32 stateStorageGroup = 1; + memcpy(namePrefix + offset, reinterpret_cast(&stateStorageGroup), sizeof(ui32)); CopyStateStorageRingInfo(config.GetRing(), info.Get(), namePrefix, offset + sizeof(ui32)); return info; diff --git a/ydb/core/base/statestorage.h b/ydb/core/base/statestorage.h index 2b97cafc3c35..1b0fe21b28cf 100644 --- a/ydb/core/base/statestorage.h +++ b/ydb/core/base/statestorage.h @@ -445,19 +445,16 @@ struct TEvStateStorage { const EStatus Status; const TString Path; - const ui32 StateStorageGroupId; TMap InfoEntries; - TEvBoardInfo(EStatus status, const TString &path, ui32 stateStorageGroupId) + TEvBoardInfo(EStatus status, const TString &path) : Status(status) , Path(path) - , StateStorageGroupId(stateStorageGroupId) {} TEvBoardInfo(const TEvBoardInfo &x) : Status(x.Status) , Path(x.Path) - , StateStorageGroupId(x.StateStorageGroupId) , InfoEntries(x.InfoEntries) {} }; @@ -466,13 +463,11 @@ struct TEvStateStorage { const TEvBoardInfo::EStatus Status; const TString Path; - const ui32 StateStorageGroupId; TMap Updates; - TEvBoardInfoUpdate(TEvBoardInfo::EStatus status, const TString &path, ui32 stateStorageGroupId) + TEvBoardInfoUpdate(TEvBoardInfo::EStatus status, const TString &path) : Status(status) , Path(path) - , StateStorageGroupId(stateStorageGroupId) {} }; }; @@ -509,7 +504,6 @@ struct TStateStorageInfo : public TThrRefBase { ui32 ContentHash() const; }; - ui32 StateStorageGroup; ui32 NToSelect; TVector Rings; @@ -521,8 +515,7 @@ struct TStateStorageInfo : public TThrRefBase { ui32 ContentHash() const; TStateStorageInfo() - : StateStorageGroup(Max()) - , NToSelect(0) + : NToSelect(0) , Hash(Max()) {} @@ -562,10 +555,10 @@ IActor* CreateStateStorageFollowerGuardian(ui64 tabletId, const TActorId &follow IActor* CreateStateStorageBoardReplica(const TIntrusivePtr &, ui32); IActor* CreateSchemeBoardReplica(const TIntrusivePtr&, ui32); IActor* CreateBoardLookupActor( - const TString &path, const TActorId &owner, ui32 groupId, EBoardLookupMode mode, + const TString &path, const TActorId &owner, EBoardLookupMode mode, TBoardRetrySettings boardRetrySettings = {}); IActor* CreateBoardPublishActor( - const TString &path, const TString &payload, const TActorId &owner, ui32 groupId, ui32 ttlMs, bool reg, + const TString &path, const TString &payload, const TActorId &owner, ui32 ttlMs, bool reg, TBoardRetrySettings boardRetrySettings = {}); TString MakeEndpointsBoardPath(const TString &database); diff --git a/ydb/core/base/statestorage_guardian.cpp b/ydb/core/base/statestorage_guardian.cpp index ff9dee35ff37..fbf62f01837b 100644 --- a/ydb/core/base/statestorage_guardian.cpp +++ b/ydb/core/base/statestorage_guardian.cpp @@ -91,7 +91,7 @@ class TReplicaGuardian : public TActorBootstrapped { Send(TActivationContext::InterconnectProxy(Replica.NodeId()), new TEvents::TEvUnsubscribe); if (KIKIMR_ALLOW_SSREPLICA_PROBES) { - const TActorId ssProxyId = MakeStateStorageProxyID(StateStorageGroupFromTabletID(Info->TabletID)); + const TActorId ssProxyId = MakeStateStorageProxyID(); Send(ssProxyId, new TEvStateStorage::TEvReplicaProbeUnsubscribe(Replica)); } @@ -100,7 +100,7 @@ class TReplicaGuardian : public TActorBootstrapped { void RequestInfo() { if (KIKIMR_ALLOW_SSREPLICA_PROBES) { - const TActorId ssProxyId = MakeStateStorageProxyID(StateStorageGroupFromTabletID(Info->TabletID)); + const TActorId ssProxyId = MakeStateStorageProxyID(); Send(ssProxyId, new TEvStateStorage::TEvReplicaProbeSubscribe(Replica)); Become(&TThis::StateLookup); } else { @@ -294,7 +294,7 @@ class TFollowerGuardian : public TActorBootstrapped { void UpdateInfo() { if (KIKIMR_ALLOW_SSREPLICA_PROBES) { - const TActorId ssProxyId = MakeStateStorageProxyID(StateStorageGroupFromTabletID(Info->TabletID)); + const TActorId ssProxyId = MakeStateStorageProxyID(); Send(ssProxyId, new TEvStateStorage::TEvReplicaProbeSubscribe(Replica)); Become(&TThis::StateCalm); } else { @@ -348,7 +348,7 @@ class TFollowerGuardian : public TActorBootstrapped { Send(TActivationContext::InterconnectProxy(Replica.NodeId()), new TEvents::TEvUnsubscribe()); if (KIKIMR_ALLOW_SSREPLICA_PROBES) { - const TActorId ssProxyId = MakeStateStorageProxyID(StateStorageGroupFromTabletID(Info->TabletID)); + const TActorId ssProxyId = MakeStateStorageProxyID(); Send(ssProxyId, new TEvStateStorage::TEvReplicaProbeUnsubscribe(Replica)); } @@ -521,8 +521,7 @@ class TTabletGuardian : public TActorBootstrapped { void SendResolveRequest(TDuration delay) { const ui64 tabletId = Info ? Info->TabletID : FollowerInfo->TabletID; - const ui64 stateStorageGroup = StateStorageGroupFromTabletID(tabletId); - const TActorId proxyActorID = MakeStateStorageProxyID(stateStorageGroup); + const TActorId proxyActorID = MakeStateStorageProxyID(); if (delay == TDuration::Zero()) { Send(proxyActorID, new TEvStateStorage::TEvResolveReplicas(tabletId), IEventHandle::FlagTrackDelivery); diff --git a/ydb/core/base/statestorage_impl.h b/ydb/core/base/statestorage_impl.h index ed154b9d2d59..6ad5c0763e73 100644 --- a/ydb/core/base/statestorage_impl.h +++ b/ydb/core/base/statestorage_impl.h @@ -4,9 +4,9 @@ namespace NKikimr { -inline TActorId MakeStateStorageReplicaID(ui32 node, ui64 stateStorageGroup, ui32 replicaIndex) { +inline TActorId MakeStateStorageReplicaID(ui32 node, ui32 replicaIndex) { char x[12] = { 's', 't', 's' }; - x[3] = (char)stateStorageGroup; + x[3] = (char)1; // stateStorageGroup memcpy(x + 5, &replicaIndex, sizeof(ui32)); return TActorId(node, TStringBuf(x, 12)); } diff --git a/ydb/core/base/statestorage_monitoring.cpp b/ydb/core/base/statestorage_monitoring.cpp index 30b217b392be..6de12a7bf723 100644 --- a/ydb/core/base/statestorage_monitoring.cpp +++ b/ydb/core/base/statestorage_monitoring.cpp @@ -213,8 +213,7 @@ class TStateStorageMonitoringActor : public TActorBootstrapped { return; TIntrusivePtr updated = new TStateStorageInfo(); - updated->StateStorageGroup = Info->StateStorageGroup; updated->NToSelect = Info->NToSelect; updated->Rings.resize(Info->Rings.size()); const bool checkOldInfo = FlowControlledInfo && old - && updated->StateStorageGroup == FlowControlledInfo->StateStorageGroup && updated->NToSelect == FlowControlledInfo->NToSelect && updated->Rings.size() == FlowControlledInfo->Rings.size(); diff --git a/ydb/core/base/statestorage_replica.cpp b/ydb/core/base/statestorage_replica.cpp index c2dc9333355d..22946e2f4d47 100644 --- a/ydb/core/base/statestorage_replica.cpp +++ b/ydb/core/base/statestorage_replica.cpp @@ -180,9 +180,6 @@ class TStateStorageReplica : public TActor { TEvStateStorage::TEvReplicaLookup *msg = ev->Get(); BLOG_D("Replica::Handle ev: " << msg->ToString()); const ui64 tabletId = msg->Record.GetTabletID(); - Y_DEBUG_ABORT_UNLESS(StateStorageGroupFromTabletID(tabletId) == Info->StateStorageGroup, - "tabletId# %" PRIu64 " SSGFTID# %" PRIu64 " SSG# %" PRIu64, - (ui64)tabletId, (ui64)StateStorageGroupFromTabletID(tabletId), (ui64)Info->StateStorageGroup); TTablets::const_iterator it = Tablets.find(msg->Record.GetTabletID()); if (it != Tablets.end()) NotifyWithTabletInfo(ev->Sender, it->first, msg->Record.GetCookie(), &it->second); @@ -210,7 +207,6 @@ class TStateStorageReplica : public TActor { TEvStateStorage::TEvReplicaUpdate *msg = ev->Get(); BLOG_D("Replica::Handle ev: " << msg->ToString()); const ui64 tabletId = msg->Record.GetTabletID(); - Y_DEBUG_ABORT_UNLESS(StateStorageGroupFromTabletID(tabletId) == Info->StateStorageGroup); TEntry *x = nullptr; auto tabletIt = Tablets.find(tabletId); @@ -256,7 +252,6 @@ class TStateStorageReplica : public TActor { const auto &record = ev->Get()->Record; BLOG_D("Replica::Handle ev: " << ev->Get()->ToString()); const ui64 tabletId = record.GetTabletID(); - Y_DEBUG_ABORT_UNLESS(StateStorageGroupFromTabletID(tabletId) == Info->StateStorageGroup); const TActorId proposedLeader = ActorIdFromProto(record.GetProposedLeader()); auto tabletIt = Tablets.find(tabletId); @@ -276,7 +271,6 @@ class TStateStorageReplica : public TActor { TEvStateStorage::TEvReplicaDelete *msg = ev->Get(); BLOG_D("Replica::Handle ev: " << msg->ToString()); const ui64 tabletId = msg->Record.GetTabletID(); - Y_DEBUG_ABORT_UNLESS(StateStorageGroupFromTabletID(tabletId) == Info->StateStorageGroup); auto tabletIt = Tablets.find(tabletId); if (tabletIt == Tablets.end()) { @@ -298,7 +292,6 @@ class TStateStorageReplica : public TActor { TEvStateStorage::TEvReplicaLock *msg = ev->Get(); BLOG_D("Replica::Handle ev: " << msg->ToString()); const ui64 tabletId = msg->Record.GetTabletID(); - Y_DEBUG_ABORT_UNLESS(StateStorageGroupFromTabletID(tabletId) == Info->StateStorageGroup); const TActorId &sender = ev->Sender; if (CheckSignature(msg)) { @@ -332,7 +325,6 @@ class TStateStorageReplica : public TActor { void Handle(TEvStateStorage::TEvReplicaRegFollower::TPtr &ev) { const NKikimrStateStorage::TEvRegisterFollower &record = ev->Get()->Record; const ui64 tabletId = record.GetTabletID(); - Y_DEBUG_ABORT_UNLESS(StateStorageGroupFromTabletID(tabletId) == Info->StateStorageGroup); TEntry &x = Tablets[tabletId]; // could lead to creation of zombie entries when follower exist w/o leader so we must filter on info const TActorId follower = ActorIdFromProto(record.GetFollower()); @@ -370,15 +362,11 @@ class TStateStorageReplica : public TActor { void Handle(TEvStateStorage::TEvReplicaUnregFollower::TPtr &ev) { const TEvStateStorage::TEvReplicaUnregFollower *msg = ev->Get(); const ui64 tabletId = msg->Record.GetTabletID(); - Y_DEBUG_ABORT_UNLESS(StateStorageGroupFromTabletID(tabletId) == Info->StateStorageGroup); - ForgetFollower(tabletId, ev->Sender); } void Handle(TEvents::TEvUndelivered::TPtr &ev) { const ui64 tabletId = ev->Cookie; - Y_DEBUG_ABORT_UNLESS(StateStorageGroupFromTabletID(tabletId) == Info->StateStorageGroup); - ForgetFollower(tabletId, ev->Sender); } diff --git a/ydb/core/base/statestorage_ut.cpp b/ydb/core/base/statestorage_ut.cpp index 7603a4def845..6210185c5031 100644 --- a/ydb/core/base/statestorage_ut.cpp +++ b/ydb/core/base/statestorage_ut.cpp @@ -8,7 +8,6 @@ namespace NKikimr { Y_UNIT_TEST_SUITE(TStateStorageConfig) { void FillStateStorageInfo(TStateStorageInfo *info, ui32 replicas, ui32 nToSelect, ui32 replicasInRing, bool useRingSpecificNodeSelection) { - info->StateStorageGroup = 1; info->NToSelect = nToSelect; info->Rings.resize(replicas); diff --git a/ydb/core/base/statestorage_warden.cpp b/ydb/core/base/statestorage_warden.cpp index f15f4e493fd6..193447410e61 100644 --- a/ydb/core/base/statestorage_warden.cpp +++ b/ydb/core/base/statestorage_warden.cpp @@ -27,8 +27,6 @@ namespace NKikimr { class TStateStorageWarden : public TActorBootstrapped { - const ui32 GroupId; // for convenience - TIntrusivePtr StateStorageInfo; TIntrusivePtr BoardInfo; TIntrusivePtr SchemeBoardInfo; @@ -96,7 +94,7 @@ class TStateStorageWarden : public TActorBootstrapped { // Update proxy config if (hasChanges) { - Send(MakeStateStorageProxyID(GroupId), new TEvStateStorage::TEvUpdateGroupConfig(stateStorageInfo, boardInfo, schemeBoardInfo)); + Send(MakeStateStorageProxyID(), new TEvStateStorage::TEvUpdateGroupConfig(stateStorageInfo, boardInfo, schemeBoardInfo)); } } @@ -107,10 +105,8 @@ class TStateStorageWarden : public TActorBootstrapped { return; for (const NKikimrConfig::TDomainsConfig::TStateStorage &config : record.GetConfig().GetDomainsConfig().GetStateStorage()) { - if (config.GetSSId() == GroupId) { - UpdateConfig(config); - break; - } + Y_ABORT_UNLESS(config.GetSSId() == 1); + UpdateConfig(config); } } @@ -120,14 +116,10 @@ class TStateStorageWarden : public TActorBootstrapped { } TStateStorageWarden(const TIntrusivePtr &info, const TIntrusivePtr &board, const TIntrusivePtr &schemeBoard) - : GroupId(info->StateStorageGroup) - , StateStorageInfo(info) + : StateStorageInfo(info) , BoardInfo(board) , SchemeBoardInfo(schemeBoard) - { - Y_ABORT_UNLESS(GroupId == board->StateStorageGroup); - Y_ABORT_UNLESS(GroupId == schemeBoard->StateStorageGroup); - } + {} void Bootstrap() { diff --git a/ydb/core/base/tablet_killer.cpp b/ydb/core/base/tablet_killer.cpp index 8f3711d85b45..96a0a3e8f026 100644 --- a/ydb/core/base/tablet_killer.cpp +++ b/ydb/core/base/tablet_killer.cpp @@ -46,7 +46,7 @@ class TTabletKillRequest : public TActorBootstrapped { {} void Bootstrap(const TActorContext &ctx) { - const TActorId stateStorageProxyId = MakeStateStorageProxyID(StateStorageGroupFromTabletID(TabletId)); + const TActorId stateStorageProxyId = MakeStateStorageProxyID(); ctx.Send(stateStorageProxyId, new TEvStateStorage::TEvLookup(TabletId, 0)); Become(&TTabletKillRequest::StateFunc); } diff --git a/ydb/core/base/tabletid.h b/ydb/core/base/tabletid.h index 03a080601fc3..8d41331c0e7e 100644 --- a/ydb/core/base/tabletid.h +++ b/ydb/core/base/tabletid.h @@ -3,10 +3,6 @@ namespace NKikimr { // extract 8 bits of state-storage group - inline ui64 StateStorageGroupFromTabletID(ui64 tabletId) { - return (tabletId >> 56) & 0xFFull; - } - inline ui32 StateStorageHashFromTabletID(ui64 tabletId) { return (ui32)Hash64to32(tabletId); } @@ -44,53 +40,47 @@ namespace NKikimr { } // 8 + 12 + 44 - inline ui64 MakeTabletID(ui64 stateStorageGroup, ui64 hiveUid, ui64 uniqPart) { - Y_ABORT_UNLESS(stateStorageGroup < (1ull << 8ull) && hiveUid < (1ull << 12ull) && uniqPart < (1ull << 44ull)); - return (stateStorageGroup << 56ull) | (hiveUid << 44ull) | uniqPart; + inline ui64 MakeTabletID(bool fromHive, ui64 uniqPart) { + Y_ABORT_UNLESS(uniqPart < (static_cast(1) << 44)); + return (static_cast(1) << 56) + | (static_cast(fromHive ? 1 : 0) << 44) + | uniqPart; } // blob storage controller (exactly one per domain in default state storage group) - inline ui64 MakeBSControllerID(ui64 stateStorageGroup) { - Y_DEBUG_ABORT_UNLESS(stateStorageGroup < (1ull << 8ull)); - return MakeTabletID(stateStorageGroup, 0, 0x1001); + inline ui64 MakeBSControllerID() { + return MakeTabletID(false, 0x1001); } // one default hive per domain (in default state storage group!) - inline ui64 MakeDefaultHiveID(ui64 stateStorageGroup) { - Y_DEBUG_ABORT_UNLESS(stateStorageGroup < (1ull << 8ull)); - return MakeTabletID(stateStorageGroup, 0, 1); + inline ui64 MakeDefaultHiveID() { + return MakeTabletID(false, 0x0001); } // cluster management system tablet (exactly one per domain in default state storage group) - inline ui64 MakeCmsID(ui64 stateStorageGroup) { - Y_DEBUG_ABORT_UNLESS(stateStorageGroup < (1ull << 8ull)); - return MakeTabletID(stateStorageGroup, 0, 0x2000); + inline ui64 MakeCmsID() { + return MakeTabletID(false, 0x2000); } // node broker tablet (exactly one per domain in default state storage group) - inline ui64 MakeNodeBrokerID(ui64 stateStorageGroup) { - Y_DEBUG_ABORT_UNLESS(stateStorageGroup < (1ull << 8ull)); - return MakeTabletID(stateStorageGroup, 0, 0x2001); + inline ui64 MakeNodeBrokerID() { + return MakeTabletID(false, 0x2001); } // tenant slot broker tablet (exactly one per domain in default state storage group) - inline ui64 MakeTenantSlotBrokerID(ui64 stateStorageGroup) { - Y_DEBUG_ABORT_UNLESS(stateStorageGroup < (1ull << 8ull)); - return MakeTabletID(stateStorageGroup, 0, 0x2002); + inline ui64 MakeTenantSlotBrokerID() { + return MakeTabletID(false, 0x2002); } // console tablet (exactly one per domain in default state storage group) - inline ui64 MakeConsoleID(ui64 stateStorageGroup) { - Y_DEBUG_ABORT_UNLESS(stateStorageGroup < (1ull << 8ull)); - return MakeTabletID(stateStorageGroup, 0, 0x2003); + inline ui64 MakeConsoleID() { + return MakeTabletID(false, 0x2003); } // TODO: think about encoding scheme for sibling group hive - inline TActorId MakeStateStorageProxyID(ui64 stateStorageGroup) { - Y_DEBUG_ABORT_UNLESS(stateStorageGroup < (1ull << 8ull)); - char x[12] = { 's', 't', 's', 'p', 'r', 'o', 'x', 'y' }; - x[8] = (char)stateStorageGroup; + inline TActorId MakeStateStorageProxyID() { + char x[12] = { 's', 't', 's', 'p', 'r', 'o', 'x', 'y', 0, 0, 0, 0}; return TActorId(0, TStringBuf(x, 12)); } diff --git a/ydb/core/blob_depot/assimilator.cpp b/ydb/core/blob_depot/assimilator.cpp index a31fcc4c4207..2869eb74f2ce 100644 --- a/ydb/core/blob_depot/assimilator.cpp +++ b/ydb/core/blob_depot/assimilator.cpp @@ -465,7 +465,7 @@ namespace NKikimr::NBlobDepot { void TAssimilator::CreatePipe() { const TGroupID groupId(Self->Config.GetVirtualGroupId()); - const ui64 tabletId = MakeBSControllerID(groupId.AvailabilityDomainID()); + const ui64 tabletId = MakeBSControllerID(); PipeId = Register(NTabletPipe::CreateClient(SelfId(), tabletId, NTabletPipe::TClientRetryPolicy::WithRetries())); NTabletPipe::SendData(SelfId(), PipeId, new TEvBlobStorage::TEvControllerGroupDecommittedNotify(groupId.GetRaw())); } diff --git a/ydb/core/blobstorage/dsproxy/ut_fat/dsproxy_ut.cpp b/ydb/core/blobstorage/dsproxy/ut_fat/dsproxy_ut.cpp index abd56038b9a2..0686011540f3 100644 --- a/ydb/core/blobstorage/dsproxy/ut_fat/dsproxy_ut.cpp +++ b/ydb/core/blobstorage/dsproxy/ut_fat/dsproxy_ut.cpp @@ -875,7 +875,7 @@ class TTestRangeGet: public TTestBlobStorageProxy { TLogoBlobID from(1, StartIdx, 0, 0, 1, 0); TLogoBlobID to(1, StartIdx + RangeLength, 0, 0, 1, 0); - ctx.Send(Proxy, new TEvBlobStorage::TEvRange(MakeTabletID(0, 0, 1), from, to, true, TInstant::Max())); + ctx.Send(Proxy, new TEvBlobStorage::TEvRange(MakeTabletID(false, 1), from, to, true, TInstant::Max())); } else { InitExpectedValues(); TEST_RESPONSE_FULLCHECK(MessageRangeResult, OK, (size_t)RangeSize, ExpectedValues); @@ -2793,7 +2793,7 @@ class TTestEmptyRange : public TTestBlobStorageProxy { TLogoBlobID from(1, 7/*generation*/, 0, 0, 0, 0); TLogoBlobID to(1, 8/*generation*/, 0, 0, 0, 0); VERBOSE_COUT(" Sending TEvRange, expecting 0"); - ctx.Send(Proxy, new TEvBlobStorage::TEvRange(MakeTabletID(0, 0, 1), from, to, true, TInstant::Max())); + ctx.Send(Proxy, new TEvBlobStorage::TEvRange(MakeTabletID(false, 1), from, to, true, TInstant::Max())); break; } case 10: @@ -2935,7 +2935,7 @@ class TTestBlobStorageProxyBasic1 : public TTestBlobStorageProxy { TLogoBlobID from(1, 7/*generation*/, 0, 0, 0, 0); TLogoBlobID to(1, 6/*generation*/, 0, 0, 0, 0); VERBOSE_COUT(" Sending TEvRange, expecting 1"); - ctx.Send(Proxy, new TEvBlobStorage::TEvRange(MakeTabletID(0, 0, 1), from, to, true, TInstant::Max())); + ctx.Send(Proxy, new TEvBlobStorage::TEvRange(MakeTabletID(false, 1), from, to, true, TInstant::Max())); break; } case 120: @@ -2947,7 +2947,7 @@ class TTestBlobStorageProxyBasic1 : public TTestBlobStorageProxy { TLogoBlobID from(1, 7/*generation*/, 0, 0, 0, 0); TLogoBlobID to(1, 2/*generation*/, 0, 0, 0, 0); VERBOSE_COUT(" Sending TEvRange, expecting 4"); - ctx.Send(Proxy, new TEvBlobStorage::TEvRange(MakeTabletID(0, 0, 1), from, to, true, TInstant::Max())); + ctx.Send(Proxy, new TEvBlobStorage::TEvRange(MakeTabletID(false, 1), from, to, true, TInstant::Max())); break; } case 130: @@ -2966,7 +2966,7 @@ class TTestBlobStorageProxyBasic1 : public TTestBlobStorageProxy { TLogoBlobID from(1, 2/*generation*/, 0, 0, 0, 0); TLogoBlobID to(1, 7/*generation*/, 0, 0, TLogoBlobID::MaxBlobSize, 0); VERBOSE_COUT(" Sending TEvRange, expecting 4"); - ctx.Send(Proxy, new TEvBlobStorage::TEvRange(MakeTabletID(0, 0, 1), from, to, true, TInstant::Max())); + ctx.Send(Proxy, new TEvBlobStorage::TEvRange(MakeTabletID(false, 1), from, to, true, TInstant::Max())); break; } case 140: @@ -2985,7 +2985,7 @@ class TTestBlobStorageProxyBasic1 : public TTestBlobStorageProxy { TLogoBlobID from(1, 7/*generation*/, 0, 0, 0, 0); TLogoBlobID to(1, 8/*generation*/, 0, 0, TLogoBlobID::MaxBlobSize, 0); VERBOSE_COUT(" Sending TEvRange, expecting 0"); - ctx.Send(Proxy, new TEvBlobStorage::TEvRange(MakeTabletID(0, 0, 1), from, to, true, TInstant::Max())); + ctx.Send(Proxy, new TEvBlobStorage::TEvRange(MakeTabletID(false, 1), from, to, true, TInstant::Max())); break; } case 150: @@ -2997,7 +2997,7 @@ class TTestBlobStorageProxyBasic1 : public TTestBlobStorageProxy { TLogoBlobID from(1, 2/*generation*/, 0, 0, 0, 0); TLogoBlobID to(1, 3/*generation*/, 0, 0, TLogoBlobID::MaxBlobSize, 0); VERBOSE_COUT(" Sending TEvRange, expecting 1"); - ctx.Send(Proxy, new TEvBlobStorage::TEvRange(MakeTabletID(0, 0, 1), from, to, true, TInstant::Max())); + ctx.Send(Proxy, new TEvBlobStorage::TEvRange(MakeTabletID(false, 1), from, to, true, TInstant::Max())); break; } case 160: @@ -4278,7 +4278,7 @@ class TBlobStorageProxyTest: public TTestBase { EnableActorCallstack(); try { VERBOSE_COUT("Sending TEvBoot to testproxy"); - actorSystem1->Send(env->ProxyTestId, new TEvTablet::TEvBoot(MakeTabletID(0, 0, 1), 0, nullptr, TActorId(), + actorSystem1->Send(env->ProxyTestId, new TEvTablet::TEvBoot(MakeTabletID(false, 1), 0, nullptr, TActorId(), nullptr)); VERBOSE_COUT("Done"); diff --git a/ydb/core/blobstorage/nodewarden/blobstorage_node_warden_ut.cpp b/ydb/core/blobstorage/nodewarden/blobstorage_node_warden_ut.cpp index d1ddcd1bae23..3e602c129589 100644 --- a/ydb/core/blobstorage/nodewarden/blobstorage_node_warden_ut.cpp +++ b/ydb/core/blobstorage/nodewarden/blobstorage_node_warden_ut.cpp @@ -110,9 +110,6 @@ void SetupServices(TTestActorRuntime &runtime, TString extraPath, TIntrusivePtr< const ui32 domainsNum = 1; const ui32 disksInDomain = 1; - const ui32 domainId = DOMAIN_ID; - const ui32 stateStorageGroup = domainId; - TAppPrepare app; { @@ -126,19 +123,17 @@ void SetupServices(TTestActorRuntime &runtime, TString extraPath, TIntrusivePtr< { // setup domain info app.ClearDomainsAndHive(); - auto domain = TDomainsInfo::TDomain::ConstructDomainWithExplicitTabletIds("dc-1", domainId, 0, - domainId, domainId, TVector{domainId}, - domainId, TVector{domainId}, + auto domain = TDomainsInfo::TDomain::ConstructDomainWithExplicitTabletIds("dc-1", 1, 0, 100500, TVector{}, TVector{}, TVector{}, DefaultPoolKinds(2)); app.AddDomain(domain.Release()); - app.AddHive(domainId, MakeDefaultHiveID(stateStorageGroup)); + app.AddHive(MakeDefaultHiveID()); } - SetupChannelProfiles(app, domainId); + SetupChannelProfiles(app); if (false) { // setup channel profiles TIntrusivePtr channelProfiles = new TChannelProfiles; @@ -154,7 +149,7 @@ void SetupServices(TTestActorRuntime &runtime, TString extraPath, TIntrusivePtr< ui32 groupId = TGroupID(EGroupConfigurationType::Static, DOMAIN_ID, 0).GetRaw(); for (ui32 nodeIndex = 0; nodeIndex < runtime.GetNodeCount(); ++nodeIndex) { - SetupStateStorage(runtime, nodeIndex, stateStorageGroup); + SetupStateStorage(runtime, nodeIndex); TStringStream str; str << "AvailabilityDomains: " << DOMAIN_ID << Endl; @@ -257,12 +252,11 @@ void SetupServices(TTestActorRuntime &runtime, TString extraPath, TIntrusivePtr< runtime.DispatchEvents(options); } - ui64 defaultStateStorageGroup = runtime.GetAppData(0).DomainsInfo->GetDefaultStateStorageGroup(DOMAIN_ID); - CreateTestBootstrapper(runtime, CreateTestTabletInfo(MakeBSControllerID(defaultStateStorageGroup), + CreateTestBootstrapper(runtime, CreateTestTabletInfo(MakeBSControllerID(), TTabletTypes::BSController, TBlobStorageGroupType::ErasureMirror3, groupId), &CreateFlatBsController); - SetupBoxAndStoragePool(runtime, runtime.AllocateEdgeActor(), domainId); + SetupBoxAndStoragePool(runtime, runtime.AllocateEdgeActor()); } void Setup(TTestActorRuntime &runtime, TString extraPath, TIntrusivePtr extraSectorMap) { @@ -278,10 +272,8 @@ void Setup(TTestActorRuntime &runtime, TString extraPath, TIntrusivePtrGetDefaultStateStorageGroup(DOMAIN_ID); - ui64 bsController = MakeBSControllerID(defaultStateStorageGroup); - return bsController; + ui64 GetBsc(TTestActorRuntime& /*runtime*/) { + return MakeBSControllerID(); } ui32 CreatePDisk(TTestActorRuntime &runtime, ui32 nodeIdx, TString path, ui64 guid, ui32 pdiskId, ui64 pDiskCategory) { @@ -320,9 +312,8 @@ Y_UNIT_TEST_SUITE(TBlobStorageWardenTest) { UNIT_ASSERT_EQUAL(handle->Cookie, cookie); } - void CreateStoragePool(TTestBasicRuntime& runtime, ui32 domainId, TString name, TString kind) { - auto stateStorage = runtime.GetAppData().DomainsInfo->GetDefaultStateStorageGroup(domainId); - NKikimrBlobStorage::TDefineStoragePool storagePool = runtime.GetAppData().DomainsInfo->GetDomain(domainId).StoragePoolTypes.at(kind); + void CreateStoragePool(TTestBasicRuntime& runtime, TString name, TString kind) { + NKikimrBlobStorage::TDefineStoragePool storagePool = runtime.GetAppData().DomainsInfo->GetDomain()->StoragePoolTypes.at(kind); TActorId edge = runtime.AllocateEdgeActor(); auto request = std::make_unique(); @@ -335,15 +326,13 @@ Y_UNIT_TEST_SUITE(TBlobStorageWardenTest) { NTabletPipe::TClientConfig pipeConfig; pipeConfig.RetryPolicy = NTabletPipe::TClientRetryPolicy::WithRetries(); - runtime.SendToPipe(MakeBSControllerID(stateStorage), edge, request.release(), 0, pipeConfig); + runtime.SendToPipe(MakeBSControllerID(), edge, request.release(), 0, pipeConfig); auto reply = runtime.GrabEdgeEventRethrow(edge); UNIT_ASSERT_VALUES_EQUAL(reply->Get()->Record.GetResponse().GetSuccess(), true); } - ui32 GetGroupFromPool(TTestBasicRuntime& runtime, ui32 domainId, TString poolName) { - auto stateStorage = runtime.GetAppData().DomainsInfo->GetDefaultStateStorageGroup(domainId); - + ui32 GetGroupFromPool(TTestBasicRuntime& runtime, TString poolName) { TActorId edge = runtime.AllocateEdgeActor(); auto selectGroups = std::make_unique(); auto *record = &selectGroups->Record; @@ -353,7 +342,7 @@ Y_UNIT_TEST_SUITE(TBlobStorageWardenTest) { NTabletPipe::TClientConfig pipeConfig; pipeConfig.RetryPolicy = NTabletPipe::TClientRetryPolicy::WithRetries(); - runtime.SendToPipe(MakeBSControllerID(stateStorage), edge, selectGroups.release(), 0, pipeConfig); + runtime.SendToPipe(MakeBSControllerID(), edge, selectGroups.release(), 0, pipeConfig); auto reply = runtime.GrabEdgeEventRethrow(edge); UNIT_ASSERT_VALUES_EQUAL(reply->Get()->Record.GetStatus(), NKikimrProto::OK); @@ -370,9 +359,7 @@ Y_UNIT_TEST_SUITE(TBlobStorageWardenTest) { flags, cookie, &nodeWarden, {}), sender.NodeId() - runtime.GetNodeId(0)); } - NKikimrBlobStorage::TDefineStoragePool DescribeStoragePool(TTestBasicRuntime& runtime, ui32 domainId, const TString& name) { - auto stateStorage = runtime.GetAppData().DomainsInfo->GetDefaultStateStorageGroup(domainId); - + NKikimrBlobStorage::TDefineStoragePool DescribeStoragePool(TTestBasicRuntime& runtime, const TString& name) { TActorId edge = runtime.AllocateEdgeActor(); auto selectGroups = std::make_unique(); auto* request = selectGroups->Record.MutableRequest(); @@ -382,15 +369,14 @@ Y_UNIT_TEST_SUITE(TBlobStorageWardenTest) { NTabletPipe::TClientConfig pipeConfig; pipeConfig.RetryPolicy = NTabletPipe::TClientRetryPolicy::WithRetries(); - runtime.SendToPipe(MakeBSControllerID(stateStorage), edge, selectGroups.release(), 0, pipeConfig); + runtime.SendToPipe(MakeBSControllerID(), edge, selectGroups.release(), 0, pipeConfig); auto reply = runtime.GrabEdgeEventRethrow(edge); UNIT_ASSERT_VALUES_EQUAL(reply->Get()->Record.GetResponse().GetSuccess(), true); return reply->Get()->Record.GetResponse().GetStatus(0).GetStoragePool(0); } - void RemoveStoragePool(TTestBasicRuntime& runtime, ui32 domainId, const NKikimrBlobStorage::TDefineStoragePool& storagePool) { - auto stateStorage = runtime.GetAppData().DomainsInfo->GetDefaultStateStorageGroup(domainId); + void RemoveStoragePool(TTestBasicRuntime& runtime, const NKikimrBlobStorage::TDefineStoragePool& storagePool) { TActorId edge = runtime.AllocateEdgeActor(); auto selectGroups = std::make_unique(); auto* request = selectGroups->Record.MutableRequest(); @@ -401,7 +387,7 @@ Y_UNIT_TEST_SUITE(TBlobStorageWardenTest) { NTabletPipe::TClientConfig pipeConfig; pipeConfig.RetryPolicy = NTabletPipe::TClientRetryPolicy::WithRetries(); - runtime.SendToPipe(MakeBSControllerID(stateStorage), edge, selectGroups.release(), 0, pipeConfig); + runtime.SendToPipe(MakeBSControllerID(), edge, selectGroups.release(), 0, pipeConfig); auto reply = runtime.GrabEdgeEventRethrow(edge); UNIT_ASSERT_VALUES_EQUAL(reply->Get()->Record.GetResponse().GetSuccess(), true); @@ -457,8 +443,8 @@ Y_UNIT_TEST_SUITE(TBlobStorageWardenTest) { auto sender0 = runtime.AllocateEdgeActor(0); - CreateStoragePool(runtime, DOMAIN_ID, "test_storage", "pool-kind-1"); - ui32 groupId = GetGroupFromPool(runtime, DOMAIN_ID, "test_storage"); + CreateStoragePool(runtime, "test_storage", "pool-kind-1"); + ui32 groupId = GetGroupFromPool(runtime, "test_storage"); ui64 tabletId = 1234; ui32 generation = 1; @@ -466,10 +452,10 @@ Y_UNIT_TEST_SUITE(TBlobStorageWardenTest) { BlockGroup(runtime, sender0, tabletId, groupId, generation, true, NKikimrProto::EReplyStatus::ALREADY); BlockGroup(runtime, sender0, tabletId, groupId, generation-1, true, NKikimrProto::EReplyStatus::ALREADY); - auto describePool = DescribeStoragePool(runtime, DOMAIN_ID, "test_storage"); + auto describePool = DescribeStoragePool(runtime, "test_storage"); { TBlockUpdates bloker(runtime); - RemoveStoragePool(runtime, DOMAIN_ID, describePool); + RemoveStoragePool(runtime, describePool); ++generation; BlockGroup(runtime, sender0, tabletId, groupId, generation++, true); @@ -478,8 +464,7 @@ Y_UNIT_TEST_SUITE(TBlobStorageWardenTest) { ++generation; BlockGroup(runtime, sender0, tabletId, groupId, generation++, true); - auto stateStorage = runtime.GetAppData().DomainsInfo->GetDefaultStateStorageGroup(DOMAIN_ID); - RebootTablet(runtime, MakeBSControllerID(stateStorage), sender0, sender0.NodeId() - runtime.GetNodeId(0)); + RebootTablet(runtime, MakeBSControllerID(), sender0, sender0.NodeId() - runtime.GetNodeId(0)); ++generation; BlockGroup(runtime, sender0, tabletId, groupId, generation++, true, NKikimrProto::EReplyStatus::NO_GROUP); @@ -612,7 +597,7 @@ Y_UNIT_TEST_SUITE(TBlobStorageWardenTest) { auto sender = runtime.AllocateEdgeActor(0); - CreateStoragePool(runtime, DOMAIN_ID, "test_storage", "pool-kind-1"); + CreateStoragePool(runtime, "test_storage", "pool-kind-1"); ui32 groupId = Max(); ui64 tabletId = 1234; @@ -630,8 +615,8 @@ Y_UNIT_TEST_SUITE(TBlobStorageWardenTest) { auto sender0 = runtime.AllocateEdgeActor(0); auto sender1 = runtime.AllocateEdgeActor(1); - CreateStoragePool(runtime, DOMAIN_ID, "test_storage", "pool-kind-1"); - ui32 groupId = GetGroupFromPool(runtime, DOMAIN_ID, "test_storage"); + CreateStoragePool(runtime, "test_storage", "pool-kind-1"); + ui32 groupId = GetGroupFromPool(runtime, "test_storage"); ui64 tabletId = 1234; ui32 generation = 1; @@ -696,11 +681,11 @@ Y_UNIT_TEST_SUITE(TBlobStorageWardenTest) { auto sender0 = runtime.AllocateEdgeActor(0); auto sender1 = runtime.AllocateEdgeActor(1); - CreateStoragePool(runtime, DOMAIN_ID, "test_storage", "pool-kind-1"); + CreateStoragePool(runtime, "test_storage", "pool-kind-1"); ui32 generation = 1; ui64 tabletId = 1234; - ui32 groupId = GetGroupFromPool(runtime, DOMAIN_ID, "test_storage"); + ui32 groupId = GetGroupFromPool(runtime, "test_storage"); TString name = Sprintf("%09" PRIu32, groupId); BlockGroup(runtime, sender0, tabletId, groupId, generation, true); @@ -725,11 +710,11 @@ Y_UNIT_TEST_SUITE(TBlobStorageWardenTest) { auto sender0 = runtime.AllocateEdgeActor(0); - CreateStoragePool(runtime, DOMAIN_ID, "test_storage", "pool-kind-1"); + CreateStoragePool(runtime, "test_storage", "pool-kind-1"); ui32 generation = 1; ui64 tabletId = 1234; - ui32 groupId = GetGroupFromPool(runtime, DOMAIN_ID, "test_storage"); + ui32 groupId = GetGroupFromPool(runtime, "test_storage"); TString name = Sprintf("%09" PRIu32, groupId); BlockGroup(runtime, sender0, tabletId, groupId, generation, false); @@ -751,11 +736,11 @@ Y_UNIT_TEST_SUITE(TBlobStorageWardenTest) { auto sender0 = runtime.AllocateEdgeActor(0); auto sender1 = runtime.AllocateEdgeActor(1); - CreateStoragePool(runtime, DOMAIN_ID, "test_storage", "pool-kind-1"); + CreateStoragePool(runtime, "test_storage", "pool-kind-1"); ui32 generation = 1; ui64 tabletId = 1234; - ui32 groupId = GetGroupFromPool(runtime, DOMAIN_ID, "test_storage"); + ui32 groupId = GetGroupFromPool(runtime, "test_storage"); TString name = Sprintf("%09" PRIu32, groupId); Put(runtime, sender0, groupId, TLogoBlobID(tabletId, generation+1, 0, 0, 5, 0), "hello"); diff --git a/ydb/core/blobstorage/nodewarden/node_warden_pipe.cpp b/ydb/core/blobstorage/nodewarden/node_warden_pipe.cpp index df3fefae7912..01ca4a45d201 100644 --- a/ydb/core/blobstorage/nodewarden/node_warden_pipe.cpp +++ b/ydb/core/blobstorage/nodewarden/node_warden_pipe.cpp @@ -8,17 +8,14 @@ void TNodeWarden::SendToController(std::unique_ptr ev, ui64 cookie, } void TNodeWarden::EstablishPipe() { - Y_ABORT_UNLESS(AppData() && AppData()->DomainsInfo); - - const ui64 stateStorageGroup = AppData()->DomainsInfo->GetDefaultStateStorageGroup(AvailDomainId); - const ui64 controllerId = MakeBSControllerID(stateStorageGroup); + const ui64 controllerId = MakeBSControllerID(); PipeClientId = Register(NTabletPipe::CreateClient(SelfId(), controllerId, NTabletPipe::TClientRetryPolicy{ .MaxRetryTime = TDuration::Seconds(5), .DoFirstRetryInstantly = false, })); - STLOG(PRI_DEBUG, BS_NODE, NW21, "EstablishPipe", (AvailDomainId, AvailDomainId), (StateStorageGroup, stateStorageGroup), + STLOG(PRI_DEBUG, BS_NODE, NW21, "EstablishPipe", (AvailDomainId, AvailDomainId), (PipeClientId, PipeClientId), (ControllerId, controllerId)); SendRegisterNode(); diff --git a/ydb/core/blobstorage/nodewarden/ut_sequence/dsproxy_config_retrieval.cpp b/ydb/core/blobstorage/nodewarden/ut_sequence/dsproxy_config_retrieval.cpp index a7296ad2ae64..ec5ff02c8604 100644 --- a/ydb/core/blobstorage/nodewarden/ut_sequence/dsproxy_config_retrieval.cpp +++ b/ydb/core/blobstorage/nodewarden/ut_sequence/dsproxy_config_retrieval.cpp @@ -79,7 +79,7 @@ void SetupServices(TTestBasicRuntime& runtime) { runtime.Initialize(app.Unwrap()); - CreateTestBootstrapper(runtime, CreateTestTabletInfo(MakeBSControllerID(0), TTabletTypes::BSController), &CreateFlatBsController); + CreateTestBootstrapper(runtime, CreateTestTabletInfo(MakeBSControllerID(), TTabletTypes::BSController), &CreateFlatBsController); // setup box and storage pool for testing { @@ -116,7 +116,7 @@ void SetupServices(TTestBasicRuntime& runtime) { ds->SetNumGroups(1); ds->AddPDiskFilter()->AddProperty()->SetType(NKikimrBlobStorage::ROT); - runtime.SendToPipe(MakeBSControllerID(0), edge, ev.release()); + runtime.SendToPipe(MakeBSControllerID(), edge, ev.release()); auto resp = runtime.GrabEdgeEvent(edge); const auto& record = resp->Get()->Record; UNIT_ASSERT(record.GetResponse().GetSuccess()); @@ -134,7 +134,7 @@ Y_UNIT_TEST_SUITE(NodeWardenDsProxyConfigRetrieval) { TTestBasicRuntime runtime(1); const ui32 groupId = 0x80000000; - const ui64 tabletId = MakeBSControllerID(0); + const ui64 tabletId = MakeBSControllerID(); bool allowConfiguring = false; TActorId nodeWardenId; diff --git a/ydb/core/blobstorage/pdisk/blobstorage_pdisk_ut_run.cpp b/ydb/core/blobstorage/pdisk/blobstorage_pdisk_ut_run.cpp index 20ed9d50be64..c46f22ed3d76 100644 --- a/ydb/core/blobstorage/pdisk/blobstorage_pdisk_ut_run.cpp +++ b/ydb/core/blobstorage/pdisk/blobstorage_pdisk_ut_run.cpp @@ -157,7 +157,7 @@ void Run(TVector tests, TTestRunConfig runCfg) { VERBOSE_COUT("Sending TEvBoot to test"); for (ui32 i = 0; i < runCfg.Instances; ++i) { actorSystem1->Send(testIds[i], new TEvTablet::TEvBoot( - MakeTabletID(0, 0, 1), 0, nullptr, TActorId(), nullptr)); + MakeTabletID(false, 1), 0, nullptr, TActorId(), nullptr)); } TAtomicBase doneCount = 0; diff --git a/ydb/core/blobstorage/ut_blobstorage/blob_depot_test_env.h b/ydb/core/blobstorage/ut_blobstorage/blob_depot_test_env.h index 5b2da110596e..0d166118c42f 100644 --- a/ydb/core/blobstorage/ut_blobstorage/blob_depot_test_env.h +++ b/ydb/core/blobstorage/ut_blobstorage/blob_depot_test_env.h @@ -222,7 +222,7 @@ struct TBlobDepotTestEnvironment { { auto *cmd = request.AddCommand()->MutableAllocateVirtualGroup(); cmd->SetName("vg"); - cmd->SetHiveId(envPtr->Runtime->GetDomainsInfo()->HivesByHiveUid.begin()->second); + cmd->SetHiveId(envPtr->Runtime->GetDomainsInfo()->GetHive()); cmd->SetStoragePoolName(virtualPool); auto *prof = cmd->AddChannelProfiles(); prof->SetStoragePoolName(envPtr->StoragePoolName); diff --git a/ydb/core/blobstorage/ut_blobstorage/blob_depot_test_functions.cpp b/ydb/core/blobstorage/ut_blobstorage/blob_depot_test_functions.cpp index 6a30b9a17972..1cdbeb9b7cd3 100644 --- a/ydb/core/blobstorage/ut_blobstorage/blob_depot_test_functions.cpp +++ b/ydb/core/blobstorage/ut_blobstorage/blob_depot_test_functions.cpp @@ -14,7 +14,7 @@ void DecommitGroup(TBlobDepotTestEnvironment& tenv, ui32 groupId) { auto *cmd = request.AddCommand()->MutableDecommitGroups(); cmd->AddGroupIds(groupId); - cmd->SetHiveId(tenv.Env->Runtime->GetDomainsInfo()->HivesByHiveUid.begin()->second); + cmd->SetHiveId(tenv.Env->Runtime->GetDomainsInfo()->GetHive()); auto *prof = cmd->AddChannelProfiles(); prof->SetStoragePoolName(blobDepotPool); prof->SetCount(2); diff --git a/ydb/core/blobstorage/ut_blobstorage/lib/env.h b/ydb/core/blobstorage/ut_blobstorage/lib/env.h index 379a7d3b6955..8be7af96c4d9 100644 --- a/ydb/core/blobstorage/ut_blobstorage/lib/env.h +++ b/ydb/core/blobstorage/ut_blobstorage/lib/env.h @@ -13,7 +13,7 @@ struct TEnvironmentSetup { static constexpr ui32 DrivesPerNode = 5; const TString DomainName = "Root"; const ui32 DomainId = 1; - const ui64 TabletId = MakeBSControllerID(DomainId); + const ui64 TabletId = MakeBSControllerID(); const ui32 GroupId = 0; const TString StoragePoolName = "test"; const ui32 NumGroups = 1; @@ -138,7 +138,7 @@ struct TEnvironmentSetup { auto domain = TDomainsInfo::TDomain::ConstructEmptyDomain(DomainName, DomainId); domainsInfo->AddDomain(domain.Get()); if (Settings.SetupHive) { - domainsInfo->AddHive(domain->DefaultHiveUid, MakeDefaultHiveID(domain->DefaultStateStorageGroup)); + domainsInfo->AddHive(MakeDefaultHiveID()); } return std::make_unique(Settings.NodeCount, NLog::PRI_ERROR, domainsInfo, featureFlags); @@ -351,11 +351,10 @@ struct TEnvironmentSetup { ui32 NumChannels = 3; }; std::vector tablets{ - {MakeBSControllerID(DomainId), TTabletTypes::BSController, &CreateFlatBsController}, + {MakeBSControllerID(), TTabletTypes::BSController, &CreateFlatBsController}, }; - - for (const auto& [uid, tabletId] : Runtime->GetDomainsInfo()->HivesByHiveUid) { + if (const ui64 tabletId = Runtime->GetDomainsInfo()->GetHive(); tabletId != TDomainsInfo::BadTabletId) { tablets.push_back(TTabletInfo{tabletId, TTabletTypes::Hive, &CreateDefaultHive}); } diff --git a/ydb/core/blobstorage/ut_blobstorage/recovery.cpp b/ydb/core/blobstorage/ut_blobstorage/recovery.cpp index dbb5ba8109d9..26be48e53d5b 100644 --- a/ydb/core/blobstorage/ut_blobstorage/recovery.cpp +++ b/ydb/core/blobstorage/ut_blobstorage/recovery.cpp @@ -142,7 +142,7 @@ Y_UNIT_TEST_SUITE(CompatibilityInfo) { auto getTabletGen = [&]() -> ui32 { const TActorId getGenEdge = env->Runtime->AllocateEdgeActor(env->Settings.ControllerNodeId, __FILE__, __LINE__); - const TActorId stateStorageProxyId = MakeStateStorageProxyID(StateStorageGroupFromTabletID(env->TabletId)); + const TActorId stateStorageProxyId = MakeStateStorageProxyID(); env->Runtime->WrapInActorContext(getGenEdge, [&] { TActivationContext::Send(new IEventHandle(stateStorageProxyId, getGenEdge, new TEvStateStorage::TEvLookup(env->TabletId, 0), 0, 0) diff --git a/ydb/core/blobstorage/ut_blobstorage/space_check.cpp b/ydb/core/blobstorage/ut_blobstorage/space_check.cpp index ad44ab4a59ab..ad16c2d3ff25 100644 --- a/ydb/core/blobstorage/ut_blobstorage/space_check.cpp +++ b/ydb/core/blobstorage/ut_blobstorage/space_check.cpp @@ -7,7 +7,7 @@ Y_UNIT_TEST_SUITE(SpaceCheckForDiskReassign) { using TVSlotId = TNodeWardenMockActor::TVSlotId; TNodeWardenMockActor::TSetup::TPtr setup = MakeIntrusive(); - setup->TabletId = MakeBSControllerID(1); + setup->TabletId = MakeBSControllerID(); std::vector> driveSize = { // 8 nodes diff --git a/ydb/core/blobstorage/ut_testshard/env.h b/ydb/core/blobstorage/ut_testshard/env.h index a179dfef1c3f..776815780b29 100644 --- a/ydb/core/blobstorage/ut_testshard/env.h +++ b/ydb/core/blobstorage/ut_testshard/env.h @@ -79,7 +79,7 @@ struct TEnvironmentSetup { auto domainsInfo = MakeIntrusive(); auto domain = TDomainsInfo::TDomain::ConstructEmptyDomain(DomainName, DomainId); domainsInfo->AddDomain(domain.Get()); - domainsInfo->AddHive(domain->DefaultHiveUid, MakeDefaultHiveID(domain->DefaultStateStorageGroup)); + domainsInfo->AddHive(MakeDefaultHiveID()); return std::make_unique(Settings.NodeCount, NLog::PRI_ERROR, domainsInfo); } @@ -130,7 +130,7 @@ struct TEnvironmentSetup { NKikimrBlobStorage::TConfigResponse Invoke(const NKikimrBlobStorage::TConfigRequest& request) { const TActorId edge = Runtime->AllocateEdgeActor(Settings.ControllerNodeId, __FILE__, __LINE__); - const TActorId clientId = Runtime->Register(NKikimr::NTabletPipe::CreateClient(edge, MakeBSControllerID(DomainId), + const TActorId clientId = Runtime->Register(NKikimr::NTabletPipe::CreateClient(edge, MakeBSControllerID(), NTabletPipe::TClientRetryPolicy::WithRetries()), edge.NodeId()); { @@ -253,10 +253,10 @@ struct TEnvironmentSetup { IActor* (*Create)(const TActorId&, TTabletStorageInfo*); }; std::vector tablets{ - {MakeBSControllerID(DomainId), TTabletTypes::BSController, &CreateFlatBsController}, + {MakeBSControllerID(), TTabletTypes::BSController, &CreateFlatBsController}, }; - for (const auto& [uid, tabletId] : Runtime->GetDomainsInfo()->HivesByHiveUid) { + if (const ui64 tabletId = Runtime->GetDomainsInfo()->GetHive(); tabletId != TDomainsInfo::BadTabletId) { tablets.push_back(TTabletInfo{tabletId, TTabletTypes::Hive, &CreateDefaultHive}); } @@ -335,7 +335,7 @@ struct TEnvironmentSetup { auto *cmd = request.AddCommand(); auto *vg = cmd->MutableAllocateVirtualGroup(); vg->SetName("vg"); - vg->SetHiveId(Runtime->GetDomainsInfo()->HivesByHiveUid.begin()->second); + vg->SetHiveId(Runtime->GetDomainsInfo()->GetHive()); vg->SetStoragePoolName("virtual"); auto *prof = vg->AddChannelProfiles(); prof->SetStoragePoolName(StoragePoolName); diff --git a/ydb/core/blobstorage/ut_testshard/main.cpp b/ydb/core/blobstorage/ut_testshard/main.cpp index 56b37d9b2d79..cf53c9b4e358 100644 --- a/ydb/core/blobstorage/ut_testshard/main.cpp +++ b/ydb/core/blobstorage/ut_testshard/main.cpp @@ -16,7 +16,7 @@ Y_UNIT_TEST_SUITE(BlobDepotWithTestShard) { env.Sim(TDuration::Seconds(1)); const TActorId edge = env.Runtime->AllocateEdgeActor(1, __FILE__, __LINE__); - const ui64 hiveId = MakeDefaultHiveID(1); + const ui64 hiveId = MakeDefaultHiveID(); const TActorId clientId = env.Runtime->Register(NTabletPipe::CreateClient(edge, hiveId, NTabletPipe::TClientRetryPolicy::WithRetries()), edge.NodeId()); diff --git a/ydb/core/client/server/msgbus_blobstorage_config.cpp b/ydb/core/client/server/msgbus_blobstorage_config.cpp index a0af40eac959..b921c314c8f0 100644 --- a/ydb/core/client/server/msgbus_blobstorage_config.cpp +++ b/ydb/core/client/server/msgbus_blobstorage_config.cpp @@ -47,8 +47,7 @@ class TMessageBusBlobStorageConfig IActor* CreateMessageBusBlobStorageConfig(TBusMessageContext &msg) { const NKikimrClient::TBlobStorageConfigRequest &record = static_cast(msg.GetMessage())->Record; - const ui32 targetDomain = record.GetDomain(); - const ui64 tabletId = MakeBSControllerID(targetDomain); + const ui64 tabletId = MakeBSControllerID(); return new TMessageBusBlobStorageConfig(msg, tabletId, record.GetRequest(), true, TDuration::MilliSeconds(DefaultTimeout), record.GetSecurityToken()); } diff --git a/ydb/core/client/server/msgbus_bsadm.cpp b/ydb/core/client/server/msgbus_bsadm.cpp index a3bed376f43f..991fa2e22c0f 100644 --- a/ydb/core/client/server/msgbus_bsadm.cpp +++ b/ydb/core/client/server/msgbus_bsadm.cpp @@ -53,9 +53,7 @@ class TMessageBusBSAdmGroupReconfigureWipe : public TMessageBusSecureRequest< IActor* CreateMessageBusBSAdm(TBusMessageContext &msg) { const NKikimrClient::TBSAdm &record = static_cast(msg.GetMessage())->Record; - - const ui32 targetDomain = record.GetDomain(); - const ui64 tabletId = MakeBSControllerID(targetDomain); + const ui64 tabletId = MakeBSControllerID(); if (record.HasGroupReconfigureWipe()) { const auto &x = record.GetGroupReconfigureWipe(); diff --git a/ydb/core/client/server/msgbus_server_cms.cpp b/ydb/core/client/server/msgbus_server_cms.cpp index 244fc3d6018a..10cde4a4f427 100644 --- a/ydb/core/client/server/msgbus_server_cms.cpp +++ b/ydb/core/client/server/msgbus_server_cms.cpp @@ -37,22 +37,10 @@ class TCmsRequestActor : public TMessageBusSecureRequestDomainsInfo; - if (Request.HasDomainName()) { - auto *domain = dinfo->GetDomainByName(Request.GetDomainName()); - if (!domain) { - auto error = Sprintf("Unknown domain %s", Request.GetDomainName().data()); - ReplyWithErrorAndDie(error, ctx); - return; - } - StateStorageGroup = dinfo->GetDefaultStateStorageGroup(domain->DomainUid); - } else { - if (dinfo->Domains.size() > 1) { - auto error = "Ambiguous domain (use --domain option)"; - ReplyWithErrorAndDie(error, ctx); - } - - auto domain = dinfo->Domains.begin()->second; - StateStorageGroup = dinfo->GetDefaultStateStorageGroup(domain->DomainUid); + if (Request.HasDomainName() && dinfo->GetDomain()->Name != Request.GetDomainName()) { + auto error = Sprintf("Unknown domain %s", Request.GetDomainName().data()); + ReplyWithErrorAndDie(error, ctx); + return; } SendRequest(ctx); @@ -63,7 +51,7 @@ class TCmsRequestActor : public TMessageBusSecureRequestDomainsInfo; - if (Request.HasDomainName()) { - auto *domain = dinfo->GetDomainByName(Request.GetDomainName()); - if (!domain) { - auto error = Sprintf("Unknown domain %s", Request.GetDomainName().data()); - ReplyWithErrorAndDie(error, ctx); - return; - } - StateStorageGroup = dinfo->GetDefaultStateStorageGroup(domain->DomainUid); - } else { - if (dinfo->Domains.size() > 1) { - auto error = "Ambiguous domain (use --domain option)"; - ReplyWithErrorAndDie(error, ctx); - return; - } - - auto domain = dinfo->Domains.begin()->second; - StateStorageGroup = dinfo->GetDefaultStateStorageGroup(domain->DomainUid); + if (Request.HasDomainName() && dinfo->GetDomain()->Name != Request.GetDomainName()) { + auto error = Sprintf("Unknown domain %s", Request.GetDomainName().data()); + ReplyWithErrorAndDie(error, ctx); + return; } SendRequest(ctx); @@ -65,7 +52,7 @@ class TConsoleRequestActor : public TMessageBusSecureRequestDomainsInfo.Get(); - auto hiveTabletId = domainsInfo->GetHive(domainsInfo->GetDefaultHiveUid(domainsInfo->Domains.begin()->first)); - return hiveTabletId; + return AppData(ctx)->DomainsInfo->GetHive(); } TMessageBusDrainNode(TBusMessageContext& msg) diff --git a/ydb/core/client/server/msgbus_server_fill_node.cpp b/ydb/core/client/server/msgbus_server_fill_node.cpp index ed4658e77f0e..53844570fad9 100644 --- a/ydb/core/client/server/msgbus_server_fill_node.cpp +++ b/ydb/core/client/server/msgbus_server_fill_node.cpp @@ -10,9 +10,7 @@ class TMessageBusFillNode : public TMessageBusSecureRequestDomainsInfo.Get(); - auto hiveTabletId = domainsInfo->GetHive(domainsInfo->GetDefaultHiveUid(domainsInfo->Domains.begin()->first)); - return hiveTabletId; + return AppData(ctx)->DomainsInfo->GetHive(); } TMessageBusFillNode(TBusMessageContext& msg) diff --git a/ydb/core/client/server/msgbus_server_hive_create_tablet.cpp b/ydb/core/client/server/msgbus_server_hive_create_tablet.cpp index 0c41e53f0905..10b8d419c844 100644 --- a/ydb/core/client/server/msgbus_server_hive_create_tablet.cpp +++ b/ydb/core/client/server/msgbus_server_hive_create_tablet.cpp @@ -261,17 +261,14 @@ using TBase = TActorBootstrapped>; clientConfig.RetryPolicy = NTabletPipe::TClientRetryPolicy::WithRetries(); } - auto &domainsInfo = *AppData(ctx)->DomainsInfo; - auto domainIt = domainsInfo.Domains.find(DomainUid); - if (domainIt == domainsInfo.Domains.end()) { + auto &domainsInfo = AppData(ctx)->DomainsInfo; + if (domainsInfo->GetDomain()->DomainUid != DomainUid) { // Report details ErrorReason = Sprintf("Incorrect DomainUid# %" PRIu64 " or kikimr domian configuration, Marker# HC9", (ui64)DomainUid); return SendReplyAndDie(CreateErrorReply(MSTATUS_ERROR, ctx), ctx); } - auto &domain = domainIt->second; - ui64 hiveUid = domain->DefaultHiveUid; - ui64 hiveTabletId = domainsInfo.GetHive(hiveUid); + ui64 hiveTabletId = domainsInfo->GetHive(); if (Status == NKikimrProto::OK) { PipeClient = ctx.RegisterWithSameMailbox(NTabletPipe::CreateClient(ctx.SelfID, hiveTabletId, clientConfig)); diff --git a/ydb/core/client/server/msgbus_server_local_enumerate_tablets.cpp b/ydb/core/client/server/msgbus_server_local_enumerate_tablets.cpp index 3817a91802fa..6aab25149188 100644 --- a/ydb/core/client/server/msgbus_server_local_enumerate_tablets.cpp +++ b/ydb/core/client/server/msgbus_server_local_enumerate_tablets.cpp @@ -68,16 +68,14 @@ class TMessageBusLocalEnumerateTablets: public TMessageBusLocalServiceRequestDomainsInfo; - auto domainIt = domainsInfo.Domains.find(DomainUid); - if (domainIt == domainsInfo.Domains.end()) { + auto &domainsInfo = AppData(ctx)->DomainsInfo; + if (domainsInfo->GetDomain()->DomainUid != DomainUid) { // Report details in CreateErrorReply TActorId invalidId; return invalidId; } ui32 nodeId = IsNodeIdPresent ? NodeId : ctx.SelfID.NodeId(); - ui32 hiveUid = domainsInfo.GetDefaultHiveUid(DomainUid); - ui64 hiveId = domainsInfo.GetHive(hiveUid); + ui64 hiveId = domainsInfo->GetHive(); return MakeLocalRegistrarID(nodeId, hiveId); } diff --git a/ydb/core/client/server/msgbus_server_login_request.cpp b/ydb/core/client/server/msgbus_server_login_request.cpp index 34001d6fecdf..03b401a1318e 100644 --- a/ydb/core/client/server/msgbus_server_login_request.cpp +++ b/ydb/core/client/server/msgbus_server_login_request.cpp @@ -17,12 +17,6 @@ class TMessageBusLoginRequest : public TActorBootstrappedDomainsInfo.Get(); - auto hiveTabletId = domainsInfo->GetHive(domainsInfo->GetDefaultHiveUid(domainsInfo->Domains.begin()->first)); - return hiveTabletId; - } - TMessageBusLoginRequest(TBusMessageContext& msg) : TMessageBusSessionIdentHolder(msg) , Request(static_cast(msg.ReleaseMessage())) @@ -36,7 +30,7 @@ class TMessageBusLoginRequest : public TActorBootstrappedDomainsInfo->Domains.begin()->second->Name; + TString domainName = "/" + AppData()->DomainsInfo->GetDomain()->Name; TString path = AppData()->AuthConfig.GetDomainLoginOnly() ? domainName : TString();//Request.Get()->GetRecord()->GetDatabaseName(); auto request = MakeHolder(); request->DatabaseName = path; diff --git a/ydb/core/client/server/msgbus_server_node_registration.cpp b/ydb/core/client/server/msgbus_server_node_registration.cpp index 3710b4a438ff..eaca42ebf9ba 100644 --- a/ydb/core/client/server/msgbus_server_node_registration.cpp +++ b/ydb/core/client/server/msgbus_server_node_registration.cpp @@ -51,31 +51,15 @@ class TNodeRegistrationActor : public TActorBootstrapped SendReplyAndDie(ctx); } - auto dinfo = AppData(ctx)->DomainsInfo; - ui32 group; - - if (Request.GetDomainPath()) { - auto *domain = dinfo->GetDomainByName(Request.GetDomainPath()); - if (!domain) { - auto error = Sprintf("Unknown domain %s", Request.GetDomainPath().data()); - ReplyWithErrorAndDie(error, ctx); - return; - } - group = dinfo->GetDefaultStateStorageGroup(domain->DomainUid); - } else { - if (dinfo->Domains.size() > 1) { - auto error = "Ambiguous domain (specify DomainPath in request)"; - ReplyWithErrorAndDie(error, ctx); - return; - } - - auto domain = dinfo->Domains.begin()->second; - group = dinfo->GetDefaultStateStorageGroup(domain->DomainUid); + if (Request.GetDomainPath() && AppData()->DomainsInfo->GetDomain()->Name != Request.GetDomainPath()) { + auto error = Sprintf("Unknown domain %s", Request.GetDomainPath().data()); + ReplyWithErrorAndDie(error, ctx); + return; } NTabletPipe::TClientConfig pipeConfig; pipeConfig.RetryPolicy = {.RetryLimitCount = 10}; - auto pipe = NTabletPipe::CreateClient(ctx.SelfID, MakeNodeBrokerID(group), pipeConfig); + auto pipe = NTabletPipe::CreateClient(ctx.SelfID, MakeNodeBrokerID(), pipeConfig); NodeBrokerPipe = ctx.RegisterWithSameMailbox(pipe); TAutoPtr request diff --git a/ydb/core/client/server/msgbus_server_pq_metacache.cpp b/ydb/core/client/server/msgbus_server_pq_metacache.cpp index e9282535a1e1..27fd46df2856 100644 --- a/ydb/core/client/server/msgbus_server_pq_metacache.cpp +++ b/ydb/core/client/server/msgbus_server_pq_metacache.cpp @@ -438,9 +438,7 @@ class TPersQueueMetaCacheActor : public TActorBootstrappedDomainsInfo.Get(); - auto hiveTabletId = domainsInfo->GetHive(domainsInfo->GetDefaultHiveUid(domainsInfo->Domains.begin()->first)); - return hiveTabletId; + return AppData(ctx)->DomainsInfo->GetHive(); } void HandleDescribeTopics(TEvPqNewMetaCache::TEvDescribeTopicsRequest::TPtr& ev, const TActorContext& ctx) { diff --git a/ydb/core/client/server/msgbus_server_pq_metarequest_ut.cpp b/ydb/core/client/server/msgbus_server_pq_metarequest_ut.cpp index d8a05e9a3de9..c0f92246a02a 100644 --- a/ydb/core/client/server/msgbus_server_pq_metarequest_ut.cpp +++ b/ydb/core/client/server/msgbus_server_pq_metarequest_ut.cpp @@ -489,13 +489,13 @@ class TMessageBusServerPersQueueRequestCommonTest: public TMessageBusServerPersQ switch (topicId) { case 1: descr.SetName(topic1); - descr.SetBalancerTabletID(MakeTabletID(0, 0, 100)); + descr.SetBalancerTabletID(MakeTabletID(false, 100)); descr.SetAlterVersion(42); descr.SetPartitionPerTablet(1); break; case 2: descr.SetName(topic2); - descr.SetBalancerTabletID(MakeTabletID(0, 0, 200)); + descr.SetBalancerTabletID(MakeTabletID(false, 200)); descr.SetAlterVersion(5); descr.SetPartitionPerTablet(3); break; @@ -509,7 +509,7 @@ class TMessageBusServerPersQueueRequestCommonTest: public TMessageBusServerPersQ for (auto i = 0u; i < descr.GetPartitionPerTablet(); i++) { auto* part = descr.AddPartitions(); part->SetPartitionId(i); - part->SetTabletId(MakeTabletID(0, 0, topicId * 100 + 1 + i)); + part->SetTabletId(MakeTabletID(false, topicId * 100 + 1 + i)); } entry.PQGroupInfo.Reset(pqInfo); @@ -644,15 +644,15 @@ class TMessageBusServerPersQueueRequestCommonTest: public TMessageBusServerPersQ void HandlesPipeDisconnectionImpl(EDisconnectionMode disconnectionMode, std::function dataValidationFunction, bool requestTheWholeTopic = false) { GetMockPQMetaCache().SetAllTopicsAnswer(true, std::forward(MakeResultSet())); - PrepareBalancer(topic1, MakeTabletID(0, 0, 100), {{1, MakeTabletID(0, 0, 101)}}); - PreparePQTablet(topic1, MakeTabletID(0, 0, 101), {0}); + PrepareBalancer(topic1, MakeTabletID(false, 100), {{1, MakeTabletID(false, 101)}}); + PreparePQTablet(topic1, MakeTabletID(false, 101), {0}); - PrepareBalancer(topic2, MakeTabletID(0, 0, 200), {{1, MakeTabletID(0, 0, 201)}, {2, MakeTabletID(0, 0, 202)}, {3, MakeTabletID(0, 0, 203)}}); - PreparePQTablet(topic2, MakeTabletID(0, 0, 201), {0}); - PreparePQTablet(topic2, MakeTabletID(0, 0, 202), {1}); - PreparePQTablet(topic2, MakeTabletID(0, 0, 203), {2}); + PrepareBalancer(topic2, MakeTabletID(false, 200), {{1, MakeTabletID(false, 201)}, {2, MakeTabletID(false, 202)}, {3, MakeTabletID(false, 203)}}); + PreparePQTablet(topic2, MakeTabletID(false, 201), {0}); + PreparePQTablet(topic2, MakeTabletID(false, 202), {1}); + PreparePQTablet(topic2, MakeTabletID(false, 203), {2}); - const ui64 tabletToDestroy = MakeTabletID(0, 0, 203); + const ui64 tabletToDestroy = MakeTabletID(false, 203); NKikimrClient::TPersQueueRequest req = MakeValidRequest(); RegisterActor(req); @@ -873,13 +873,13 @@ class TMessageBusServerPersQueueGetPartitionLocationsMetaRequestTest: public TMe void SuccessfullyPassesResponsesFromTablets() { GetMockPQMetaCache().SetAllTopicsAnswer(true, MakeResultSet()); - PrepareBalancer(topic1, MakeTabletID(0, 0, 100), {{1, MakeTabletID(0, 0, 101)}}); - PreparePQTablet(topic1, MakeTabletID(0, 0, 101), {0}); + PrepareBalancer(topic1, MakeTabletID(false, 100), {{1, MakeTabletID(false, 101)}}); + PreparePQTablet(topic1, MakeTabletID(false, 101), {0}); - PrepareBalancer(topic2, MakeTabletID(0, 0, 200), {{1, MakeTabletID(0, 0, 201)}, {2, MakeTabletID(0, 0, 202)}, {3, MakeTabletID(0, 0, 203)}}); + PrepareBalancer(topic2, MakeTabletID(false, 200), {{1, MakeTabletID(false, 201)}, {2, MakeTabletID(false, 202)}, {3, MakeTabletID(false, 203)}}); // Don't prepare partition 0 because it is not required in request // Don't prepare partition 1 to ensure that response is successfull despite the tablet is down - PreparePQTablet(topic2, MakeTabletID(0, 0, 203), {2}); + PreparePQTablet(topic2, MakeTabletID(false, 203), {2}); NKikimrClient::TPersQueueRequest req = MakeValidRequest(); RegisterActor(req); @@ -1038,13 +1038,13 @@ class TMessageBusServerPersQueueGetPartitionOffsetsMetaRequestTest: public TMess void SuccessfullyPassesResponsesFromTablets() { GetMockPQMetaCache().SetAllTopicsAnswer(true, MakeResultSet()); - PrepareBalancer(topic1, MakeTabletID(0, 0, 100), {{1, MakeTabletID(0, 0, 101)}}); - PreparePQTablet(topic1, MakeTabletID(0, 0, 101), {0}); + PrepareBalancer(topic1, MakeTabletID(false, 100), {{1, MakeTabletID(false, 101)}}); + PreparePQTablet(topic1, MakeTabletID(false, 101), {0}); - PrepareBalancer(topic2, MakeTabletID(0, 0, 200), {{1, MakeTabletID(0, 0, 201)}, {2, MakeTabletID(0, 0, 202)}, {3, MakeTabletID(0, 0, 203)}}); + PrepareBalancer(topic2, MakeTabletID(false, 200), {{1, MakeTabletID(false, 201)}, {2, MakeTabletID(false, 202)}, {3, MakeTabletID(false, 203)}}); // Don't prepare partition 0 because it is not required in request // Don't prepare partition 1 to ensure that response is successfull despite the tablet is down - PreparePQTablet(topic2, MakeTabletID(0, 0, 203), {2}); + PreparePQTablet(topic2, MakeTabletID(false, 203), {2}); NKikimrClient::TPersQueueRequest req = MakeValidRequest(); RegisterActor(req); @@ -1202,13 +1202,13 @@ class TMessageBusServerPersQueueGetPartitionStatusMetaRequestTest: public TMessa void SuccessfullyPassesResponsesFromTablets() { GetMockPQMetaCache().SetAllTopicsAnswer(true, MakeResultSet()); - PrepareBalancer(topic1, MakeTabletID(0, 0, 100), {{1, MakeTabletID(0, 0, 101)}}); - PreparePQTablet(topic1, MakeTabletID(0, 0, 101), {0}); + PrepareBalancer(topic1, MakeTabletID(false, 100), {{1, MakeTabletID(false, 101)}}); + PreparePQTablet(topic1, MakeTabletID(false, 101), {0}); - PrepareBalancer(topic2, MakeTabletID(0, 0, 200), {{1, MakeTabletID(0, 0, 201)}, {2, MakeTabletID(0, 0, 202)}, {3, MakeTabletID(0, 0, 203)}}); + PrepareBalancer(topic2, MakeTabletID(false, 200), {{1, MakeTabletID(false, 201)}, {2, MakeTabletID(false, 202)}, {3, MakeTabletID(false, 203)}}); // Don't prepare partition 0 because it is not required in request // Don't prepare partition 1 to ensure that response is successfull despite the tablet is down - PreparePQTablet(topic2, MakeTabletID(0, 0, 203), {2}); + PreparePQTablet(topic2, MakeTabletID(false, 203), {2}); NKikimrClient::TPersQueueRequest req = MakeValidRequest(); RegisterActor(req); @@ -1349,13 +1349,13 @@ class TMessageBusServerPersQueueGetReadSessionsInfoMetaRequestTest: public TMess void SuccessfullyPassesResponsesFromTablets() { GetMockPQMetaCache().SetAllTopicsAnswer(true, MakeResultSet()); - PrepareBalancer(topic1, MakeTabletID(0, 0, 100), {{1, MakeTabletID(0, 0, 101)}}); - PreparePQTablet(topic1, MakeTabletID(0, 0, 101), {0}); + PrepareBalancer(topic1, MakeTabletID(false, 100), {{1, MakeTabletID(false, 101)}}); + PreparePQTablet(topic1, MakeTabletID(false, 101), {0}); - PrepareBalancer(topic2, MakeTabletID(0, 0, 200), {{1, MakeTabletID(0, 0, 201)}, {2, MakeTabletID(0, 0, 202)}, {3, MakeTabletID(0, 0, 203)}}); + PrepareBalancer(topic2, MakeTabletID(false, 200), {{1, MakeTabletID(false, 201)}, {2, MakeTabletID(false, 202)}, {3, MakeTabletID(false, 203)}}); // Don't prepare partition 0 to test its failure processing - PreparePQTablet(topic2, MakeTabletID(0, 0, 202), {1}); - PreparePQTablet(topic2, MakeTabletID(0, 0, 203), {2}); + PreparePQTablet(topic2, MakeTabletID(false, 202), {1}); + PreparePQTablet(topic2, MakeTabletID(false, 203), {2}); NKikimrClient::TPersQueueRequest req = MakeValidRequest(); Cerr << "REQUEST " << req.DebugString() << "\n"; diff --git a/ydb/core/cms/cms.cpp b/ydb/core/cms/cms.cpp index 9abf3ea981fc..2e81ac5d1acf 100644 --- a/ydb/core/cms/cms.cpp +++ b/ydb/core/cms/cms.cpp @@ -43,13 +43,6 @@ void TCms::DefaultSignalTabletActive(const TActorContext &) void TCms::OnActivateExecutor(const TActorContext &ctx) { - if (AppData(ctx)->DomainsInfo->Domains.size() > 1) { - NotSupportedReason = "Multiple domains are not supported."; - Become(&TThis::StateNotSupported); - SignalTabletActive(ctx); - return; - } - EnableCMSRequestPriorities = AppData(ctx)->FeatureFlags.GetEnableCMSRequestPriorities(); Executor()->RegisterExternalTabletCounters(TabletCountersPtr.Release()); diff --git a/ydb/core/cms/cms_ut_common.cpp b/ydb/core/cms/cms_ut_common.cpp index aa9939b45994..ac0b46b39c4e 100644 --- a/ydb/core/cms/cms_ut_common.cpp +++ b/ydb/core/cms/cms_ut_common.cpp @@ -509,12 +509,12 @@ static void SetupServices(TTestActorRuntime &runtime, const TTestEnvOpts &option runtime.DispatchEvents(options); } - auto cid = CreateTestBootstrapper(runtime, CreateTestTabletInfo(MakeConsoleID(0), TTabletTypes::Console), + auto cid = CreateTestBootstrapper(runtime, CreateTestTabletInfo(MakeConsoleID(), TTabletTypes::Console), &NConsole::CreateConsole); - CreateTestBootstrapper(runtime, CreateTestTabletInfo(MakeBSControllerID(0), TTabletTypes::BSController), + CreateTestBootstrapper(runtime, CreateTestTabletInfo(MakeBSControllerID(), TTabletTypes::BSController), &CreateFlatBsController); - auto aid = CreateTestBootstrapper(runtime, CreateTestTabletInfo(MakeCmsID(0), TTabletTypes::Cms), &CreateCms); + auto aid = CreateTestBootstrapper(runtime, CreateTestTabletInfo(MakeCmsID(), TTabletTypes::Cms), &CreateCms); runtime.EnableScheduleForActor(aid, true); runtime.EnableScheduleForActor(cid, true); } @@ -523,7 +523,7 @@ static void SetupServices(TTestActorRuntime &runtime, const TTestEnvOpts &option TCmsTestEnv::TCmsTestEnv(const TTestEnvOpts &options) : TTestBasicRuntime(options.NodeCount, options.DataCenterCount, false) - , CmsId(MakeCmsID(0)) + , CmsId(MakeCmsID()) { TFakeNodeWhiteboardService::Config.MutableResponse()->SetSuccess(true); TFakeNodeWhiteboardService::Config.MutableResponse()->ClearStatus(); @@ -556,7 +556,7 @@ TCmsTestEnv::TCmsTestEnv(const TTestEnvOpts &options) for (ui32 nodeIndex = 0; nodeIndex < GetNodeCount(); ++nodeIndex) { if (options.NRings > 1) { - SetupCustomStateStorage(*this, options.NToSelect, options.NRings, options.RingSize, 0); + SetupCustomStateStorage(*this, options.NToSelect, options.NRings, options.RingSize); } else { SetupStateStorage(*this, nodeIndex); } @@ -591,8 +591,7 @@ TCmsTestEnv::TCmsTestEnv(ui32 nodeCount, } TIntrusiveConstPtr TCmsTestEnv::GetStateStorageInfo() { - ui32 StateStorageGroup = 0; - const TActorId proxy = MakeStateStorageProxyID(StateStorageGroup); + const TActorId proxy = MakeStateStorageProxyID(); Send(new IEventHandle(proxy, Sender, new TEvStateStorage::TEvListStateStorage())); auto reply = GrabEdgeEventRethrow(Sender); diff --git a/ydb/core/cms/console/config_helpers.cpp b/ydb/core/cms/console/config_helpers.cpp index 08637f2681e8..9f7b97b2c8b4 100644 --- a/ydb/core/cms/console/config_helpers.cpp +++ b/ydb/core/cms/console/config_helpers.cpp @@ -160,11 +160,7 @@ class TConfigHelper : public TActorBootstrapped { void OpenPipe(const TActorContext &ctx) { - auto domains = AppData(ctx)->DomainsInfo; - Y_ABORT_UNLESS(domains->Domains.size() == 1, "multiple domains are not supported by TConfigHelper"); - auto domain = domains->Domains.begin()->second; - auto group = domains->GetDefaultStateStorageGroup(domain->DomainUid); - auto console = MakeConsoleID(group); + auto console = MakeConsoleID(); NTabletPipe::TClientConfig pipeConfig; pipeConfig.RetryPolicy = FastConnectRetryPolicy(); @@ -174,9 +170,7 @@ class TConfigHelper : public TActorBootstrapped { void SendPoolStatusRequest(const TActorContext &ctx) { - auto domains = AppData(ctx)->DomainsInfo; - Y_ABORT_UNLESS(domains->Domains.size() == 1, "multiple domains are not supported by TConfigHelper"); - auto tenantPool = MakeTenantPoolID(ctx.SelfID.NodeId(), domains->Domains.begin()->second->DomainUid); + auto tenantPool = MakeTenantPoolID(ctx.SelfID.NodeId()); ctx.Send(tenantPool, new TEvTenantPool::TEvGetStatus(true), IEventHandle::FlagTrackDelivery); } diff --git a/ydb/core/cms/console/console.cpp b/ydb/core/cms/console/console.cpp index 3b5b01aad842..b320554ed599 100644 --- a/ydb/core/cms/console/console.cpp +++ b/ydb/core/cms/console/console.cpp @@ -23,8 +23,6 @@ void TConsole::DefaultSignalTabletActive(const TActorContext &) void TConsole::OnActivateExecutor(const TActorContext &ctx) { auto domains = AppData(ctx)->DomainsInfo; - auto domainId = domains->GetDomainUidByTabletId(TabletID()); - Y_ABORT_UNLESS(domainId != TDomainsInfo::BadDomainId); auto tabletsCounters = GetServiceCounters(AppData(ctx)->Counters, "tablets"); tabletsCounters->RemoveSubgroup("type", "CONSOLE"); @@ -35,7 +33,7 @@ void TConsole::OnActivateExecutor(const TActorContext &ctx) ConfigsManager = new TConfigsManager(*this); ctx.RegisterWithSameMailbox(ConfigsManager); - TenantsManager = new TTenantsManager(*this, domains->Domains.at(domainId), + TenantsManager = new TTenantsManager(*this, domains->Domain, Counters, AppData()->FeatureFlags); ctx.RegisterWithSameMailbox(TenantsManager); @@ -77,7 +75,7 @@ bool TConsole::OnRenderAppHtmlPage(NMon::TEvRemoteHttpInfo::TPtr ev, const TActo return true; auto domains = AppData(ctx)->DomainsInfo; - auto domain = domains->Domains.at(domains->GetDomainUidByTabletId(TabletID())); + auto domain = domains->Domain; TStringStream str; HTML(str) { diff --git a/ydb/core/cms/console/console_configs_subscriber.cpp b/ydb/core/cms/console/console_configs_subscriber.cpp index 6b0d0fb5215a..85ad26bff335 100644 --- a/ydb/core/cms/console/console_configs_subscriber.cpp +++ b/ydb/core/cms/console/console_configs_subscriber.cpp @@ -74,18 +74,6 @@ class TConfigsSubscriber : public TActorBootstrapped { } void Bootstrap(const TActorContext &ctx) { - auto dinfo = AppData(ctx)->DomainsInfo; - if (dinfo->Domains.size() != 1) { - Send(OwnerId, new NConsole::TEvConsole::TEvConfigSubscriptionError(Ydb::StatusIds::GENERIC_ERROR, "Ambiguous domain (use --domain option)"), 0, Cookie); - - Die(ctx); - - return; - } - - DomainUid = dinfo->Domains.begin()->second->DomainUid; - StateStorageGroup = dinfo->GetDefaultStateStorageGroup(DomainUid); - SendPoolStatusRequest(ctx); Become(&TThis::StateWork); } @@ -113,8 +101,7 @@ class TConfigsSubscriber : public TActorBootstrapped { } void SendPoolStatusRequest(const TActorContext &ctx) { - ctx.Send(MakeTenantPoolID(ctx.SelfID.NodeId(), DomainUid), new TEvTenantPool::TEvGetStatus(true), - IEventHandle::FlagTrackDelivery); + ctx.Send(MakeTenantPoolID(ctx.SelfID.NodeId()), new TEvTenantPool::TEvGetStatus(true), IEventHandle::FlagTrackDelivery); } void Handle(TEvPrivate::TEvRetryPoolStatus::TPtr &/*ev*/, const TActorContext &ctx) { @@ -369,7 +356,7 @@ class TConfigsSubscriber : public TActorBootstrapped { } void OpenPipe(const TActorContext &ctx) { - auto console = MakeConsoleID(StateStorageGroup); + auto console = MakeConsoleID(); NTabletPipe::TClientConfig pipeConfig; pipeConfig.RetryPolicy = FastConnectRetryPolicy(); @@ -399,9 +386,6 @@ class TConfigsSubscriber : public TActorBootstrapped { TString Tenant; TString NodeType; - ui32 DomainUid; - ui32 StateStorageGroup; - TActorId Pipe; }; diff --git a/ydb/core/cms/console/console_tenants_manager.cpp b/ydb/core/cms/console/console_tenants_manager.cpp index e4982abd3630..2024564a2cfb 100644 --- a/ydb/core/cms/console/console_tenants_manager.cpp +++ b/ydb/core/cms/console/console_tenants_manager.cpp @@ -71,7 +71,7 @@ class TPoolManip : public TActorBootstrapped { { NTabletPipe::TClientConfig pipeConfig; pipeConfig.RetryPolicy = FastConnectRetryPolicy(); - auto tid = MakeBSControllerID(Domain->DefaultStateStorageGroup); + auto tid = MakeBSControllerID(); auto pipe = NTabletPipe::CreateClient(ctx.SelfID, tid, pipeConfig); BSControllerPipe = ctx.ExecutorThread.RegisterActor(pipe); } @@ -1742,7 +1742,7 @@ void TTenantsManager::OpenTenantSlotBrokerPipe(const TActorContext &ctx) { NTabletPipe::TClientConfig pipeConfig; pipeConfig.RetryPolicy = FastConnectRetryPolicy(); - auto aid = MakeTenantSlotBrokerID(Domain->DefaultStateStorageGroup); + auto aid = MakeTenantSlotBrokerID(); auto pipe = NTabletPipe::CreateClient(ctx.SelfID, aid, pipeConfig); TenantSlotBrokerPipe = ctx.ExecutorThread.RegisterActor(pipe); } diff --git a/ydb/core/cms/console/console_ut_configs.cpp b/ydb/core/cms/console/console_ut_configs.cpp index 690c1977f399..4c40b5f06b69 100644 --- a/ydb/core/cms/console/console_ut_configs.cpp +++ b/ydb/core/cms/console/console_ut_configs.cpp @@ -619,7 +619,7 @@ void CheckCheckConfigUpdates(TTenantTestRuntime &runtime, void RestartConsole(TTenantTestRuntime &runtime) { - runtime.Register(CreateTabletKiller(MakeConsoleID(0))); + runtime.Register(CreateTabletKiller(MakeConsoleID())); TDispatchOptions options; options.FinalEvents.emplace_back(&IsTabletActiveEvent, 1); runtime.DispatchEvents(options); @@ -1055,7 +1055,7 @@ Y_UNIT_TEST_SUITE(TConsoleConfigTests) { MakeAddAction(tmp1)); { - runtime.Register(CreateTabletKiller(MakeConsoleID(0))); + runtime.Register(CreateTabletKiller(MakeConsoleID())); TDispatchOptions options; options.FinalEvents.emplace_back(&IsTabletActiveEvent, 1); runtime.DispatchEvents(options); @@ -2561,7 +2561,7 @@ Y_UNIT_TEST_SUITE(TConsoleConfigSubscriptionTests) { 2, "host2", "tenant-2", "type2", 0, TActorId(nodeId, "service"), {{4, 5, 6}}); - runtime.Register(CreateTabletKiller(MakeConsoleID(0))); + runtime.Register(CreateTabletKiller(MakeConsoleID())); TDispatchOptions options; options.FinalEvents.emplace_back(&IsTabletActiveEvent, 1); runtime.DispatchEvents(options); @@ -2619,7 +2619,7 @@ Y_UNIT_TEST_SUITE(TConsoleConfigSubscriptionTests) { CheckRemoveConfigSubscription(runtime, Ydb::StatusIds::SUCCESS, id2); CheckRemoveConfigSubscription(runtime, Ydb::StatusIds::NOT_FOUND, id2); - runtime.Register(CreateTabletKiller(MakeConsoleID(0))); + runtime.Register(CreateTabletKiller(MakeConsoleID())); TDispatchOptions options; options.FinalEvents.emplace_back(&IsTabletActiveEvent, 1); runtime.DispatchEvents(options); @@ -2666,7 +2666,7 @@ Y_UNIT_TEST_SUITE(TConsoleConfigSubscriptionTests) { CheckRemoveConfigSubscriptions(runtime, Ydb::StatusIds::SUCCESS, 0, TActorId()); - runtime.Register(CreateTabletKiller(MakeConsoleID(0))); + runtime.Register(CreateTabletKiller(MakeConsoleID())); TDispatchOptions options; options.FinalEvents.emplace_back(&IsTabletActiveEvent, 1); runtime.DispatchEvents(options); @@ -2789,7 +2789,7 @@ Y_UNIT_TEST_SUITE(TConsoleConfigSubscriptionTests) { 0, TActorId(nodeId, "service"), {{4, 5, 6}}); UNIT_ASSERT_VALUES_EQUAL(id2, id6); - runtime.Register(CreateTabletKiller(MakeConsoleID(0))); + runtime.Register(CreateTabletKiller(MakeConsoleID())); TDispatchOptions options; options.FinalEvents.emplace_back(&IsTabletActiveEvent, 1); runtime.DispatchEvents(options); @@ -3447,7 +3447,7 @@ Y_UNIT_TEST_SUITE(TConsoleConfigSubscriptionTests) { CheckConfigId(reply1->Record.GetConfigId(), ITEM_DOMAIN_LOG_1); // Restart server before notification response -> new notification. - runtime.Register(CreateTabletKiller(MakeConsoleID(0))); + runtime.Register(CreateTabletKiller(MakeConsoleID())); auto reply2 = runtime.GrabEdgeEventRethrow(handle); CheckConfigId(reply2->Record.GetConfigId(), ITEM_DOMAIN_LOG_1); AcceptConfig(runtime, handle); @@ -3457,7 +3457,7 @@ Y_UNIT_TEST_SUITE(TConsoleConfigSubscriptionTests) { runtime.DispatchEvents(options); // Restart server after notification response -> no new notification. - runtime.Register(CreateTabletKiller(MakeConsoleID(0))); + runtime.Register(CreateTabletKiller(MakeConsoleID())); auto reply3 = runtime.GrabEdgeEventRethrow(handle, TDuration::Seconds(5)); UNIT_ASSERT(!reply3); } @@ -3636,7 +3636,7 @@ Y_UNIT_TEST_SUITE(TConsoleInMemoryConfigSubscriptionTests) { event->Record.MutableOptions()->SetTenant("tenant-1"); event->Record.MutableOptions()->SetNodeType("type1"); event->Record.AddConfigItemKinds(NKikimrConsole::TConfigItem::LogConfigItem); - runtime.SendToPipe(MakeConsoleID(0), edgeId, event, 0, GetPipeConfigWithRetries()); + runtime.SendToPipe(MakeConsoleID(), edgeId, event, 0, GetPipeConfigWithRetries()); runtime.GrabEdgeEventRethrow(edgeId); // initial update @@ -3934,7 +3934,7 @@ Y_UNIT_TEST_SUITE(TConsoleInMemoryConfigSubscriptionTests) { CheckReplaceConfig(runtime, Ydb::StatusIds::SUCCESS, YAML_CONFIG_1); - GracefulRestartTablet(runtime, MakeConsoleID(0), runtime.AllocateEdgeActor(0)); + GracefulRestartTablet(runtime, MakeConsoleID(), runtime.AllocateEdgeActor(0)); auto subscriber = NConsole::CreateConfigsSubscriber( edgeId, @@ -4088,7 +4088,7 @@ Y_UNIT_TEST_SUITE(TConsoleInMemoryConfigSubscriptionTests) { event->Record.SetServeYaml(true); event->Record.SetYamlApiVersion(1); event->Record.AddConfigItemKinds(NKikimrConsole::TConfigItem::LogConfigItem); - runtime.SendToPipe(MakeConsoleID(0), edgeId, event, 0, GetPipeConfigWithRetries()); + runtime.SendToPipe(MakeConsoleID(), edgeId, event, 0, GetPipeConfigWithRetries()); runtime.GrabEdgeEventRethrow(edgeId); // initial update @@ -4163,7 +4163,7 @@ Y_UNIT_TEST_SUITE(TConsoleInMemoryConfigSubscriptionTests) { event->Record.SetServeYaml(true); event->Record.SetYamlApiVersion(1); event->Record.AddConfigItemKinds(NKikimrConsole::TConfigItem::LogConfigItem); - runtime.SendToPipe(MakeConsoleID(0), edgeId, event, 0, GetPipeConfigWithRetries()); + runtime.SendToPipe(MakeConsoleID(), edgeId, event, 0, GetPipeConfigWithRetries()); auto notification = runtime.GrabEdgeEventRethrow(edgeId); @@ -4224,7 +4224,7 @@ Y_UNIT_TEST_SUITE(TConsoleInMemoryConfigSubscriptionTests) { volatileYamlVersion->SetId(1); volatileYamlVersion->SetHash(VOLATILE_YAML_CONFIG_1_2_HASH); event->Record.AddConfigItemKinds(NKikimrConsole::TConfigItem::LogConfigItem); - runtime.SendToPipe(MakeConsoleID(0), edgeId, event, 0, GetPipeConfigWithRetries()); + runtime.SendToPipe(MakeConsoleID(), edgeId, event, 0, GetPipeConfigWithRetries()); runtime.GrabEdgeEventRethrow(edgeId); // initial update @@ -4234,7 +4234,7 @@ Y_UNIT_TEST_SUITE(TConsoleInMemoryConfigSubscriptionTests) { volatileYamlVersion = event->Record.AddVolatileYamlVersion(); volatileYamlVersion->SetId(0); volatileYamlVersion->SetHash(VOLATILE_YAML_CONFIG_1_1_HASH); - runtime.SendToPipe(MakeConsoleID(0), edgeId, event, 0, GetPipeConfigWithRetries()); + runtime.SendToPipe(MakeConsoleID(), edgeId, event, 0, GetPipeConfigWithRetries()); auto notification = runtime.GrabEdgeEventRethrow(edgeId); @@ -4252,7 +4252,7 @@ Y_UNIT_TEST_SUITE(TConsoleInMemoryConfigSubscriptionTests) { volatileYamlVersion = event->Record.AddVolatileYamlVersion(); volatileYamlVersion->SetId(1); volatileYamlVersion->SetHash(VOLATILE_YAML_CONFIG_1_2_HASH); - runtime.SendToPipe(MakeConsoleID(0), edgeId, event, 0, GetPipeConfigWithRetries()); + runtime.SendToPipe(MakeConsoleID(), edgeId, event, 0, GetPipeConfigWithRetries()); notification = runtime.GrabEdgeEventRethrow(edgeId); @@ -4276,7 +4276,7 @@ Y_UNIT_TEST_SUITE(TConsoleInMemoryConfigSubscriptionTests) { volatileYamlVersion = event->Record.AddVolatileYamlVersion(); volatileYamlVersion->SetId(2); volatileYamlVersion->SetHash(VOLATILE_YAML_CONFIG_1_2_HASH); - runtime.SendToPipe(MakeConsoleID(0), edgeId, event, 0, GetPipeConfigWithRetries()); + runtime.SendToPipe(MakeConsoleID(), edgeId, event, 0, GetPipeConfigWithRetries()); notification = runtime.GrabEdgeEventRethrow(edgeId); diff --git a/ydb/core/cms/console/console_ut_tenants.cpp b/ydb/core/cms/console/console_ut_tenants.cpp index 7986170cacb1..d91584469c79 100644 --- a/ydb/core/cms/console/console_ut_tenants.cpp +++ b/ydb/core/cms/console/console_ut_tenants.cpp @@ -363,7 +363,7 @@ NKikimrBlobStorage::TEvControllerConfigResponse ReadPoolState(TTenantTestRuntime NTabletPipe::TClientConfig pipeConfig; pipeConfig.RetryPolicy = NTabletPipe::TClientRetryPolicy::WithRetries(); - runtime.SendToPipe(MakeBSControllerID(0), runtime.Sender, request.Release(), 0, pipeConfig); + runtime.SendToPipe(MakeBSControllerID(), runtime.Sender, request.Release(), 0, pipeConfig); auto ev = runtime.GrabEdgeEventRethrow(runtime.Sender); return ev->Get()->Record; @@ -379,7 +379,7 @@ void CheckPoolScope(TTenantTestRuntime &runtime, const TString &name) void RestartConsole(TTenantTestRuntime &runtime) { - runtime.Register(CreateTabletKiller(MakeConsoleID(0))); + runtime.Register(CreateTabletKiller(MakeConsoleID())); TDispatchOptions options; options.FinalEvents.emplace_back(&IsTabletActiveEvent, 1); runtime.DispatchEvents(options); @@ -425,7 +425,7 @@ void LocalMiniKQL(TTenantTestRuntime& runtime, ui64 tabletId, const TString& que } void MakePoolBorrowed(TTenantTestRuntime& runtime, const TString& tenant, const TString& pool) { - LocalMiniKQL(runtime, MakeConsoleID(0), Sprintf(R"( + LocalMiniKQL(runtime, MakeConsoleID(), Sprintf(R"( ( (let key '('('Tenant (Utf8 '"%s")) '('PoolType (Utf8 '"%s")))) (let row '('('Borrowed (Bool '1)))) @@ -649,7 +649,7 @@ Y_UNIT_TEST_SUITE(TConsoleTxProcessorTests) { Y_UNIT_TEST_SUITE(TConsoleTests) { void RestartTenantPool(TTenantTestRuntime& runtime) { - runtime.Send(new IEventHandle(MakeTenantPoolID(runtime.GetNodeId(0), 0), + runtime.Send(new IEventHandle(MakeTenantPoolID(runtime.GetNodeId(0)), runtime.Sender, new TEvents::TEvPoisonPill)); @@ -819,13 +819,13 @@ Y_UNIT_TEST_SUITE(TConsoleTests) { } void RunTestRestartConsoleAndPools(TTenantTestRuntime& runtime) { - runtime.Send(new IEventHandle(MakeTenantPoolID(runtime.GetNodeId(1), 0), + runtime.Send(new IEventHandle(MakeTenantPoolID(runtime.GetNodeId(1)), runtime.Sender, new TEvents::TEvPoisonPill)); - runtime.Send(new IEventHandle(MakeTenantPoolID(runtime.GetNodeId(2), 0), + runtime.Send(new IEventHandle(MakeTenantPoolID(runtime.GetNodeId(2)), runtime.Sender, new TEvents::TEvPoisonPill)); - runtime.Send(new IEventHandle(MakeTenantPoolID(runtime.GetNodeId(3), 0), + runtime.Send(new IEventHandle(MakeTenantPoolID(runtime.GetNodeId(3)), runtime.Sender, new TEvents::TEvPoisonPill)); diff --git a/ydb/core/cms/info_collector.cpp b/ydb/core/cms/info_collector.cpp index 47ab298805af..d53b640041c2 100644 --- a/ydb/core/cms/info_collector.cpp +++ b/ydb/core/cms/info_collector.cpp @@ -239,11 +239,8 @@ void TInfoCollector::Handle(TEvConfigsDispatcher::TEvGetConfigResponse::TPtr& ev } void TInfoCollector::RequestStateStorageConfig() { - const auto& domains = AppData()->DomainsInfo->Domains; - Y_ABORT_UNLESS(domains.size() <= 1); - - for (const auto& domain : domains) { - const auto ssProxyId = MakeStateStorageProxyID(domain.second->DefaultStateStorageGroup); + if (AppData()->DomainsInfo->Domain) { + const auto ssProxyId = MakeStateStorageProxyID(); Send(ssProxyId, new TEvStateStorage::TEvListStateStorage()); } } @@ -265,11 +262,8 @@ void TInfoCollector::Handle(TEvStateStorage::TEvListStateStorageResult::TPtr& ev void TInfoCollector::RequestBaseConfig() { using namespace NTabletPipe; - const auto& domains = AppData()->DomainsInfo->Domains; - Y_ABORT_UNLESS(domains.size() <= 1); - - for (const auto& domain : domains) { - const auto bscId = MakeBSControllerID(domain.second->DefaultStateStorageGroup); + if (AppData()->DomainsInfo->Domain) { + const auto bscId = MakeBSControllerID(); BscPipe = Register(CreateClient(SelfId(), bscId, TClientConfig(TClientRetryPolicy::WithRetries()))); auto ev = MakeHolder(); @@ -338,11 +332,8 @@ void TInfoCollector::SendNodeRequests(ui32 nodeId) { SendNodeEvent(nodeId, whiteBoardId, new TEvWhiteboard::TEvPDiskStateRequest(), TEvWhiteboard::EvPDiskStateResponse); SendNodeEvent(nodeId, whiteBoardId, new TEvWhiteboard::TEvVDiskStateRequest(), TEvWhiteboard::EvVDiskStateResponse); - const auto& domains = AppData()->DomainsInfo->Domains; - Y_ABORT_UNLESS(domains.size() <= 1); - - for (const auto& domain : domains) { - const TActorId tenantPoolId = MakeTenantPoolID(nodeId, domain.second->DomainUid); + if (AppData()->DomainsInfo->Domain) { + const TActorId tenantPoolId = MakeTenantPoolID(nodeId); SendNodeEvent(nodeId, tenantPoolId, new TEvTenantPool::TEvGetStatus(true), TEvTenantPool::EvTenantPoolStatus); } } diff --git a/ydb/core/cms/json_proxy.h b/ydb/core/cms/json_proxy.h index cda44d0c54da..ab95ec32f9cd 100644 --- a/ydb/core/cms/json_proxy.h +++ b/ydb/core/cms/json_proxy.h @@ -46,12 +46,6 @@ class TJsonProxyBase : public TActorBootstrapped request = PrepareRequest(ctx); if (!request) { LOG_ERROR_S(ctx, NKikimrServices::CMS, @@ -247,10 +241,8 @@ class TJsonProxyCmsBase : public TJsonProxyDomainsInfo; - ui32 domain = dinfo->Domains.begin()->first; - return useConsole ? MakeConsoleID(domain) : MakeCmsID(domain); + ui64 GetTabletId(const TActorContext& /*ctx*/) const override { + return useConsole ? MakeConsoleID() : MakeCmsID(); } TString GetTabletName() const override { diff --git a/ydb/core/cms/sentinel.cpp b/ydb/core/cms/sentinel.cpp index e16d38b694a6..314cc3a21499 100644 --- a/ydb/core/cms/sentinel.cpp +++ b/ydb/core/cms/sentinel.cpp @@ -307,9 +307,7 @@ TClusterMap::TPDiskIDSet TGuardian::GetAllowedPDisks(const TClusterMap& all, TSt /// Misc IActor* CreateBSControllerPipe(TCmsStatePtr cmsState) { - auto domains = AppData()->DomainsInfo; - const ui32 domainUid = domains->GetDomainUidByTabletId(cmsState->CmsTabletId); - const ui64 bscId = MakeBSControllerID(domains->GetDefaultStateStorageGroup(domainUid)); + const ui64 bscId = MakeBSControllerID(); NTabletPipe::TClientConfig config; config.RetryPolicy = NTabletPipe::TClientRetryPolicy::WithRetries(); diff --git a/ydb/core/cms/walle_api_handler.cpp b/ydb/core/cms/walle_api_handler.cpp index 49358e912595..dcfa1137a344 100644 --- a/ydb/core/cms/walle_api_handler.cpp +++ b/ydb/core/cms/walle_api_handler.cpp @@ -309,13 +309,12 @@ class TWalleCrateTaskHandler : public TActorBootstrapped void SendToCms(IEventBase *ev, const TActorContext &ctx) { Y_ABORT_UNLESS(!CmsPipe); - ui32 domain = AppData(ctx)->DomainsInfo->Domains.begin()->first; NTabletPipe::TClientConfig pipeConfig; pipeConfig.RetryPolicy = { .MinRetryTime = TDuration::MilliSeconds(10), .MaxRetryTime = TDuration::Seconds(10), }; - CmsPipe = ctx.RegisterWithSameMailbox(NTabletPipe::CreateClient(ctx.SelfID, MakeCmsID(domain), pipeConfig)); + CmsPipe = ctx.RegisterWithSameMailbox(NTabletPipe::CreateClient(ctx.SelfID, MakeCmsID(), pipeConfig)); NTabletPipe::SendData(ctx, CmsPipe, ev); } diff --git a/ydb/core/control/immediate_control_board_actor_ut.cpp b/ydb/core/control/immediate_control_board_actor_ut.cpp index 077a25ee00ea..0f8af52b247b 100644 --- a/ydb/core/control/immediate_control_board_actor_ut.cpp +++ b/ydb/core/control/immediate_control_board_actor_ut.cpp @@ -147,7 +147,7 @@ static void Run(i64 instances = 1) { VERBOSE_COUT("Sending TEvBoot to test"); for (ui32 i = 0; i < instances; ++i) { - ActorSystem->Send(testIds[i], new TEvTablet::TEvBoot(MakeTabletID(0, 0, 1), 0, nullptr, TActorId(), nullptr)); + ActorSystem->Send(testIds[i], new TEvTablet::TEvBoot(MakeTabletID(false, 1), 0, nullptr, TActorId(), nullptr)); } TAtomicBase doneCount = 0; diff --git a/ydb/core/discovery/discovery.cpp b/ydb/core/discovery/discovery.cpp index 4bffc082bce6..a882c3d7f26a 100644 --- a/ydb/core/discovery/discovery.cpp +++ b/ydb/core/discovery/discovery.cpp @@ -199,11 +199,9 @@ namespace NDiscoveryPrivate { struct TEvRequest: public TEventLocal { const TString Database; - const ui32 StateStorageId; - TEvRequest(const TString& db, ui32 stateStorageId) + TEvRequest(const TString& db) : Database(db) - , StateStorageId(stateStorageId) { } }; @@ -223,7 +221,7 @@ namespace NDiscoveryPrivate { THashMap> Requested; bool Scheduled = false; - auto Request(const TString& database, ui32 groupId) { + auto Request(const TString& database) { auto result = Requested.emplace(database, TVector()); if (result.second) { auto mode = EBoardLookupMode::Second; @@ -232,14 +230,14 @@ namespace NDiscoveryPrivate { } CLOG_D("Lookup" << ": path# " << database); - Register(CreateBoardLookupActor(database, SelfId(), groupId, mode)); + Register(CreateBoardLookupActor(database, SelfId(), mode)); } return result.first; } - void Request(const TString& database, ui32 groupId, const TWaiter& waiter) { - auto it = Request(database, groupId); + void Request(const TString& database, const TWaiter& waiter) { + auto it = Request(database); it->second.push_back(waiter); } @@ -342,16 +340,16 @@ namespace NDiscoveryPrivate { if (enableSubscriptions) { cachedData = CachedNotAvailable.FindPtr(msg->Database); if (cachedData == nullptr) { - Request(msg->Database, msg->StateStorageId, {ev->Sender, ev->Cookie}); + Request(msg->Database, {ev->Sender, ev->Cookie}); return; } } else { cachedData = OldCachedMessages.FindPtr(msg->Database); if (cachedData == nullptr) { - Request(msg->Database, msg->StateStorageId, {ev->Sender, ev->Cookie}); + Request(msg->Database, {ev->Sender, ev->Cookie}); return; } - Request(msg->Database, msg->StateStorageId); + Request(msg->Database); } } @@ -567,10 +565,9 @@ class TDiscoverer: public TActorBootstrapped { database.append("/").append(token); } - const auto stateStorageGroupId = domainInfo->DefaultStateStorageGroup; const auto reqPath = MakeLookupPath(database); - Send(CacheId, new NDiscoveryPrivate::TEvPrivate::TEvRequest(reqPath, stateStorageGroupId), 0, ++LookupCookie); + Send(CacheId, new NDiscoveryPrivate::TEvPrivate::TEvRequest(reqPath), 0, ++LookupCookie); LookupResponse.Reset(); } diff --git a/ydb/core/driver_lib/run/kikimr_services_initializers.cpp b/ydb/core/driver_lib/run/kikimr_services_initializers.cpp index acb309f81717..83e671c660c8 100644 --- a/ydb/core/driver_lib/run/kikimr_services_initializers.cpp +++ b/ydb/core/driver_lib/run/kikimr_services_initializers.cpp @@ -996,15 +996,12 @@ TStateStorageServiceInitializer::TStateStorageServiceInitializer(const TKikimrRu : IKikimrServicesInitializer(runConfig) { } -void TStateStorageServiceInitializer::InitializeServices(NActors::TActorSystemSetup* setup, - const NKikimr::TAppData* appData) { - // setup state storage stuff - const ui32 maxssid = 255; - bool knownss[maxssid + 1] = {}; +void TStateStorageServiceInitializer::InitializeServices(NActors::TActorSystemSetup* setup, const NKikimr::TAppData* appData) { + bool found = false; + for (const NKikimrConfig::TDomainsConfig::TStateStorage &ssconf : Config.GetDomainsConfig().GetStateStorage()) { - const ui32 ssid = ssconf.GetSSId(); - Y_ABORT_UNLESS(ssid <= maxssid); - knownss[ssid] = true; + Y_ABORT_UNLESS(ssconf.GetSSId() == 1); + found = true; TIntrusivePtr ssrInfo; TIntrusivePtr ssbInfo; @@ -1016,17 +1013,13 @@ void TStateStorageServiceInitializer::InitializeServices(NActors::TActorSystemSe StartLocalStateStorageReplicas(CreateStateStorageBoardReplica, ssbInfo.Get(), appData->SystemPoolId, *setup); StartLocalStateStorageReplicas(CreateSchemeBoardReplica, sbrInfo.Get(), appData->SystemPoolId, *setup); - setup->LocalServices.push_back(std::pair(MakeStateStorageProxyID(ssid), - TActorSetupCmd(CreateStateStorageProxy(ssrInfo.Get(), ssbInfo.Get(), sbrInfo.Get()), - TMailboxType::ReadAsFilled, - appData->SystemPoolId))); + setup->LocalServices.push_back(std::pair(MakeStateStorageProxyID(), + TActorSetupCmd(CreateStateStorageProxy(ssrInfo.Get(), ssbInfo.Get(), sbrInfo.Get()), + TMailboxType::ReadAsFilled, appData->SystemPoolId))); } - for (ui32 ssid = 0; ssid <= maxssid; ++ssid) { - if (!knownss[ssid]) - setup->LocalServices.push_back(std::pair(MakeStateStorageProxyID(ssid), - TActorSetupCmd(CreateStateStorageProxyStub(), - TMailboxType::HTSwap, - appData->SystemPoolId))); + if (!found) { + setup->LocalServices.push_back(std::pair(MakeStateStorageProxyID(), + TActorSetupCmd(CreateStateStorageProxyStub(), TMailboxType::HTSwap, appData->SystemPoolId))); } setup->LocalServices.emplace_back( @@ -2318,8 +2311,7 @@ TTxProxyInitializer::TTxProxyInitializer(const TKikimrRunConfig &runConfig) TVector TTxProxyInitializer::CollectAllAllocatorsFromAllDomains(const TAppData *appData) { TVector allocators; - for (auto it: appData->DomainsInfo->Domains) { - auto &domain = it.second; + if (const auto& domain = appData->DomainsInfo->Domain) { for (auto tabletId: domain->TxAllocators) { allocators.push_back(tabletId); } diff --git a/ydb/core/driver_lib/run/run.cpp b/ydb/core/driver_lib/run/run.cpp index e670fe9a0a66..f9da7ce7213d 100644 --- a/ydb/core/driver_lib/run/run.cpp +++ b/ydb/core/driver_lib/run/run.cpp @@ -170,36 +170,25 @@ class TDomainsInitializer : public IAppDataInitializer { } bool isExplicitTabletIds = domain.ExplicitCoordinatorsSize() + domain.ExplicitMediatorsSize() + domain.ExplicitAllocatorsSize(); - - const ui32 defaultSSId = domainId; - const ui32 schemeBoardSSId = (domain.HasSchemeBoardSSId() && domain.GetSchemeBoardSSId()) ? domain.GetSchemeBoardSSId() : defaultSSId; - Y_ABORT_UNLESS(Find(domain.GetSSId(), defaultSSId) != domain.GetSSId().end()); - Y_ABORT_UNLESS(Find(domain.GetSSId(), schemeBoardSSId) != domain.GetSSId().end()); + Y_ABORT_UNLESS(isExplicitTabletIds); + Y_ABORT_UNLESS(domain.SSIdSize() == 0 || (domain.SSIdSize() == 1 && domain.GetSSId(0) == 1)); + Y_ABORT_UNLESS(domain.HiveUidSize() == 0 || (domain.HiveUidSize() == 1 && domain.GetHiveUid(0) == 1)); TDomainsInfo::TDomain::TPtr domainPtr = nullptr; if (isExplicitTabletIds) { domainPtr = TDomainsInfo::TDomain::ConstructDomainWithExplicitTabletIds(domainName, domainId, schemeRoot, - defaultSSId, schemeBoardSSId, domain.GetSSId(), - domainId, domain.GetHiveUid(), planResolution, domain.GetExplicitCoordinators(), domain.GetExplicitMediators(), domain.GetExplicitAllocators(), poolTypes); - } else { - domainPtr = TDomainsInfo::TDomain::ConstructDomain(domainName, domainId, schemeRoot, - defaultSSId, schemeBoardSSId, domain.GetSSId(), - domainId, domain.GetHiveUid(), - planResolution, - domain.GetCoordinator(), domain.GetMediator(), - domain.GetProxy(), poolTypes); } appData->DomainsInfo->AddDomain(domainPtr.Release()); } for (const NKikimrConfig::TDomainsConfig::THiveConfig &hiveConfig : Config.GetDomainsConfig().GetHiveConfig()) { - appData->DomainsInfo->AddHive(hiveConfig.GetHiveUid(), hiveConfig.GetHive()); + appData->DomainsInfo->AddHive(hiveConfig.GetHive()); } for (const NKikimrConfig::TDomainsConfig::TNamedCompactionPolicy &policy : Config.GetDomainsConfig().GetNamedCompactionPolicy()) { diff --git a/ydb/core/grpc_services/db_metadata_cache.h b/ydb/core/grpc_services/db_metadata_cache.h index 0caa0920612c..70ddd0393ae8 100644 --- a/ydb/core/grpc_services/db_metadata_cache.h +++ b/ydb/core/grpc_services/db_metadata_cache.h @@ -86,10 +86,8 @@ class TDatabaseMetadataCache : public TActorBootstrapped } void SubscribeToBoard() { - auto domainInfo = AppData()->DomainsInfo->Domains.begin()->second; SubscribeActor = RegisterWithSameMailbox(CreateBoardLookupActor(BoardPath, SelfId(), - domainInfo->DefaultStateStorageGroup, EBoardLookupMode::Subscription)); } @@ -171,14 +169,12 @@ class TDatabaseMetadataCache : public TActorBootstrapped void Bootstrap() { LOG_DEBUG_S(TActivationContext::AsActorContext(), NKikimrServices::DB_METADATA_CACHE, "Starting db metadata cache actor"); - auto domainInfo = AppData()->DomainsInfo->Domains.begin()->second; TInstant now = TActivationContext::Now(); NKikimrMetadataCache::TDatabaseMetadataCacheInfo info; info.SetStartTimestamp(now.MicroSeconds()); PublishActor = RegisterWithSameMailbox(CreateBoardPublishActor(BoardPath, info.SerializeAsString(), SelfId(), - domainInfo->DefaultStateStorageGroup, 0, true)); SubscribeToBoard(); diff --git a/ydb/core/grpc_services/grpc_endpoint_publish_actor.cpp b/ydb/core/grpc_services/grpc_endpoint_publish_actor.cpp index 989fb4916ae0..1a6aeea134ce 100644 --- a/ydb/core/grpc_services/grpc_endpoint_publish_actor.cpp +++ b/ydb/core/grpc_services/grpc_endpoint_publish_actor.cpp @@ -29,7 +29,6 @@ class TGRpcEndpointPublishActor : public TActorBootstrappedDefaultStateStorageGroup; auto assignedPath = MakeEndpointsBoardPath(database); TString payload; NKikimrStateStorage::TEndpointBoardEntry entry; @@ -54,7 +53,7 @@ class TGRpcEndpointPublishActor : public TActorBootstrappedDomainsInfo; if (!dinfo) ythrow yexception() << "Invalid DomainsInfo ptr"; - if (dinfo->Domains.empty() || dinfo->Domains.size() != 1) - ythrow yexception() << "Unexpected domains container size: " - << dinfo->Domains.size(); - if (!dinfo->Domains.begin()->second) - ythrow yexception() << "Empty domain params"; + if (!dinfo->Domain) + ythrow yexception() << "No Domain defined"; - return TString("/") + dinfo->Domains.begin()->second->Name; + return TString("/") + dinfo->GetDomain()->Name; } struct TDatabaseInfo { diff --git a/ydb/core/grpc_services/rpc_cms.cpp b/ydb/core/grpc_services/rpc_cms.cpp index 728e30684bcd..61e69dbefe63 100644 --- a/ydb/core/grpc_services/rpc_cms.cpp +++ b/ydb/core/grpc_services/rpc_cms.cpp @@ -51,13 +51,9 @@ class TCmsRPC : public TRpcOperationRequestActorDomainsInfo; - auto domain = dinfo->Domains.begin()->second; - ui32 group = dinfo->GetDefaultStateStorageGroup(domain->DomainUid); - NTabletPipe::TClientConfig pipeConfig; pipeConfig.RetryPolicy = {.RetryLimitCount = 10}; - auto pipe = NTabletPipe::CreateClient(ctx.SelfID, MakeConsoleID(group), pipeConfig); + auto pipe = NTabletPipe::CreateClient(ctx.SelfID, MakeConsoleID(), pipeConfig); CmsPipe = ctx.RegisterWithSameMailbox(pipe); SendRequest(ctx); diff --git a/ydb/core/grpc_services/rpc_dynamic_config.cpp b/ydb/core/grpc_services/rpc_dynamic_config.cpp index 94193fb7eea4..e47fd0f0f25d 100644 --- a/ydb/core/grpc_services/rpc_dynamic_config.cpp +++ b/ydb/core/grpc_services/rpc_dynamic_config.cpp @@ -60,15 +60,11 @@ class TDynamicConfigRPC : public TRpcOperationRequestActorDomainsInfo; - auto domain = dinfo->Domains.begin()->second; - ui32 group = dinfo->GetDefaultStateStorageGroup(domain->DomainUid); - NTabletPipe::TClientConfig pipeConfig; pipeConfig.RetryPolicy = { .RetryLimitCount = 10, }; - auto pipe = NTabletPipe::CreateClient(IActor::SelfId(), MakeConsoleID(group), pipeConfig); + auto pipe = NTabletPipe::CreateClient(IActor::SelfId(), MakeConsoleID(), pipeConfig); ConsolePipe = IActor::RegisterWithSameMailbox(pipe); SendRequest(); diff --git a/ydb/core/grpc_services/rpc_keyvalue.cpp b/ydb/core/grpc_services/rpc_keyvalue.cpp index 56ec96804e9a..366a9774659c 100644 --- a/ydb/core/grpc_services/rpc_keyvalue.cpp +++ b/ydb/core/grpc_services/rpc_keyvalue.cpp @@ -684,16 +684,13 @@ class TListLocalPartitionsRequest TActorId MakeLocalRegistrarID() { auto &ctx = TActivationContext::AsActorContext(); - auto &domainsInfo = *AppData(ctx)->DomainsInfo; - auto domainIt = domainsInfo.Domains.find(1); - if (domainIt == domainsInfo.Domains.end()) { - TActorId invalidId; - return invalidId; + auto &domainsInfo = AppData(ctx)->DomainsInfo; + if (domainsInfo->GetDomain()->DomainUid != 1) { // TODO: WAT? + return {}; } auto &rec = *this->GetProtoRequest(); ui32 nodeId = rec.node_id() ? rec.node_id() : ctx.SelfID.NodeId(); - ui32 hiveUid = domainsInfo.GetDefaultHiveUid(1); - ui64 hiveId = domainsInfo.GetHive(hiveUid); + ui64 hiveId = domainsInfo->GetHive(); return ::NKikimr::MakeLocalRegistrarID(nodeId, hiveId); } diff --git a/ydb/core/grpc_services/rpc_login.cpp b/ydb/core/grpc_services/rpc_login.cpp index 9c3173ae31a7..20764010f21a 100644 --- a/ydb/core/grpc_services/rpc_login.cpp +++ b/ydb/core/grpc_services/rpc_login.cpp @@ -39,7 +39,7 @@ class TLoginRPC : public TRpcRequestActor { void Bootstrap() { const Ydb::Auth::LoginRequest* protoRequest = GetProtoRequest(); Credentials = PrepareCredentials(protoRequest->user(), protoRequest->password(), AppData()->AuthConfig); - TString domainName = "/" + AppData()->DomainsInfo->Domains.begin()->second->Name; + TString domainName = "/" + AppData()->DomainsInfo->GetDomain()->Name; PathToDatabase = AppData()->AuthConfig.GetDomainLoginOnly() ? domainName : DatabaseName; auto sendParameters = GetSendParameters(Credentials, PathToDatabase); Send(sendParameters.Recipient, sendParameters.Event.Release()); diff --git a/ydb/core/grpc_services/rpc_maintenance.cpp b/ydb/core/grpc_services/rpc_maintenance.cpp index 288f82ec0495..cd414d5547df 100644 --- a/ydb/core/grpc_services/rpc_maintenance.cpp +++ b/ydb/core/grpc_services/rpc_maintenance.cpp @@ -54,13 +54,9 @@ class TMaintenanceRPC: public TRpcRequestActorDomainsInfo); - Y_ABORT_UNLESS(AppData()->DomainsInfo->Domains); - const auto group = AppData()->DomainsInfo->Domains.begin()->second->DefaultStateStorageGroup; - NTabletPipe::TClientConfig pipeConfig; pipeConfig.RetryPolicy = {.RetryLimitCount = 10}; - CmsPipe = this->RegisterWithSameMailbox(NTabletPipe::CreateClient(this->SelfId(), MakeCmsID(group), pipeConfig)); + CmsPipe = this->RegisterWithSameMailbox(NTabletPipe::CreateClient(this->SelfId(), MakeCmsID(), pipeConfig)); NTabletPipe::SendData(this->SelfId(), CmsPipe, ev.Release()); } diff --git a/ydb/core/grpc_services/rpc_monitoring.cpp b/ydb/core/grpc_services/rpc_monitoring.cpp index b141ed02b8a5..39eaeaeb166f 100644 --- a/ydb/core/grpc_services/rpc_monitoring.cpp +++ b/ydb/core/grpc_services/rpc_monitoring.cpp @@ -47,10 +47,8 @@ class TSelfCheckRPC : public TRpcRequestActordo_not_cache() || !Request->GetDatabaseName()) { SendHealthCheckRequest(); } else { - auto domainInfo = AppData()->DomainsInfo->Domains.begin()->second; RegisterWithSameMailbox(CreateBoardLookupActor(MakeDatabaseMetadataCacheBoardPath(Request->GetDatabaseName().GetRef()), SelfId(), - domainInfo->DefaultStateStorageGroup, EBoardLookupMode::Second)); Become(&TThis::StateResolve); } diff --git a/ydb/core/grpc_services/rpc_node_registration.cpp b/ydb/core/grpc_services/rpc_node_registration.cpp index bb3705efe928..35abaff83c4c 100644 --- a/ydb/core/grpc_services/rpc_node_registration.cpp +++ b/ydb/core/grpc_services/rpc_node_registration.cpp @@ -51,30 +51,17 @@ class TNodeRegistrationRPC : public TActorBootstrapped { } auto dinfo = AppData(ctx)->DomainsInfo; - ui32 group; auto request = TEvNodeRegistrationRequest::GetProtoRequest(Request); const TString& domainPath = request->domain_path(); - if (!domainPath.Empty()) { - auto *domain = dinfo->GetDomainByName(domainPath); - if (!domain) { - auto error = Sprintf("Unknown domain %s", domainPath.data()); - ReplyWithErrorAndDie(error, ctx); - return; - } - group = dinfo->GetDefaultStateStorageGroup(domain->DomainUid); - } else { - if (dinfo->Domains.size() > 1) { - auto error = "Ambiguous domain (specify DomainPath in request)"; - ReplyWithErrorAndDie(error, ctx); - return; - } - auto domain = dinfo->Domains.begin()->second; - group = dinfo->GetDefaultStateStorageGroup(domain->DomainUid); + if (domainPath && dinfo->GetDomain()->Name != domainPath) { + auto error = Sprintf("Unknown domain %s", domainPath.data()); + ReplyWithErrorAndDie(error, ctx); + return; } NTabletPipe::TClientConfig pipeConfig; pipeConfig.RetryPolicy = {.RetryLimitCount = 10}; - auto pipe = NTabletPipe::CreateClient(SelfId(), MakeNodeBrokerID(group), pipeConfig); + auto pipe = NTabletPipe::CreateClient(SelfId(), MakeNodeBrokerID(), pipeConfig); NodeBrokerPipe = ctx.RegisterWithSameMailbox(pipe); TAutoPtr nodeBrokerRequest diff --git a/ydb/core/health_check/health_check.cpp b/ydb/core/health_check/health_check.cpp index 99d059c021d9..d2dcc4271ab8 100644 --- a/ydb/core/health_check/health_check.cpp +++ b/ydb/core/health_check/health_check.cpp @@ -525,13 +525,12 @@ class TSelfCheckRequest : public TActorBootstrapped { Timeout = GetDuration(Request->Request.operation_params().operation_timeout()); } TIntrusivePtr domains = AppData()->DomainsInfo; - TIntrusivePtr domain = domains->Domains.begin()->second; + auto *domain = domains->GetDomain(); DomainPath = "/" + domain->Name; RootSchemeShardId = domain->SchemeRoot; - auto group = domains->GetDefaultStateStorageGroup(domain->DomainUid); - ConsoleId = MakeConsoleID(group); - RootHiveId = domains->GetHive(domain->DefaultHiveUid); - BsControllerId = MakeBSControllerID(group); + ConsoleId = MakeConsoleID(); + RootHiveId = domains->GetHive(); + BsControllerId = MakeBSControllerID(); if (ConsoleId) { TabletRequests.TabletStates[ConsoleId].Database = DomainPath; diff --git a/ydb/core/health_check/health_check_ut.cpp b/ydb/core/health_check/health_check_ut.cpp index 842694589453..dab6dc392ea7 100644 --- a/ydb/core/health_check/health_check_ut.cpp +++ b/ydb/core/health_check/health_check_ut.cpp @@ -589,8 +589,7 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { entry.Path = {"Root", "shared"}; entry.DomainInfo = MakeIntrusive(SHARED_DOMAIN_KEY, SHARED_DOMAIN_KEY); auto domains = runtime.GetAppData().DomainsInfo; - auto domain = domains->Domains.begin()->second; - ui64 hiveId = domains->GetHive(domain->DefaultHiveUid); + ui64 hiveId = domains->GetHive(); entry.DomainInfo->Params.SetHive(hiveId); } } @@ -1411,8 +1410,7 @@ Y_UNIT_TEST_SUITE(THealthCheckTest) { entry.Path = {"Root", "database"}; entry.DomainInfo = MakeIntrusive(SUBDOMAIN_KEY, SUBDOMAIN_KEY); auto domains = runtime.GetAppData().DomainsInfo; - auto domain = domains->Domains.begin()->second; - ui64 hiveId = domains->GetHive(domain->DefaultHiveUid); + ui64 hiveId = domains->GetHive(); entry.DomainInfo->Params.SetHive(hiveId); } break; diff --git a/ydb/core/kesus/proxy/ut_helpers.cpp b/ydb/core/kesus/proxy/ut_helpers.cpp index d47b97932b2f..0902a9d64af7 100644 --- a/ydb/core/kesus/proxy/ut_helpers.cpp +++ b/ydb/core/kesus/proxy/ut_helpers.cpp @@ -5,7 +5,7 @@ namespace NKesus { TTestContext::TTestContext() : TabletType(TTabletTypes::Kesus) - , TabletId(MakeTabletID(0, 0, 1)) + , TabletId(MakeTabletID(false, 1)) {} void TTestContext::Setup(ui32 nodeCount) { diff --git a/ydb/core/kesus/tablet/ut_helpers.cpp b/ydb/core/kesus/tablet/ut_helpers.cpp index 3aa73f9e7afe..c95363c6bf56 100644 --- a/ydb/core/kesus/tablet/ut_helpers.cpp +++ b/ydb/core/kesus/tablet/ut_helpers.cpp @@ -65,7 +65,7 @@ NActors::TActorId CreateFakeMetering(NActors::TTestActorRuntime &runtime) { TTestContext::TTestContext() : TabletType(TTabletTypes::Kesus) - , TabletId(MakeTabletID(0, 0, 1)) + , TabletId(MakeTabletID(false, 1)) {} void TTestContext::Setup(ui32 nodeCount, bool useRealThreads) { diff --git a/ydb/core/keyvalue/keyvalue_collector_ut.cpp b/ydb/core/keyvalue/keyvalue_collector_ut.cpp index 3aacd6811387..fa2306c4fb30 100644 --- a/ydb/core/keyvalue/keyvalue_collector_ut.cpp +++ b/ydb/core/keyvalue/keyvalue_collector_ut.cpp @@ -47,7 +47,7 @@ class TContext { TIntrusivePtr MakeTabletInfo() { TIntrusivePtr x(new TTabletStorageInfo()); - x->TabletID = MakeTabletID(0, 0, 1); + x->TabletID = MakeTabletID(false, 1); x->TabletType = TTabletTypes::KeyValue; x->Channels.resize(4); for (ui64 channel = 0; channel < x->Channels.size(); ++channel) { diff --git a/ydb/core/keyvalue/keyvalue_ut.cpp b/ydb/core/keyvalue/keyvalue_ut.cpp index 4a3663ed254a..f6b14f826c01 100644 --- a/ydb/core/keyvalue/keyvalue_ut.cpp +++ b/ydb/core/keyvalue/keyvalue_ut.cpp @@ -83,7 +83,7 @@ struct TTestContext { TTestContext() { TabletType = TTabletTypes::KeyValue; - TabletId = MakeTabletID(0, 0, 1); + TabletId = MakeTabletID(false, 1); TabletIds.push_back(TabletId); } diff --git a/ydb/core/keyvalue/keyvalue_ut_trace.cpp b/ydb/core/keyvalue/keyvalue_ut_trace.cpp index 56e083619aba..4a01b059ae4f 100644 --- a/ydb/core/keyvalue/keyvalue_ut_trace.cpp +++ b/ydb/core/keyvalue/keyvalue_ut_trace.cpp @@ -15,7 +15,7 @@ struct TTestEnvironment { THolder Runtime; const ui32 NodeCount; TActorId Edge; - const ui64 TabletId = MakeTabletID(0, 0, 1); + const ui64 TabletId = MakeTabletID(false, 1); const TTabletTypes::EType TabletType = TTabletTypes::KeyValue; NWilson::TFakeWilsonUploader* WilsonUploader = nullptr; @@ -47,7 +47,7 @@ struct TTestEnvironment { Runtime = MakeHolder(NodeCount, 1u); for (ui32 i = 0; i < NodeCount; ++i) { - SetupStateStorage(*Runtime, i, 0, true); + SetupStateStorage(*Runtime, i, true); SetupTabletResolver(*Runtime, i); } } diff --git a/ydb/core/kqp/executer_actor/kqp_planner.cpp b/ydb/core/kqp/executer_actor/kqp_planner.cpp index 1e9f2c00900d..a5fcc535eaf1 100644 --- a/ydb/core/kqp/executer_actor/kqp_planner.cpp +++ b/ydb/core/kqp/executer_actor/kqp_planner.cpp @@ -87,8 +87,8 @@ TKqpPlanner::TKqpPlanner(TKqpTasksGraph& graph, ui64 txId, const TActorId& execu { if (!Database) { // a piece of magic for tests - for (auto& x : AppData()->DomainsInfo->DomainByName) { - Database = TStringBuilder() << '/' << x.first; + if (const auto& domain = AppData()->DomainsInfo->Domain) { + Database = TStringBuilder() << '/' << domain->Name; LOG_E("Database not set, use " << Database); } } diff --git a/ydb/core/kqp/gateway/kqp_ic_gateway.cpp b/ydb/core/kqp/gateway/kqp_ic_gateway.cpp index 763470536966..19a8d29a8329 100644 --- a/ydb/core/kqp/gateway/kqp_ic_gateway.cpp +++ b/ydb/core/kqp/gateway/kqp_ic_gateway.cpp @@ -744,8 +744,8 @@ class TKikimrIcGateway : public IKqpGateway { TMaybe GetDomainName() override { TAppData* appData = AppData(ActorSystem); if (GetDomainLoginOnly()) { - if (appData->DomainsInfo && !appData->DomainsInfo->Domains.empty()) { - return appData->DomainsInfo->Domains.begin()->second->Name; + if (appData->DomainsInfo && appData->DomainsInfo->Domain) { + return appData->DomainsInfo->GetDomain()->Name; } } return {}; diff --git a/ydb/core/kqp/proxy_service/kqp_proxy_service.cpp b/ydb/core/kqp/proxy_service/kqp_proxy_service.cpp index a146c9fc3391..6871dada0e07 100644 --- a/ydb/core/kqp/proxy_service/kqp_proxy_service.cpp +++ b/ydb/core/kqp/proxy_service/kqp_proxy_service.cpp @@ -68,15 +68,6 @@ static constexpr TDuration DEFAULT_CREATE_SESSION_TIMEOUT = TDuration::MilliSeco using namespace NKikimrConfig; -std::optional GetDefaultStateStorageGroupId(const TString& database) { - if (auto* domainInfo = AppData()->DomainsInfo->GetDomainByName(ExtractDomain(database))) { - return domainInfo->DefaultStateStorageGroup; - } - - return std::nullopt; -} - - std::optional TryDecodeYdbSessionId(const TString& sessionId) { if (sessionId.empty()) { return std::nullopt; @@ -423,16 +414,9 @@ class TKqpProxyService : public TActorBootstrapped { return; } - auto groupId = GetDefaultStateStorageGroupId(AppData()->TenantName); - if (!groupId) { - KQP_PROXY_LOG_D("Unable to determine default state storage group id for database " << - AppData()->TenantName); - return; - } - NodeResources.SetActiveWorkersCount(LocalSessions->size()); PublishBoardPath = MakeKqpProxyBoardPath(AppData()->TenantName); - auto actor = CreateBoardPublishActor(PublishBoardPath, NodeResources.SerializeAsString(), SelfId(), *groupId, 0, true); + auto actor = CreateBoardPublishActor(PublishBoardPath, NodeResources.SerializeAsString(), SelfId(), 0, true); BoardPublishActor = Register(actor); LastPublishResourcesAt = TAppData::TimeProvider->Now(); } @@ -913,14 +897,8 @@ class TKqpProxyService : public TActorBootstrapped { return; } - auto groupId = GetDefaultStateStorageGroupId(AppData()->TenantName); - if (!groupId) { - KQP_PROXY_LOG_W("Unable to determine default state storage group id"); - return; - } - if (PublishBoardPath) { - auto actor = CreateBoardLookupActor(PublishBoardPath, SelfId(), *groupId, EBoardLookupMode::Majority); + auto actor = CreateBoardLookupActor(PublishBoardPath, SelfId(), EBoardLookupMode::Majority); BoardLookupActor = Register(actor); } } diff --git a/ydb/core/kqp/rm_service/kqp_resource_info_exchanger.cpp b/ydb/core/kqp/rm_service/kqp_resource_info_exchanger.cpp index f62a9d115f53..454617a63c04 100644 --- a/ydb/core/kqp/rm_service/kqp_resource_info_exchanger.cpp +++ b/ydb/core/kqp/rm_service/kqp_resource_info_exchanger.cpp @@ -170,7 +170,7 @@ class TKqpResourceInfoExchangerActor : public TActorBootstrappedDomainsInfo->GetDomainByName(ExtractDomain(tenant))) { - BoardState.StateStorageGroupId = domainInfo->DefaultStateStorageGroup; - } else { - BoardState.StateStorageGroupId = std::numeric_limits::max(); - } - - if (BoardState.StateStorageGroupId == std::numeric_limits::max()) { + if (auto *domain = AppData()->DomainsInfo->GetDomain(); domain->Name != ExtractDomain(tenant)) { LOG_E("Can not find default state storage group for database " << BoardState.Tenant); return; } @@ -468,23 +462,20 @@ class TKqpResourceInfoExchangerActor : public TActorBootstrappedGet()->Status == TEvStateStorage::TEvBoardInfo::EStatus::NotAvailable) { LOG_I("Subcriber is not available for info exchanger, serving tenant: " << BoardState.Tenant - << ", board: " << BoardState.Path - << ", ssGroupId: " << BoardState.StateStorageGroupId); + << ", board: " << BoardState.Path); CreateSubscriber(); return; } LOG_D("Get board info from subscriber, serving tenant: " << BoardState.Tenant << ", board: " << BoardState.Path - << ", ssGroupId: " << BoardState.StateStorageGroupId << ", with size: " << ev->Get()->InfoEntries.size()); auto [nodeIds, isChanged] = UpdateBoardInfo(ev->Get()->InfoEntries); @@ -501,14 +492,12 @@ class TKqpResourceInfoExchangerActor : public TActorBootstrappedGet()->Status == TEvStateStorage::TEvBoardInfo::EStatus::NotAvailable) { LOG_I("Subcriber is not available for info exchanger, serving tenant: " << BoardState.Tenant - << ", board: " << BoardState.Path - << ", ssGroupId: " << BoardState.StateStorageGroupId); + << ", board: " << BoardState.Path); CreateSubscriber(); return; } LOG_D("Get board info update from subscriber, serving tenant: " << BoardState.Tenant << ", board: " << BoardState.Path - << ", ssGroupId: " << BoardState.StateStorageGroupId << ", with size: " << ev->Get()->Updates.size()); auto [nodeIds, isChanged] = UpdateBoardInfo(ev->Get()->Updates); @@ -754,7 +743,6 @@ class TKqpResourceInfoExchangerActor : public TActorBootstrapped::max(); TActorId Publisher = TActorId(); TActorId Subscriber = TActorId(); TDelayState RetryStateForSubscriber; diff --git a/ydb/core/kqp/rm_service/kqp_resource_tracker.cpp b/ydb/core/kqp/rm_service/kqp_resource_tracker.cpp index 6651800f93d7..43f7c123f42b 100644 --- a/ydb/core/kqp/rm_service/kqp_resource_tracker.cpp +++ b/ydb/core/kqp/rm_service/kqp_resource_tracker.cpp @@ -33,14 +33,13 @@ using namespace NActors; class TTakeResourcesSnapshotActor : public TActorBootstrapped { public: - TTakeResourcesSnapshotActor(const TString& boardPath, ui32 stateStorageGroupId, + TTakeResourcesSnapshotActor(const TString& boardPath, TOnResourcesSnapshotCallback&& callback) : BoardPath(boardPath) - , StateStorageGroupId(stateStorageGroupId) , Callback(std::move(callback)) {} void Bootstrap() { - auto boardLookup = CreateBoardLookupActor(BoardPath, SelfId(), StateStorageGroupId, EBoardLookupMode::Majority); + auto boardLookup = CreateBoardLookupActor(BoardPath, SelfId(), EBoardLookupMode::Majority); BoardLookupId = Register(boardLookup); Become(&TTakeResourcesSnapshotActor::WorkState); @@ -90,7 +89,6 @@ class TTakeResourcesSnapshotActor : public TActorBootstrapped::max()) { + if (WbState.DomainNotFound) { LOG_E("Can not take resources snapshot, ssGroupId not set. Tenant: " << WbState.Tenant - << ", Board: " << WbState.BoardPath << ", ssGroupId: " << WbState.StateStorageGroupId); + << ", Board: " << WbState.BoardPath); ev->Get()->Callback({}); return; } - LOG_D("Create Snapshot actor, board: " << WbState.BoardPath << ", ssGroupId: " << WbState.StateStorageGroupId); + LOG_D("Create Snapshot actor, board: " << WbState.BoardPath); Register( - CreateTakeResourcesSnapshotActor(WbState.BoardPath, WbState.StateStorageGroupId, std::move(ev->Get()->Callback))); + CreateTakeResourcesSnapshotActor(WbState.BoardPath, std::move(ev->Get()->Callback))); } void HandleWork(TEvResourceBroker::TEvConfigResponse::TPtr& ev) { @@ -920,14 +920,11 @@ class TKqpResourceManagerActor : public TActorBootstrappedDomainsInfo->GetDomainByName(ExtractDomain(tenant))) { - WbState.StateStorageGroupId = domainInfo->DefaultStateStorageGroup; - } else { - WbState.StateStorageGroupId = std::numeric_limits::max(); + if (auto *domain = AppData()->DomainsInfo->GetDomain(); domain->Name != ExtractDomain(tenant)) { + WbState.DomainNotFound = true; } - LOG_I("Received tenant pool status, serving tenant: " << tenant << ", board: " << WbState.BoardPath - << ", ssGroupId: " << WbState.StateStorageGroupId); + LOG_I("Received tenant pool status, serving tenant: " << tenant << ", board: " << WbState.BoardPath); PublishResourceUsage("tenant updated"); } @@ -1193,20 +1190,19 @@ class TKqpResourceManagerActor : public TActorBootstrapped::max()) { + if (WbState.DomainNotFound) { LOG_E("Can not find default state storage group for database " << WbState.Tenant); return; } auto boardPublisher = CreateBoardPublishActor(WbState.BoardPath, payload.SerializeAsString(), SelfId(), - WbState.StateStorageGroupId, /* ttlMs */ 0, /* reg */ true); + /* ttlMs */ 0, /* reg */ true); WbState.BoardPublisherActorId = Register(boardPublisher); WbState.LastPublishTime = now; LOG_I("Publish resource usage for '" << WbState.BoardPath << "' at " << WbState.BoardPublisherActorId - << ", reason: " << reason << ", groupId: " << WbState.StateStorageGroupId - << ", payload: " << payload.ShortDebugString()); + << ", reason: " << reason << ", payload: " << payload.ShortDebugString()); } private: @@ -1216,7 +1212,7 @@ class TKqpResourceManagerActor : public TActorBootstrapped::max(); + bool DomainNotFound = false; TActorId BoardPublisherActorId; std::optional LastPublishTime; }; diff --git a/ydb/core/kqp/rm_service/kqp_rm_service.h b/ydb/core/kqp/rm_service/kqp_rm_service.h index 6386b43946f2..8517151bd072 100644 --- a/ydb/core/kqp/rm_service/kqp_rm_service.h +++ b/ydb/core/kqp/rm_service/kqp_rm_service.h @@ -102,7 +102,7 @@ class IKqpResourceManager : private TNonCopyable { NActors::IActor* CreateTakeResourcesSnapshotActor( - const TString& boardPath, ui32 stateStorageGroupId, + const TString& boardPath, std::function&&)>&& callback); diff --git a/ydb/core/load_test/group_write.cpp b/ydb/core/load_test/group_write.cpp index 06e910aaf6ce..977bb5c31464 100644 --- a/ydb/core/load_test/group_write.cpp +++ b/ydb/core/load_test/group_write.cpp @@ -1243,7 +1243,7 @@ class TLogWriterLoadTestActor : public TActorBootstrapped { } } - void RunRecordOnAllNodes(const TEvLoadTestRequest& record, ui64& tag, TString& uuid, TString& msg) { + void RunRecordOnAllNodes(const TEvLoadTestRequest& record, ui64& tag, TString& uuid, TString& /*msg*/) { const auto& modifiedRequest = AddRequestInProcessing(record, /* legacyRequest */ false); AllNodesLoadConfigs.push_back(modifiedRequest); - - if (AppData()->DomainsInfo->Domains.empty()) { - msg = "error while retrieving domain nodes info"; - return; - } - auto domainInfo = AppData()->DomainsInfo->Domains.begin()->second; auto name = AppData()->TenantName; RegisterWithSameMailbox(CreateBoardLookupActor(MakeEndpointsBoardPath(name), SelfId(), - domainInfo->DefaultStateStorageGroup, EBoardLookupMode::Second)); tag = modifiedRequest.GetTag(); uuid = modifiedRequest.GetUuid(); diff --git a/ydb/core/mind/bscontroller/config.cpp b/ydb/core/mind/bscontroller/config.cpp index 32ffdcb32c58..3cbede2383dc 100644 --- a/ydb/core/mind/bscontroller/config.cpp +++ b/ydb/core/mind/bscontroller/config.cpp @@ -30,7 +30,7 @@ namespace NKikimr::NBsController { record.SetStatus(NKikimrProto::OK); record.SetNodeID(nodeId); record.SetInstanceId(Self->InstanceId); - record.SetAvailDomain(AppData()->DomainsInfo->GetDomainUidByTabletId(Self->TabletID())); + record.SetAvailDomain(AppData()->DomainsInfo->GetDomain()->DomainUid); outbox.push_back(std::make_unique(MakeBlobStorageNodeWardenID(nodeId), Self->SelfId(), event.Release())); } diff --git a/ydb/core/mind/bscontroller/config_cmd.cpp b/ydb/core/mind/bscontroller/config_cmd.cpp index 0c641e6bb916..eca6022b000f 100644 --- a/ydb/core/mind/bscontroller/config_cmd.cpp +++ b/ydb/core/mind/bscontroller/config_cmd.cpp @@ -204,7 +204,7 @@ namespace NKikimr::NBsController { expectedSlotSize.push_back(size); } } - const auto availabilityDomainId = AppData()->DomainsInfo->GetDomainUidByTabletId(Self->TabletID()); + const auto availabilityDomainId = AppData()->DomainsInfo->GetDomain()->DomainUid; Self->FitGroupsForUserConfig(*State, availabilityDomainId, Cmd, std::move(expectedSlotSize), status); const TDuration passed = TDuration::Seconds(timer.Passed()); diff --git a/ydb/core/mind/bscontroller/register_node.cpp b/ydb/core/mind/bscontroller/register_node.cpp index 8dabdab993ec..a6e4511bdace 100644 --- a/ydb/core/mind/bscontroller/register_node.cpp +++ b/ydb/core/mind/bscontroller/register_node.cpp @@ -182,7 +182,7 @@ class TBlobStorageController::TTxUpdateNodeDrives result->Record.SetInstanceId(Self->InstanceId); result->Record.SetComprehensive(false); - result->Record.SetAvailDomain(AppData()->DomainsInfo->GetDomainUidByTabletId(Self->TabletID())); + result->Record.SetAvailDomain(AppData()->DomainsInfo->GetDomain()->DomainUid); Response = std::make_unique(MakeBlobStorageNodeWardenID(nodeId), Self->SelfId(), result.release(), 0, 0); TString error; @@ -309,7 +309,7 @@ class TBlobStorageController::TTxRegisterNode res->Record.SetInstanceId(Self->InstanceId); res->Record.SetComprehensive(true); - res->Record.SetAvailDomain(AppData()->DomainsInfo->GetDomainUidByTabletId(Self->TabletID())); + res->Record.SetAvailDomain(AppData()->DomainsInfo->GetDomain()->DomainUid); Response = std::make_unique(request->Sender, Self->SelfId(), res.release(), 0, request->Cookie); NIceDb::TNiceDb db(txc.DB); diff --git a/ydb/core/mind/bscontroller/ut_bscontroller/main.cpp b/ydb/core/mind/bscontroller/ut_bscontroller/main.cpp index b03fe4584371..6b295d99c752 100644 --- a/ydb/core/mind/bscontroller/ut_bscontroller/main.cpp +++ b/ydb/core/mind/bscontroller/ut_bscontroller/main.cpp @@ -39,7 +39,7 @@ struct TEnvironmentSetup { const ui32 NodeCount; const ui32 DataCenterCount; const ui32 Domain = 0; - const ui64 TabletId = MakeBSControllerID(Domain); + const ui64 TabletId = MakeBSControllerID(); const TVector TabletIds = {TabletId}; const TDuration Timeout = TDuration::Seconds(30); const ui32 GroupId = 0; @@ -200,7 +200,7 @@ struct TEnvironmentSetup { TAppPrepare app; app.AddDomain(TDomainsInfo::TDomain::ConstructEmptyDomain("dc-1").Release()); for (ui32 i = 0; i < nodeCount; ++i) { - SetupStateStorage(*Runtime, i, 0, true); + SetupStateStorage(*Runtime, i, true); SetupTabletResolver(*Runtime, i); } Runtime->Initialize(app.Unwrap()); diff --git a/ydb/core/mind/bscontroller/ut_selfheal/env.h b/ydb/core/mind/bscontroller/ut_selfheal/env.h index 579d384e5e6a..439d812eb164 100644 --- a/ydb/core/mind/bscontroller/ut_selfheal/env.h +++ b/ydb/core/mind/bscontroller/ut_selfheal/env.h @@ -10,7 +10,7 @@ struct TEnvironmentSetup { std::unique_ptr Runtime; const ui32 NodeCount; const ui32 Domain = 0; - const ui64 TabletId = MakeBSControllerID(Domain); + const ui64 TabletId = MakeBSControllerID(); const TDuration Timeout = TDuration::Seconds(30); const ui32 GroupId = 0; const ui32 NodeId = 1; diff --git a/ydb/core/mind/bscontroller/virtual_group.cpp b/ydb/core/mind/bscontroller/virtual_group.cpp index ba1e779f3a48..bbd644f707b6 100644 --- a/ydb/core/mind/bscontroller/virtual_group.cpp +++ b/ydb/core/mind/bscontroller/virtual_group.cpp @@ -443,14 +443,13 @@ namespace NKikimr::NBsController { const TString& database = *group->Database; const auto& domainsInfo = AppData()->DomainsInfo; - for (const auto& [_, domain] : domainsInfo->Domains) { + if (const auto& domain = domainsInfo->Domain) { const TString domainPath = TStringBuilder() << '/' << domain->Name; if (database == domainPath || database.StartsWith(TStringBuilder() << domainPath << '/')) { - RootHiveId = domainsInfo->GetHive(domain->DefaultHiveUid); + RootHiveId = domainsInfo->GetHive(); if (RootHiveId == TDomainsInfo::BadTabletId) { return CreateFailed(TStringBuilder() << "failed to resolve Hive -- BadTabletId for Database# " << database); } - break; } } diff --git a/ydb/core/mind/dynamic_nameserver.cpp b/ydb/core/mind/dynamic_nameserver.cpp index 7b2b1038590a..9f31734f3c67 100644 --- a/ydb/core/mind/dynamic_nameserver.cpp +++ b/ydb/core/mind/dynamic_nameserver.cpp @@ -19,12 +19,6 @@ static void ResetInterconnectProxyConfig(ui32 nodeId, const TActorContext &ctx) void TDynamicNodeResolverBase::Bootstrap(const TActorContext &ctx) { auto dinfo = AppData(ctx)->DomainsInfo; - auto domain = NodeIdToDomain(NodeId, *dinfo); - - if (!dinfo->Domains.contains(domain)) { - ReplyWithErrorAndDie(ctx); - return; - } NTabletPipe::TClientRetryPolicy retryPolicy = { .RetryLimitCount = 12, @@ -32,8 +26,7 @@ void TDynamicNodeResolverBase::Bootstrap(const TActorContext &ctx) .MaxRetryTime = TDuration::Seconds(2) }; - ui32 group = dinfo->GetDefaultStateStorageGroup(domain); - auto pipe = NTabletPipe::CreateClient(ctx.SelfID, MakeNodeBrokerID(group), NTabletPipe::TClientConfig(retryPolicy)); + auto pipe = NTabletPipe::CreateClient(ctx.SelfID, MakeNodeBrokerID(), NTabletPipe::TClientConfig(retryPolicy)); NodeBrokerPipe = ctx.RegisterWithSameMailbox(pipe); TAutoPtr request = new TEvNodeBroker::TEvResolveNode; @@ -135,8 +128,9 @@ void TDynamicNameserver::Bootstrap(const TActorContext &ctx) } auto dinfo = AppData(ctx)->DomainsInfo; - for (auto &pr : dinfo->Domains) - RequestEpochUpdate(pr.first, 1, ctx); + if (const auto& domain = dinfo->Domain) { + RequestEpochUpdate(domain->DomainUid, 1, ctx); + } Send(NConsole::MakeConfigsDispatcherID(SelfId().NodeId()), new NConsole::TEvConfigsDispatcher::TEvSetConfigSubscriptionRequest( NKikimrConsole::TConfigItem::NameserviceConfigItem, @@ -158,11 +152,8 @@ void TDynamicNameserver::Die(const TActorContext &ctx) void TDynamicNameserver::OpenPipe(ui32 domain, const TActorContext &ctx) { - auto dinfo = AppData(ctx)->DomainsInfo; - ui32 group = dinfo->Domains[domain]->DefaultStateStorageGroup; - if (!NodeBrokerPipes[domain]) { - auto pipe = NTabletPipe::CreateClient(ctx.SelfID, MakeNodeBrokerID(group)); + auto pipe = NTabletPipe::CreateClient(ctx.SelfID, MakeNodeBrokerID()); NodeBrokerPipes[domain] = ctx.RegisterWithSameMailbox(pipe); } } @@ -198,7 +189,7 @@ void TDynamicNameserver::ResolveDynamicNode(ui32 nodeId, TInstant deadline, const TActorContext &ctx) { - ui32 domain = NodeIdToDomain(nodeId, *AppData(ctx)->DomainsInfo); + ui32 domain = AppData()->DomainsInfo->GetDomain()->DomainUid; auto it = DynamicConfigs[domain]->DynamicNodes.find(nodeId); if (it != DynamicConfigs[domain]->DynamicNodes.end() @@ -344,12 +335,9 @@ void TDynamicNameserver::Handle(TEvInterconnect::TEvListNodes::TPtr &ev, { if (ListNodesQueue.empty()) { auto dinfo = AppData(ctx)->DomainsInfo; - - for (auto &entry : dinfo->Domains) { - ui32 domain = entry.first; - + if (const auto& d = dinfo->Domain) { + ui32 domain = d->DomainUid; OpenPipe(domain, ctx); - TAutoPtr request = new TEvNodeBroker::TEvListNodes; request->Record.SetCachedVersion(DynamicConfigs[domain]->Epoch.Version); NTabletPipe::SendData(ctx, NodeBrokerPipes[domain], request.Release()); @@ -376,7 +364,7 @@ void TDynamicNameserver::Handle(TEvInterconnect::TEvGetNode::TPtr &ev, const TAc it->second.Port, it->second.Location); ctx.Send(ev->Sender, reply.Release()); } else { - ui32 domain = NodeIdToDomain(nodeId, *AppData(ctx)->DomainsInfo); + ui32 domain = AppData()->DomainsInfo->GetDomain()->DomainUid; auto it = DynamicConfigs[domain]->DynamicNodes.find(nodeId); if (it != DynamicConfigs[domain]->DynamicNodes.end() && it->second.Expire > ctx.Now()) { reply->Node = MakeHolder(it->first, it->second.Address, @@ -396,7 +384,7 @@ void TDynamicNameserver::Handle(TEvInterconnect::TEvGetNode::TPtr &ev, const TAc void TDynamicNameserver::Handle(TEvTabletPipe::TEvClientDestroyed::TPtr &ev, const TActorContext &ctx) { - ui32 domain = AppData(ctx)->DomainsInfo->GetDomainUidByTabletId(ev->Get()->TabletId); + ui32 domain = AppData()->DomainsInfo->GetDomain()->DomainUid; if (NodeBrokerPipes[domain] == ev->Get()->ClientId) OnPipeDestroyed(domain, ctx); } @@ -404,7 +392,7 @@ void TDynamicNameserver::Handle(TEvTabletPipe::TEvClientDestroyed::TPtr &ev, con void TDynamicNameserver::Handle(TEvTabletPipe::TEvClientConnected::TPtr &ev, const TActorContext &ctx) { if (ev->Get()->Status != NKikimrProto::OK) { - ui32 domain = AppData(ctx)->DomainsInfo->GetDomainUidByTabletId(ev->Get()->TabletId); + ui32 domain = AppData(ctx)->DomainsInfo->GetDomain()->DomainUid; if (NodeBrokerPipes[domain] == ev->Get()->ClientId) { NTabletPipe::CloseClient(ctx, NodeBrokerPipes[domain]); OnPipeDestroyed(domain, ctx); diff --git a/ydb/core/mind/dynamic_nameserver_impl.h b/ydb/core/mind/dynamic_nameserver_impl.h index b0dad731a0e4..68c0b26f4615 100644 --- a/ydb/core/mind/dynamic_nameserver_impl.h +++ b/ydb/core/mind/dynamic_nameserver_impl.h @@ -193,7 +193,7 @@ class TDynamicNameserver : public TActorBootstrapped { ui32 resolvePoolId) : TDynamicNameserver(setup, resolvePoolId) { - ui32 domain = NodeIdToDomain(node.GetNodeId(), domains); + ui32 domain = domains.GetDomain()->DomainUid; TDynamicConfig::TDynamicNodeInfo info(node); DynamicConfigs[domain]->DynamicNodes.emplace(node.GetNodeId(), info); } diff --git a/ydb/core/mind/dynamic_nameserver_mon.cpp b/ydb/core/mind/dynamic_nameserver_mon.cpp index f22f92f2a95a..8ca84ea0dcd9 100644 --- a/ydb/core/mind/dynamic_nameserver_mon.cpp +++ b/ydb/core/mind/dynamic_nameserver_mon.cpp @@ -187,11 +187,8 @@ void TDynamicNameserver::Handle(NMon::TEvHttpInfo::TPtr &ev, const TActorContext OutputStaticNodes(*StaticConfig, str); - auto dinfo = AppData(ctx)->DomainsInfo; - for (auto &pr : dinfo->Domains) { - auto name = pr.second->Name; - auto config = DynamicConfigs[pr.first]; - OutputDynamicNodes(name, config, str); + if (const auto& domain = AppData(ctx)->DomainsInfo->Domain) { + OutputDynamicNodes(domain->Name, DynamicConfigs[domain->DomainUid], str); } } ctx.Send(ev->Sender, new NMon::TEvHttpInfoRes(str.Str())); diff --git a/ydb/core/mind/hive/hive_impl.cpp b/ydb/core/mind/hive/hive_impl.cpp index 6a835a4d082e..c97327641b0c 100644 --- a/ydb/core/mind/hive/hive_impl.cpp +++ b/ydb/core/mind/hive/hive_impl.cpp @@ -941,11 +941,8 @@ void THive::Handle(TEvHive::TEvReassignTablet::TPtr &ev) { void THive::OnActivateExecutor(const TActorContext&) { BLOG_D("THive::OnActivateExecutor"); TDomainsInfo* domainsInfo = AppData()->DomainsInfo.Get(); - HiveUid = domainsInfo->GetDefaultHiveUid(domainsInfo->Domains.begin()->first); - HiveDomain = domainsInfo->GetHiveDomainUid(HiveUid); - const TDomainsInfo::TDomain& domain = domainsInfo->GetDomain(HiveDomain); - RootHiveId = domainsInfo->GetHive(domain.DefaultHiveUid); - Y_ABORT_UNLESS(HiveUid != Max() && HiveDomain != TDomainsInfo::BadDomainId); + const TDomainsInfo::TDomain& domain = *domainsInfo->GetDomain(); + RootHiveId = domainsInfo->GetHive(); HiveId = TabletID(); HiveGeneration = Executor()->Generation(); RootDomainKey = TSubDomainKey(domain.SchemeRoot, 1); @@ -1017,14 +1014,9 @@ void THive::AssignTabletGroups(TLeaderTabletInfo& tablet) { void THive::SendToBSControllerPipe(IEventBase* payload) { if (!BSControllerPipeClient) { - Y_ABORT_UNLESS(AppData()->DomainsInfo); - ui32 domainUid = HiveDomain; - ui64 defaultStateStorageGroup = AppData()->DomainsInfo->GetDefaultStateStorageGroup(domainUid); - NTabletPipe::TClientConfig pipeConfig; pipeConfig.RetryPolicy = NTabletPipe::TClientRetryPolicy::WithRetries(); - BSControllerPipeClient = Register(NTabletPipe::CreateClient( - SelfId(), MakeBSControllerID(defaultStateStorageGroup), pipeConfig)); + BSControllerPipeClient = Register(NTabletPipe::CreateClient(SelfId(), MakeBSControllerID(), pipeConfig)); } NTabletPipe::SendData(SelfId(), BSControllerPipeClient, payload); } @@ -2742,8 +2734,6 @@ ui64 THive::GetObjectImbalance(TFullObjectId object) { THive::THive(TTabletStorageInfo *info, const TActorId &tablet) : TActor(&TThis::StateInit) , TTabletExecutedFlat(info, tablet, new NMiniKQL::TMiniKQLFactory) - , HiveUid(Max()) - , HiveDomain(Max()) , RootHiveId() , HiveId(Max()) , HiveGeneration(0) @@ -3049,9 +3039,7 @@ void THive::Handle(TEvHive::TEvResponseTabletIdSequence::TPtr& ev) { } void THive::RequestFreeSequence() { - TIntrusivePtr domains = AppData()->DomainsInfo; - TIntrusivePtr domain = domains->Domains.begin()->second; - TTabletId rootHiveId = domains->GetHive(domain->DefaultHiveUid); + TTabletId rootHiveId = AppData()->DomainsInfo->GetHive(); if (rootHiveId != TabletID()) { size_t sequenceIndex = Sequencer.NextFreeSequenceIndex(); size_t sequenceSize = GetRequestSequenceSize(); diff --git a/ydb/core/mind/hive/hive_impl.h b/ydb/core/mind/hive/hive_impl.h index 4b0418a925e5..da1cca0de768 100644 --- a/ydb/core/mind/hive/hive_impl.h +++ b/ydb/core/mind/hive/hive_impl.h @@ -306,8 +306,6 @@ class THive : public TActor, public TTabletExecutedFlat, public THiveShar protected: TActorId BSControllerPipeClient; TActorId RootHivePipeClient; - ui64 HiveUid; // Hive Personal Identifier - identifies a unique individual hive - ui32 HiveDomain; TTabletId RootHiveId; TTabletId HiveId; ui64 HiveGeneration; diff --git a/ydb/core/mind/hive/hive_ut.cpp b/ydb/core/mind/hive/hive_ut.cpp index 58367a60403f..a5cfc2171d3e 100644 --- a/ydb/core/mind/hive/hive_ut.cpp +++ b/ydb/core/mind/hive/hive_ut.cpp @@ -96,18 +96,15 @@ namespace { app.ClearDomainsAndHive(); ui32 domainUid = TTestTxConfig::DomainUid; - ui32 ssId = 0; ui32 planResolution = 50; ui64 schemeRoot = TTestTxConfig::SchemeShard; - ui64 hive = MakeDefaultHiveID(ssId); + ui64 hive = MakeDefaultHiveID(); auto domain = TDomainsInfo::TDomain::ConstructDomainWithExplicitTabletIds( DOMAIN_NAME, domainUid, schemeRoot, - ssId, ssId, TVector{ssId}, - domainUid, TVector{domainUid}, planResolution, - TVector{TDomainsInfo::MakeTxCoordinatorIDFixed(domainUid, 1)}, + TVector{TDomainsInfo::MakeTxCoordinatorIDFixed(1)}, TVector{}, - TVector{TDomainsInfo::MakeTxAllocatorIDFixed(domainUid, 1)}, + TVector{TDomainsInfo::MakeTxAllocatorIDFixed(1)}, DefaultPoolKinds(2)); TVector ids = runtime.GetTxAllocatorTabletIds(); @@ -115,7 +112,7 @@ namespace { runtime.SetTxAllocatorTabletIds(ids); app.AddDomain(domain.Release()); - app.AddHive(domainUid, hive); + app.AddHive(hive); } static TString STORAGE_POOL = "def"; @@ -295,13 +292,12 @@ namespace { runtime.DispatchEvents(options); } - CreateTestBootstrapper(runtime, CreateTestTabletInfo(MakeBSControllerID(0), TTabletTypes::BSController), + CreateTestBootstrapper(runtime, CreateTestTabletInfo(MakeBSControllerID(), TTabletTypes::BSController), &CreateFlatBsController); } void SetupBoxAndStoragePool(TTestActorRuntime &runtime, ui32 numGroups = 1, const TString& storagePoolNamePrefix = STORAGE_POOL) { TActorId sender = runtime.AllocateEdgeActor(); - ui32 domainId = 0; ui32 nodeIndex = 0; TString pDiskPath; if (true /*in memory*/) { @@ -350,7 +346,7 @@ namespace { bsConfigureRequest->Record.MutableRequest()->AddCommand()->MutableDefineStoragePool()->CopyFrom(storagePool); } - runtime.SendToPipe(MakeBSControllerID(domainId), sender, bsConfigureRequest.Release(), 0, pipeConfig); + runtime.SendToPipe(MakeBSControllerID(), sender, bsConfigureRequest.Release(), 0, pipeConfig); TAutoPtr handleConfigureResponse; auto configureResponse = runtime.GrabEdgeEventRethrow(handleConfigureResponse); @@ -847,8 +843,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { Y_UNIT_TEST(TestCreateTablet) { TTestBasicRuntime runtime(1, false); Setup(runtime, true); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); MakeSureTabletIsUp(runtime, hiveTablet, 0); TTabletTypes::EType tabletType = TTabletTypes::Dummy; @@ -859,8 +855,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { Y_UNIT_TEST(TestBlockCreateTablet) { TTestBasicRuntime runtime(1, false); Setup(runtime, true); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); MakeSureTabletIsUp(runtime, hiveTablet, 0); TTabletTypes::EType tabletType = TTabletTypes::Dummy; @@ -882,8 +878,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { Y_UNIT_TEST(TestCreate100Tablets) { TTestBasicRuntime runtime(1, false); Setup(runtime, true); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); MakeSureTabletIsUp(runtime, hiveTablet, 0); TTabletTypes::EType tabletType = TTabletTypes::Dummy; @@ -908,8 +904,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { const int NUM_TABLETS = 100; TTestBasicRuntime runtime(NUM_NODES, false); Setup(runtime, true); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); { TDispatchOptions options; @@ -974,8 +970,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(1, false); Setup(runtime, true); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); const TActorId hiveActor = CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); runtime.EnableScheduleForActor(hiveActor); CreateTestBootstrapper(runtime, CreateTestTabletInfo(TTestTxConfig::SchemeShard, TTabletTypes::SchemeShard), &CreateFlatTxSchemeShard); @@ -1039,8 +1035,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(1, false); Setup(runtime, true); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); const TActorId hiveActor = CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); runtime.EnableScheduleForActor(hiveActor); CreateTestBootstrapper(runtime, CreateTestTabletInfo(TTestTxConfig::SchemeShard, TTabletTypes::SchemeShard), &CreateFlatTxSchemeShard); @@ -1152,8 +1148,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(2, false); Setup(runtime, true); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); CreateTestBootstrapper(runtime, CreateTestTabletInfo(TTestTxConfig::SchemeShard, TTabletTypes::SchemeShard), &CreateFlatTxSchemeShard); MakeSureTabletIsUp(runtime, hiveTablet, 0); // root hive good @@ -1263,8 +1259,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(2, false); Setup(runtime, true); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); const TActorId hiveActor = CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); runtime.EnableScheduleForActor(hiveActor); CreateTestBootstrapper(runtime, CreateTestTabletInfo(TTestTxConfig::SchemeShard, TTabletTypes::SchemeShard), &CreateFlatTxSchemeShard); @@ -1383,8 +1379,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(1, false); Setup(runtime, true); static constexpr int TABLETS = 1000; - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); const TActorId hiveActor = CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); runtime.EnableScheduleForActor(hiveActor); CreateTestBootstrapper(runtime, CreateTestTabletInfo(TTestTxConfig::SchemeShard, TTabletTypes::SchemeShard), &CreateFlatTxSchemeShard); @@ -1463,8 +1459,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { Y_UNIT_TEST(TestCreateSubHiveCreateManyTabletsWithReboots) { static constexpr int TABLETS = 100; - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); THiveInitialEventsFilter initialEventsFilter; TVector tabletIds; @@ -1561,9 +1557,9 @@ Y_UNIT_TEST_SUITE(THiveTest) { } Y_UNIT_TEST(TestCheckSubHiveMigrationWithReboots) { - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 bsControllerTablet = MakeBSControllerID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 bsControllerTablet = MakeBSControllerID(); + const ui64 testerTablet = MakeTabletID(false, 1); THiveEveryEventFilter everyEventFilter; TVector tabletIds; @@ -1698,9 +1694,9 @@ Y_UNIT_TEST_SUITE(THiveTest) { } Y_UNIT_TEST(TestCreateAndDeleteTabletWithStoragePoolsReboots) { - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 bsControllerTablet = MakeBSControllerID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 bsControllerTablet = MakeBSControllerID(); + const ui64 testerTablet = MakeTabletID(false, 1); THiveInitialEventsFilter initialEventsFilter; @@ -1743,8 +1739,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(1, false); Setup(runtime); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); TTabletTypes::EType tabletType = TTabletTypes::Dummy; @@ -1772,8 +1768,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(1, false); Setup(runtime); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); CreateLocal(runtime, 0); @@ -1816,8 +1812,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(1, false); Setup(runtime, true, 2); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); CreateLocal(runtime, 0); @@ -1899,8 +1895,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(1, false); Setup(runtime); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); CreateLocal(runtime, 0); @@ -1940,8 +1936,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(1, false); Setup(runtime, true, 2); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); const TActorId sender = runtime.AllocateEdgeActor(); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); CreateLocal(runtime, 0); @@ -1981,8 +1977,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(1, false); Setup(runtime, true); TActorId sender = runtime.AllocateEdgeActor(); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); TTabletTypes::EType tabletType = TTabletTypes::Dummy; const ui64 tabletId = SendCreateTestTablet(runtime, hiveTablet, testerTablet, MakeHolder(testerTablet, 0, tabletType, BINDED_CHANNELS), 0, false); @@ -2008,8 +2004,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(1, false); Setup(runtime, true); TActorId sender = runtime.AllocateEdgeActor(); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); TTabletTypes::EType tabletType = TTabletTypes::Dummy; const ui64 tabletId = SendCreateTestTablet(runtime, hiveTablet, testerTablet, MakeHolder(testerTablet, 0, tabletType, BINDED_CHANNELS), 0, false); @@ -2037,8 +2033,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(1, false); Setup(runtime, true); TActorId sender = runtime.AllocateEdgeActor(); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); TTabletTypes::EType tabletType = TTabletTypes::Dummy; const ui64 count = 100; @@ -2063,8 +2059,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { Y_UNIT_TEST(TestDeleteTabletWithFollowers) { TTestBasicRuntime runtime(3, false); Setup(runtime, true); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); TTabletTypes::EType tabletType = TTabletTypes::Dummy; THolder ev(new TEvHive::TEvCreateTablet(testerTablet, 100500, tabletType, BINDED_CHANNELS)); @@ -2098,7 +2094,7 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(1, false); Setup(runtime, true); TActorId sender = runtime.AllocateEdgeActor(); - const ui64 hiveTablet = MakeDefaultHiveID(0); + const ui64 hiveTablet = MakeDefaultHiveID(); const ui64 testerTablet = 1; CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); TTabletTypes::EType tabletType = TTabletTypes::Dummy; @@ -2123,8 +2119,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(1, false); Setup(runtime, false); TActorId sender = runtime.AllocateEdgeActor(); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); const TActorId hiveActor = CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); runtime.EnableScheduleForActor(hiveActor); @@ -2166,8 +2162,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime; Setup(runtime, true); TActorId sender = runtime.AllocateEdgeActor(); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); TTabletTypes::EType tabletType = TTabletTypes::Dummy; @@ -2205,8 +2201,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime; Setup(runtime, true); TActorId sender = runtime.AllocateEdgeActor(); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); TTabletTypes::EType tabletType = TTabletTypes::Dummy; @@ -2227,9 +2223,9 @@ Y_UNIT_TEST_SUITE(THiveTest) { } Y_UNIT_TEST(TestCreateTabletReboots) { - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 bsControllerTablet = MakeBSControllerID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 bsControllerTablet = MakeBSControllerID(); + const ui64 testerTablet = MakeTabletID(false, 1); THiveInitialEventsFilter initialEventsFilter; @@ -2285,8 +2281,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(1, false); Setup(runtime, true); TVector tabletIds; - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); ui32 nodeIndex = 0; @@ -2306,8 +2302,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TVector tabletIds; TActorId sender = runtime.AllocateEdgeActor(); //TAutoPtr guard = CreateTabletScheduledEventsGuard(tabletIds, runtime, sender); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); TTabletTypes::EType tabletType = TTabletTypes::Dummy; @@ -2339,8 +2335,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(2, false); Setup(runtime, true); TVector tabletIds; - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); // Kill local on node 1 @@ -2366,8 +2362,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(1, false); Setup(runtime, true); TVector tabletIds; - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); // creating tablet @@ -2417,8 +2413,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(3, false); Setup(runtime, true); TVector tabletIds; - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); // Kill local on node 1 @@ -2439,8 +2435,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { Y_UNIT_TEST(TestCreateTabletAndReassignGroups) { TTestBasicRuntime runtime(1, false); Setup(runtime, true); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); TTabletTypes::EType tabletType = TTabletTypes::Dummy; @@ -2454,8 +2450,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { Y_UNIT_TEST(TestCreateTabletWithWrongSPoolsAndReassignGroupsFailButDeletionIsOk) { TTestBasicRuntime runtime(1, false); Setup(runtime, true); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); TTabletTypes::EType tabletType = TTabletTypes::Dummy; @@ -2484,8 +2480,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { Y_UNIT_TEST(TestCreateTabletAndReassignGroups3) { TTestBasicRuntime runtime(1, false); Setup(runtime, true, 3); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); TTabletTypes::EType tabletType = TTabletTypes::Dummy; @@ -2506,8 +2502,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { Y_UNIT_TEST(TestCreateTabletAndMixedReassignGroups3) { TTestBasicRuntime runtime(1, false); Setup(runtime, true, 3); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); TTabletTypes::EType tabletType = TTabletTypes::Dummy; @@ -2548,7 +2544,7 @@ Y_UNIT_TEST_SUITE(THiveTest) { } } - runtime.SendToPipe(MakeBSControllerID(0), sender, updateDiskStatus.Release(), 0, GetPipeConfigWithRetries()); + runtime.SendToPipe(MakeBSControllerID(), sender, updateDiskStatus.Release(), 0, GetPipeConfigWithRetries()); SendReassignTabletSpace(runtime, hiveTablet, tabletId, {}, 0); { @@ -2572,8 +2568,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(1, false); Setup(runtime, true, 3); TActorId sender = runtime.AllocateEdgeActor(); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); TTabletTypes::EType tabletType = TTabletTypes::Dummy; @@ -2626,9 +2622,9 @@ Y_UNIT_TEST_SUITE(THiveTest) { } Y_UNIT_TEST(TestCreateTabletAndReassignGroupsWithReboots) { - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 bsControllerTablet = MakeBSControllerID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 bsControllerTablet = MakeBSControllerID(); + const ui64 testerTablet = MakeTabletID(false, 1); THiveInitialEventsFilter initialEventsFilter; @@ -2687,8 +2683,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { Y_UNIT_TEST(TestReassignUseRelativeSpace) { TTestBasicRuntime runtime(1, false); Setup(runtime, true, 5); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); TTabletTypes::EType tabletType = TTabletTypes::Dummy; @@ -2720,7 +2716,7 @@ Y_UNIT_TEST_SUITE(THiveTest) { for (const auto& pool : storagePools) { record.AddGroupParameters()->MutableStoragePoolSpecifier()->SetName(pool); } - runtime.SendToPipe(MakeBSControllerID(0), sender, selectGroups.Release()); + runtime.SendToPipe(MakeBSControllerID(), sender, selectGroups.Release()); TAutoPtr handle; TEvBlobStorage::TEvControllerSelectGroupsResult* response = runtime.GrabEdgeEventRethrow(handle); for (const auto& matchingGroups : response->Record.GetMatchingGroups()) { @@ -2763,7 +2759,7 @@ Y_UNIT_TEST_SUITE(THiveTest) { metrics->MutableGroupParameters()->MutableAssuredResources()->SetSpace(100000); } - runtime.SendToPipe(MakeBSControllerID(0), sender, groupMetricsExchange.Release(), 0, GetPipeConfigWithRetries()); + runtime.SendToPipe(MakeBSControllerID(), sender, groupMetricsExchange.Release(), 0, GetPipeConfigWithRetries()); { TDispatchOptions options; options.FinalEvents.push_back(TDispatchOptions::TFinalEventCondition(TEvBlobStorage::EvControllerGroupMetricsExchange)); @@ -2788,8 +2784,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { app.HiveConfig.SetStorageInfoRefreshFrequency(200); app.HiveConfig.SetMinStorageScatterToBalance(0.5); }); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); TTabletTypes::EType tabletType = TTabletTypes::Dummy; @@ -2846,7 +2842,7 @@ Y_UNIT_TEST_SUITE(THiveTest) { } - runtime.SendToPipe(MakeBSControllerID(0), sender, updateDiskStatus.Release(), 0, GetPipeConfigWithRetries()); + runtime.SendToPipe(MakeBSControllerID(), sender, updateDiskStatus.Release(), 0, GetPipeConfigWithRetries()); TChannelsBindings channels = BINDED_CHANNELS; channels[0].SetSize(500'000'000); @@ -2869,8 +2865,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { // Setup(runtime, true); // TActorId sender = runtime.AllocateEdgeActor(); // CreatePDiskAndGroup(runtime, sender); -// const ui64 hiveTablet = MakeDefaultHiveID(0); -// const ui64 testerTablet = MakeDefaultHiveID(1); +// const ui64 hiveTablet = MakeDefaultHiveID(); +// const ui64 testerTablet = MakeTabletID(false, 1); // CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); // ui32 tabletType = 0; @@ -2900,8 +2896,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(1, false); Setup(runtime, true); TActorId sender = runtime.AllocateEdgeActor(); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); TTabletTypes::EType tabletType = TTabletTypes::Dummy; @@ -2922,8 +2918,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TActorId sender = runtime.AllocateEdgeActor(); TVector tabletIds; TAutoPtr guard = CreateTabletScheduledEventsGuard(tabletIds, runtime, sender); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); TTabletTypes::EType tabletType = TTabletTypes::Dummy; @@ -2946,8 +2942,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TVector tabletIds; TActorId senderA = runtime.AllocateEdgeActor(); TAutoPtr guard = CreateTabletScheduledEventsGuard(tabletIds, runtime, senderA); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); // Kill local on node 1 @@ -2972,8 +2968,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(3, false); Setup(runtime, true); TVector tabletIds; - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); TTabletTypes::EType tabletType = TTabletTypes::Dummy; @@ -2999,8 +2995,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TVector tabletIds; TActorId senderA = runtime.AllocateEdgeActor(); //TAutoPtr guard = CreateTabletScheduledEventsGuard(tabletIds, runtime, senderA); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); TTabletTypes::EType tabletType = TTabletTypes::Dummy; @@ -3046,8 +3042,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { Setup(runtime, true); TVector tabletIds; - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); { TDispatchOptions options; @@ -3117,8 +3113,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { const int nodeBase = runtime.GetNodeId(0); TVector tabletIds; TActorId senderA = runtime.AllocateEdgeActor(); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); { TDispatchOptions options; @@ -3157,8 +3153,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { Y_UNIT_TEST(TestStartTabletTwiceInARow) { TTestBasicRuntime runtime(1, false); Setup(runtime, true); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); TTabletTypes::EType tabletType = TTabletTypes::Dummy; @@ -3187,8 +3183,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { Setup(runtime, true); const int nodeBase = runtime.GetNodeId(0); TActorId senderA = runtime.AllocateEdgeActor(); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); { TDispatchOptions options; @@ -3331,8 +3327,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { Setup(runtime, true); const int nodeBase = runtime.GetNodeId(0); TActorId senderA = runtime.AllocateEdgeActor(); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); { TDispatchOptions options; @@ -3396,8 +3392,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { Setup(runtime, true); const int nodeBase = runtime.GetNodeId(0); TActorId senderA = runtime.AllocateEdgeActor(); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); { TDispatchOptions options; @@ -3464,8 +3460,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { CreateLocal(runtime, 0); CreateLocal(runtime, 1); TActorId senderA = runtime.AllocateEdgeActor(); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); const TActorId hiveActor = CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); runtime.EnableScheduleForActor(hiveActor); @@ -3619,8 +3615,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { Setup(runtime, true); const int nodeBase = runtime.GetNodeId(0); TActorId senderA = runtime.AllocateEdgeActor(); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); { TDispatchOptions options; @@ -3664,8 +3660,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { Setup(runtime, true); const int nodeBase = runtime.GetNodeId(0); TActorId senderA = runtime.AllocateEdgeActor(); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); MakeSureTabletIsUp(runtime, hiveTablet, 0); @@ -3789,8 +3785,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { CreateLocal(runtime, 1, local1); // no tablets on 1 const int nodeBase = runtime.GetNodeId(0); TActorId senderA = runtime.AllocateEdgeActor(); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); { TDispatchOptions options; @@ -3866,7 +3862,7 @@ Y_UNIT_TEST_SUITE(THiveTest) { }); TActorId senderA = runtime.AllocateEdgeActor(); - const ui64 hiveTablet = MakeDefaultHiveID(0); + const ui64 hiveTablet = MakeDefaultHiveID(); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); @@ -3917,7 +3913,7 @@ Y_UNIT_TEST_SUITE(THiveTest) { } }; - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 testerTablet = MakeTabletID(false, 1); const TTabletTypes::EType tabletType = TTabletTypes::Dummy; Ctest << "Step A: create tablets" << Endl; @@ -4162,8 +4158,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { }); const int nodeBase = runtime.GetNodeId(0); TActorId senderA = runtime.AllocateEdgeActor(); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); auto check_distribution = [hiveTablet, nodeBase, senderA, &runtime]() { std::array nodeTablets = {}; @@ -4243,8 +4239,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { }); const int nodeBase = runtime.GetNodeId(0); TActorId senderA = runtime.AllocateEdgeActor(); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); auto getDistribution = [hiveTablet, nodeBase, senderA, &runtime]() -> std::array, 2> { std::array, 2> nodeTablets = {}; @@ -4362,7 +4358,7 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(2, false); Setup(runtime, true); TActorId senderA = runtime.AllocateEdgeActor(); - const ui64 hiveTablet = MakeDefaultHiveID(0); + const ui64 hiveTablet = MakeDefaultHiveID(); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); @@ -4386,8 +4382,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { } }; - TTestOwner owner1(MakeDefaultHiveID(1)); - TTestOwner owner2(MakeDefaultHiveID(2)); + TTestOwner owner1(MakeTabletID(false, 1)); + TTestOwner owner2(MakeTabletID(false, 2)); for (ui64 i = 0; i < TABLETS_PER_OWNER; ++i) { ui64 tablet1; @@ -4436,8 +4432,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { }); const int nodeBase = runtime.GetNodeId(0); TActorId senderA = runtime.AllocateEdgeActor(); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); auto getDistribution = [hiveTablet, nodeBase, senderA, &runtime]() -> std::array, 2> { std::array, 2> nodeTablets = {}; @@ -4516,8 +4512,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { }); const int nodeBase = runtime.GetNodeId(0); TActorId senderA = runtime.AllocateEdgeActor(); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); auto getDistribution = [hiveTablet, nodeBase, senderA, &runtime]() -> std::array, 3> { std::array, 3> nodeTablets = {}; @@ -4589,8 +4585,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { Y_UNIT_TEST(TestUpdateTabletsObjectUpdatesMetrics) { TTestBasicRuntime runtime(1, false); Setup(runtime, true); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); TActorId senderA = runtime.AllocateEdgeActor(); TTabletTypes::EType tabletType = TTabletTypes::Dummy; static const int NUM_TABLETS = 5; @@ -4653,8 +4649,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(3, false); Setup(runtime, true); TVector tabletIds; - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); { TDispatchOptions options; @@ -4714,8 +4710,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime((ui32)9, (ui32)3); Setup(runtime, true); TVector tabletIds; - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); { TDispatchOptions options; @@ -4764,8 +4760,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime((ui32)9, (ui32)3); Setup(runtime, true); TVector tabletIds; - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); { TDispatchOptions options; @@ -4862,8 +4858,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(NODES, DCS); Setup(runtime, true); TVector tabletIds; - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); { TDispatchOptions options; @@ -4913,8 +4909,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(NODES, DCS); Setup(runtime, true); TVector tabletIds; - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); { TDispatchOptions options; @@ -5015,8 +5011,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(NODES, DCS); Setup(runtime, true); TVector tabletIds; - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive, 0); { TDispatchOptions options; @@ -5136,8 +5132,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { Y_UNIT_TEST(TestCreateExternalTablet) { TTestBasicRuntime runtime(1, false); Setup(runtime, true); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); TTabletTypes::EType tabletType = TTabletTypes::Dummy; @@ -5150,8 +5146,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { Y_UNIT_TEST(TestCreateTabletChangeToExternal) { TTestBasicRuntime runtime(1, false); Setup(runtime, true); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); TTabletTypes::EType tabletType = TTabletTypes::Dummy; @@ -5173,8 +5169,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { Y_UNIT_TEST(TestGetStorageInfo) { TTestBasicRuntime runtime(1, false); Setup(runtime, true); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); TTabletTypes::EType tabletType = TTabletTypes::Dummy; @@ -5193,8 +5189,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { Y_UNIT_TEST(TestGetStorageInfoDeleteTabletBeforeAssigned) { TTestBasicRuntime runtime(1, false); Setup(runtime, true); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); // Block group assignment @@ -5271,8 +5267,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(2, false); Setup(runtime, false); CreateLocal(runtime, 0); // only the 1st node has local running - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); const TActorId hiveActor = CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); runtime.EnableScheduleForActor(hiveActor); @@ -5296,8 +5292,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(2, false); Setup(runtime, false); CreateLocal(runtime, 0); // only the 1st node has local running - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); const TActorId hiveActor = CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); runtime.EnableScheduleForActor(hiveActor); @@ -5316,8 +5312,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(2, false); Setup(runtime, false); CreateLocal(runtime, 0); // only the 1st node has local running - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); const TActorId hiveActor = CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); runtime.EnableScheduleForActor(hiveActor); @@ -5345,8 +5341,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(2, false); Setup(runtime, false); CreateLocal(runtime, 0); // only the 1st node has local running - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); const TActorId hiveActor = CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); runtime.EnableScheduleForActor(hiveActor); @@ -5375,8 +5371,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { Setup(runtime, false); CreateLocal(runtime, 0); // only the 1st node has local running TActorId sender = runtime.AllocateEdgeActor(); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); const TActorId hiveActor = CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); runtime.EnableScheduleForActor(hiveActor); @@ -5410,8 +5406,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(2, false); Setup(runtime, false); CreateLocal(runtime, 0); // only the 1st node has local running - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); const TActorId hiveActor = CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); runtime.EnableScheduleForActor(hiveActor); @@ -5478,8 +5474,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(2, false); Setup(runtime, false); CreateLocal(runtime, 0); // only the 1st node has local running - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); const TActorId hiveActor = CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); runtime.EnableScheduleForActor(hiveActor); @@ -5507,8 +5503,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(2, false); Setup(runtime, false); CreateLocal(runtime, 0); // only the 1st node has local running - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); const TActorId hiveActor = CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); runtime.EnableScheduleForActor(hiveActor); @@ -5533,8 +5529,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(2, false); Setup(runtime, false); CreateLocal(runtime, 0); // only the 1st node has local running - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); const TActorId hiveActor = CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); runtime.EnableScheduleForActor(hiveActor); @@ -5582,8 +5578,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(2, false); Setup(runtime, false); CreateLocal(runtime, 0); // only the 1st node has local running - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); const TActorId hiveActor = CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); runtime.EnableScheduleForActor(hiveActor); @@ -5604,8 +5600,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(2, false); Setup(runtime, false); CreateLocal(runtime, 0); // only the 1st node has local running - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); const TActorId hiveActor = CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); runtime.EnableScheduleForActor(hiveActor); @@ -5630,8 +5626,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(2, false); Setup(runtime, false); CreateLocal(runtime, 0); // only the 1st node has local running - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); const TActorId hiveActor = CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); runtime.EnableScheduleForActor(hiveActor); @@ -5656,8 +5652,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(1, false); Setup(runtime, true); CreateLocal(runtime, 0); // only the 1st node has local running - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); TAutoPtr ev = new TEvHive::TEvCreateTablet(testerTablet, 0, TTabletTypes::Dummy, BINDED_CHANNELS); @@ -5682,8 +5678,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { Y_UNIT_TEST(TestExternalBootWhenLocked) { TTestBasicRuntime runtime(2, false); Setup(runtime, true); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); THolder ev(new TEvHive::TEvCreateTablet(testerTablet, 0, TTabletTypes::Dummy, BINDED_CHANNELS)); @@ -5769,8 +5765,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { const int nodeBase = runtime.GetNodeId(0); TActorId senderA = runtime.AllocateEdgeActor(); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); { TDispatchOptions options; @@ -5894,8 +5890,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { app.HiveConfig.SetBootStrategy(NKikimrConfig::THiveConfig::HIVE_BOOT_STRATEGY_FAST); }); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); @@ -5917,8 +5913,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(2, false); Setup(runtime, true); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); CreateTestBootstrapper(runtime, CreateTestTabletInfo(TTestTxConfig::SchemeShard, TTabletTypes::SchemeShard), &CreateFlatTxSchemeShard); MakeSureTabletIsUp(runtime, hiveTablet, 0); // root hive good @@ -5993,7 +5989,7 @@ Y_UNIT_TEST_SUITE(THiveTest) { } void AssertTabletStartedOnNode(TTestBasicRuntime& runtime, ui64 tabletId, ui32 nodeIndex) { - const ui64 hiveTablet = MakeDefaultHiveID(0); + const ui64 hiveTablet = MakeDefaultHiveID(); TActorId sender = runtime.AllocateEdgeActor(0); runtime.SendToPipe(hiveTablet, sender, new TEvHive::TEvRequestHiveInfo()); TAutoPtr handle; @@ -6013,8 +6009,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(2, false); Setup(runtime, true); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); const TActorId hiveActor = CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); runtime.EnableScheduleForActor(hiveActor); CreateTestBootstrapper(runtime, CreateTestTabletInfo(TTestTxConfig::SchemeShard, TTabletTypes::SchemeShard), &CreateFlatTxSchemeShard); @@ -6119,8 +6115,8 @@ Y_UNIT_TEST_SUITE(THiveTest) { TTestBasicRuntime runtime(2, false); Setup(runtime, true); - const ui64 hiveTablet = MakeDefaultHiveID(0); - const ui64 testerTablet = MakeDefaultHiveID(1); + const ui64 hiveTablet = MakeDefaultHiveID(); + const ui64 testerTablet = MakeTabletID(false, 1); const TActorId hiveActor = CreateTestBootstrapper(runtime, CreateTestTabletInfo(hiveTablet, TTabletTypes::Hive), &CreateDefaultHive); runtime.EnableScheduleForActor(hiveActor); CreateTestBootstrapper(runtime, CreateTestTabletInfo(TTestTxConfig::SchemeShard, TTabletTypes::SchemeShard), &CreateFlatTxSchemeShard); diff --git a/ydb/core/mind/hive/tx__create_tablet.cpp b/ydb/core/mind/hive/tx__create_tablet.cpp index 3b6dfee0e66e..3a0f3f9bfeca 100644 --- a/ydb/core/mind/hive/tx__create_tablet.cpp +++ b/ydb/core/mind/hive/tx__create_tablet.cpp @@ -9,7 +9,6 @@ class TTxCreateTablet : public TTransactionBase { const ui64 OwnerId; const ui64 OwnerIdx; const TTabletTypes::EType TabletType; - const ui32 AssignStateStorage; const TActorId Sender; const ui64 Cookie; @@ -40,8 +39,6 @@ class TTxCreateTablet : public TTransactionBase { , OwnerId(RequestData.GetOwner()) , OwnerIdx(RequestData.GetOwnerIdx()) , TabletType((TTabletTypes::EType)RequestData.GetTabletType()) - , AssignStateStorage(RequestData.HasAssignStateStorage() ? RequestData.GetAssignStateStorage() : - StateStorageGroupFromTabletID(hive->TabletID())) , Sender(sender) , Cookie(cookie) , TabletId(0) @@ -341,7 +338,7 @@ class TTxCreateTablet : public TTransactionBase { RequestFreeSequence(); return true; } else { - TabletId = MakeTabletID(AssignStateStorage, Self->HiveUid, tabletIdIndex); + TabletId = MakeTabletID(true, tabletIdIndex); BLOG_D("Hive " << Self->TabletID() << " allocated TabletId " << TabletId << " from TabletIdIndex " << tabletIdIndex); Y_ABORT_UNLESS(Self->Tablets.count(TabletId) == 0); for (auto owner : modified) { diff --git a/ydb/core/mind/hive/tx__load_everything.cpp b/ydb/core/mind/hive/tx__load_everything.cpp index 896ea3bee4f3..48311d24db21 100644 --- a/ydb/core/mind/hive/tx__load_everything.cpp +++ b/ydb/core/mind/hive/tx__load_everything.cpp @@ -17,9 +17,7 @@ class TTxLoadEverything : public TTransactionBase { TAppData* appData = AppData(); TDomainsInfo* domainsInfo = appData->DomainsInfo.Get(); - const TDomainsInfo::TDomain& domain = domainsInfo->GetDomain(Self->HiveDomain); - - TTabletId rootHiveId = domainsInfo->GetHive(domain.DefaultHiveUid); + TTabletId rootHiveId = domainsInfo->GetHive(); bool isRootHive = (rootHiveId == Self->TabletID()); NIceDb::TNiceDb db(txc.DB); diff --git a/ydb/core/mind/lease_holder.cpp b/ydb/core/mind/lease_holder.cpp index fc399dd71e99..a110a3c8accc 100644 --- a/ydb/core/mind/lease_holder.cpp +++ b/ydb/core/mind/lease_holder.cpp @@ -140,13 +140,9 @@ class TLeaseHolder : public TActorBootstrapped { void Connect(const TActorContext &ctx) { - auto dinfo = AppData(ctx)->DomainsInfo; - auto &domain = dinfo->GetDomain(NodeIdToDomain(ctx.SelfID.NodeId(), *dinfo)); - ui32 group = domain.DefaultStateStorageGroup; - NTabletPipe::TClientConfig config; config.RetryPolicy = NTabletPipe::TClientRetryPolicy::WithRetries(); - auto pipe = NTabletPipe::CreateClient(ctx.SelfID, MakeNodeBrokerID(group), config); + auto pipe = NTabletPipe::CreateClient(ctx.SelfID, MakeNodeBrokerID(), config); NodeBrokerPipe = ctx.Register(pipe); } diff --git a/ydb/core/mind/local.cpp b/ydb/core/mind/local.cpp index c0aaaa639571..ec12a5b9e8ce 100644 --- a/ydb/core/mind/local.cpp +++ b/ydb/core/mind/local.cpp @@ -1246,11 +1246,7 @@ class TDomainLocal : public TActorBootstrapped { ResolveTasks.erase(path); // subscribe for schema updates - const auto& domains = *AppData()->DomainsInfo; - const ui32 domainId = domains.GetDomainUidByTabletId(rec.GetPathDescription().GetSelf().GetSchemeshardId()); - const ui32 boardSSId = domains.GetDomain(domainId).DefaultSchemeBoardGroup; - - THolder subscriber(CreateSchemeBoardSubscriber(SelfId(), path, boardSSId, ESchemeBoardSubscriberDeletionPolicy::Majority)); + THolder subscriber(CreateSchemeBoardSubscriber(SelfId(), path, ESchemeBoardSubscriberDeletionPolicy::Majority)); tenant.Subscriber = Register(subscriber.Release()); } else { LOG_WARN_S(ctx, NKikimrServices::LOCAL, @@ -1382,8 +1378,9 @@ class TDomainLocal : public TActorBootstrapped { , SchemeRoot(domain.SchemeRoot) , Config(config) { - for (auto hiveUid : domain.HiveUids) - HiveIds.push_back(domainsInfo.GetHive(hiveUid)); + if (const ui64 tabletId = domainsInfo.GetHive(); tabletId != TDomainsInfo::BadTabletId) { + HiveIds.push_back(tabletId); + } PipeConfig.RetryPolicy = NTabletPipe::TClientRetryPolicy::WithRetries(); diff --git a/ydb/core/mind/node_broker.cpp b/ydb/core/mind/node_broker.cpp index d3aa1a9b279c..0c7f91b33cb8 100644 --- a/ydb/core/mind/node_broker.cpp +++ b/ydb/core/mind/node_broker.cpp @@ -58,10 +58,7 @@ void TNodeBroker::OnActivateExecutor(const TActorContext &ctx) const auto *appData = AppData(ctx); - DomainId = appData->DomainsInfo->GetDomainUidByTabletId(TabletID()); - Y_ABORT_UNLESS(DomainId < DOMAINS_COUNT); - SingleDomain = appData->DomainsInfo->Domains.size() == 1; - SingleDomainAlloc = SingleDomain && appData->FeatureFlags.GetEnableNodeBrokerSingleDomainMode(); + Y_ABORT_UNLESS(appData->FeatureFlags.GetEnableNodeBrokerSingleDomainMode()); MaxStaticId = Min(appData->DynamicNameserviceConfig->MaxStaticNodeId, TActorId::MaxNodeId); MinDynamicId = Max(MaxStaticId + 1, (ui64)Min(appData->DynamicNameserviceConfig->MinDynamicNodeId, TActorId::MaxNodeId)); @@ -103,7 +100,7 @@ bool TNodeBroker::OnRenderAppHtmlPage(NMon::TEvRemoteHttpInfo::TPtr ev, TStringStream str; HTML(str) { PRE() { - str << "Served domain: " << AppData(ctx)->DomainsInfo->Domains.at(DomainId)->Name << Endl + str << "Served domain: " << AppData(ctx)->DomainsInfo->GetDomain()->Name << Endl << "DynamicNameserviceConfig:" << Endl << " MaxStaticNodeId: " << AppData(ctx)->DynamicNameserviceConfig->MaxStaticNodeId << Endl << " MaxDynamicNodeId: " << AppData(ctx)->DynamicNameserviceConfig->MaxDynamicNodeId << Endl @@ -204,24 +201,7 @@ void TNodeBroker::FixNodeId(TNodeInfo &node) void TNodeBroker::RecomputeFreeIds() { FreeIds.Clear(); - - if (SingleDomainAlloc) { - FreeIds.Set(MinDynamicId, MaxDynamicId + 1); - } else { - auto firstId = RewriteNodeId(MinDynamicId); - if (firstId < MinDynamicId) - firstId += NodeIdStep(); - - auto lastId = RewriteNodeId(MaxDynamicId); - if (lastId > MaxDynamicId) - lastId -= NodeIdStep(); - - // Only ids marked with our domain id are available - FreeIds.Reserve(lastId + 1); - for (ui32 id = firstId; id <= lastId; id += NodeIdStep()) { - FreeIds.Set(id); - } - } + FreeIds.Set(MinDynamicId, MaxDynamicId + 1); // Remove all allocated IDs from the set. for (auto &pr : Nodes) @@ -259,7 +239,7 @@ void TNodeBroker::ProcessListNodesRequest(TEvNodeBroker::TEvListNodes::TPtr &ev) NKikimrNodeBroker::TNodesInfo info; Epoch.Serialize(*info.MutableEpoch()); - info.SetDomain(DomainId); + info.SetDomain(AppData()->DomainsInfo->GetDomain()->DomainUid); TAutoPtr resp = new TEvNodeBroker::TEvNodesInfo(info); if (version != Epoch.Version) resp->PreSerializedData = EpochCache; @@ -349,7 +329,7 @@ void TNodeBroker::ApplyStateDiff(const TStateDiff &diff) "Remove node " << it->second.IdString()); ExpiredNodes.erase(it); - if (!IsBannedId(id) && NodeIdDomain(id) == DomainId && id >= MinDynamicId && id <= MaxDynamicId) + if (!IsBannedId(id) && id >= MinDynamicId && id <= MaxDynamicId) FreeIds.Set(id); } @@ -583,12 +563,7 @@ bool TNodeBroker::DbLoadState(TTransactionContext &txc, // mode, and now temporarily restarted without this mode enabled. We // should still support nodes that have been registered before we // restarted, even though it's not available for allocation. - if (!SingleDomain && NodeIdDomain(id) != DomainId) { - LOG_ERROR_S(ctx, NKikimrServices::NODE_BROKER, - "Ignoring node with wrong ID " << id << " from domain " - << NodeIdDomain(id) << " (expected " << DomainId << ")"); - toRemove.push_back(id); - } else if (id <= MaxStaticId || id > MaxDynamicId) { + if (id <= MaxStaticId || id > MaxDynamicId) { LOG_ERROR_S(ctx, NKikimrServices::NODE_BROKER, "Ignoring node with wrong ID " << id << " not in range (" << MaxStaticId << ", " << MaxDynamicId << "]"); diff --git a/ydb/core/mind/node_broker.h b/ydb/core/mind/node_broker.h index 5b76d720819c..9eee2c8a0953 100644 --- a/ydb/core/mind/node_broker.h +++ b/ydb/core/mind/node_broker.h @@ -186,20 +186,6 @@ constexpr ui32 DOMAIN_BITS = TDomainsInfo::DomainBits; constexpr ui32 DOMAINS_COUNT = 1 << DOMAIN_BITS; constexpr ui32 DOMAIN_MASK = (1 << DOMAIN_BITS) - 1; -inline ui32 NodeIdToDomain(ui32 nodeId) -{ - return nodeId & DOMAIN_MASK; -} - -inline ui32 NodeIdToDomain(ui32 nodeId, const TDomainsInfo& domains) { - // All nodes belong to the same domain when it's the only one defined - if (Y_LIKELY(domains.Domains.size() == 1)) { - return domains.Domains.begin()->first; - } - - return NodeIdToDomain(nodeId); -} - IActor *CreateNodeBroker(const TActorId &tablet, TTabletStorageInfo *info); } // NNodeBroker diff --git a/ydb/core/mind/node_broker_impl.h b/ydb/core/mind/node_broker_impl.h index 28d983d14397..adc8200e3e3b 100644 --- a/ydb/core/mind/node_broker_impl.h +++ b/ydb/core/mind/node_broker_impl.h @@ -202,18 +202,6 @@ class TNodeBroker : public TActor void ClearState(); - ui32 NodeIdStep() const { - return SingleDomainAlloc ? 1 : (1 << DOMAIN_BITS); - } - - ui32 NodeIdDomain(ui32 nodeId) const { - return SingleDomainAlloc ? DomainId : (nodeId & DOMAIN_MASK); - } - - ui32 RewriteNodeId(ui32 nodeId) const { - return SingleDomainAlloc ? nodeId : ((nodeId & ~DOMAIN_MASK) | DomainId); - } - // Internal state modifiers. Don't affect DB. void AddNode(const TNodeInfo &info); void RemoveNode(ui32 nodeId); @@ -297,8 +285,6 @@ class TNodeBroker : public TActor void Handle(TEvPrivate::TEvUpdateEpoch::TPtr &ev, const TActorContext &ctx); - // ID of domain node broker is responsible for. - ui32 DomainId; // All registered dynamic nodes. THashMap Nodes; THashMap ExpiredNodes; @@ -324,9 +310,6 @@ class TNodeBroker : public TActor TSchedulerCookieHolder EpochTimerCookieHolder; TString EpochCache; - bool SingleDomain = false; - bool SingleDomainAlloc = false; - public: TNodeBroker(const TActorId &tablet, TTabletStorageInfo *info) : TActor(&TThis::StateInit) diff --git a/ydb/core/mind/node_broker_ut.cpp b/ydb/core/mind/node_broker_ut.cpp index ec7c10c64fdf..bb80621d56ed 100644 --- a/ydb/core/mind/node_broker_ut.cpp +++ b/ydb/core/mind/node_broker_ut.cpp @@ -56,6 +56,8 @@ void SetupServices(TTestActorRuntime &runtime, ui32 maxDynNodes, bool singleDomainMode) { + UNIT_ASSERT(singleDomainMode); + const ui32 domainsNum = 1; const ui32 disksInDomain = 1; @@ -64,15 +66,13 @@ void SetupServices(TTestActorRuntime &runtime, app.ClearDomainsAndHive(); ui32 domainUid = TTestTxConfig::DomainUid; - ui32 ssId = 0; ui32 planResolution = 50; ui64 schemeRoot = TTestTxConfig::SchemeShard; auto domain = TDomainsInfo::TDomain::ConstructDomainWithExplicitTabletIds( - DOMAIN_NAME, domainUid, schemeRoot, ssId, ssId, TVector{ssId}, - domainUid, TVector{}, planResolution, - TVector{TDomainsInfo::MakeTxCoordinatorIDFixed(domainUid, 1)}, + DOMAIN_NAME, domainUid, schemeRoot, planResolution, + TVector{TDomainsInfo::MakeTxCoordinatorIDFixed(1)}, TVector{}, - TVector{TDomainsInfo::MakeTxAllocatorIDFixed(domainUid, 1)}, + TVector{TDomainsInfo::MakeTxAllocatorIDFixed(1)}, DefaultPoolKinds(2)); TVector ids = runtime.GetTxAllocatorTabletIds(); @@ -186,7 +186,7 @@ void SetupServices(TTestActorRuntime &runtime, CreateTestBootstrapper(runtime, CreateTestTabletInfo(TTestTxConfig::SchemeShard, TTabletTypes::SchemeShard), &CreateFlatTxSchemeShard); BootFakeCoordinator(runtime, TTestTxConfig::Coordinator, MakeIntrusive()); - auto aid = CreateTestBootstrapper(runtime, CreateTestTabletInfo(MakeNodeBrokerID(0), TTabletTypes::NodeBroker), &CreateNodeBroker); + auto aid = CreateTestBootstrapper(runtime, CreateTestTabletInfo(MakeNodeBrokerID(), TTabletTypes::NodeBroker), &CreateNodeBroker); runtime.EnableScheduleForActor(aid, true); } @@ -196,7 +196,7 @@ void SetConfig(TTestActorRuntime& runtime, { auto event = MakeHolder(); event->Record.MutableConfig()->CopyFrom(config); - runtime.SendToPipe(MakeNodeBrokerID(0), sender, event.Release(), 0, GetPipeConfigWithRetries()); + runtime.SendToPipe(MakeNodeBrokerID(), sender, event.Release(), 0, GetPipeConfigWithRetries()); TAutoPtr handle; auto reply = runtime.GrabEdgeEventRethrow(handle); @@ -301,7 +301,7 @@ void CheckRegistration(TTestActorRuntime &runtime, const TMaybe &scopeId = {}) { auto event = MakeRegistrationRequest(host, port, resolveHost, address, path, dc, room, rack, body, fixed); - runtime.SendToPipe(MakeNodeBrokerID(0), sender, event.Release(), 0, GetPipeConfigWithRetries()); + runtime.SendToPipe(MakeNodeBrokerID(), sender, event.Release(), 0, GetPipeConfigWithRetries()); TAutoPtr handle; auto reply = runtime.GrabEdgeEventRethrow(handle); @@ -333,7 +333,7 @@ NKikimrNodeBroker::TEpoch GetEpoch(TTestActorRuntime &runtime, TActorId sender) { TAutoPtr event = new TEvNodeBroker::TEvListNodes; - runtime.SendToPipe(MakeNodeBrokerID(0), sender, event.Release(), 0, GetPipeConfigWithRetries()); + runtime.SendToPipe(MakeNodeBrokerID(), sender, event.Release(), 0, GetPipeConfigWithRetries()); TAutoPtr handle; auto reply = runtime.GrabEdgeEventRethrow(handle); @@ -407,7 +407,7 @@ NKikimrNodeBroker::TEpoch CheckFilteredNodesList(TTestActorRuntime &runtime, event->Record.SetMinEpoch(minEpoch); if (cachedVersion) event->Record.SetCachedVersion(cachedVersion); - runtime.SendToPipe(MakeNodeBrokerID(0), sender, event.Release(), 0, GetPipeConfigWithRetries()); + runtime.SendToPipe(MakeNodeBrokerID(), sender, event.Release(), 0, GetPipeConfigWithRetries()); if (minEpoch) { while (minEpoch > epoch.GetId()) { @@ -439,7 +439,7 @@ NKikimrNodeBroker::TEpoch CheckNodesList(TTestActorRuntime &runtime, ui64 epoch) { TAutoPtr event = new TEvNodeBroker::TEvListNodes; - runtime.SendToPipe(MakeNodeBrokerID(0), sender, event.Release(), 0, GetPipeConfigWithRetries()); + runtime.SendToPipe(MakeNodeBrokerID(), sender, event.Release(), 0, GetPipeConfigWithRetries()); TAutoPtr handle; auto reply = runtime.GrabEdgeEventRethrow(handle); @@ -458,7 +458,7 @@ void CheckNodeInfo(TTestActorRuntime &runtime, { TAutoPtr event = new TEvNodeBroker::TEvResolveNode; event->Record.SetNodeId(nodeId); - runtime.SendToPipe(MakeNodeBrokerID(0), sender, event.Release(), 0, GetPipeConfigWithRetries()); + runtime.SendToPipe(MakeNodeBrokerID(), sender, event.Release(), 0, GetPipeConfigWithRetries()); TAutoPtr handle; auto reply = runtime.GrabEdgeEventRethrow(handle); @@ -483,7 +483,7 @@ void CheckNodeInfo(TTestActorRuntime &runtime, { TAutoPtr event = new TEvNodeBroker::TEvResolveNode; event->Record.SetNodeId(nodeId); - runtime.SendToPipe(MakeNodeBrokerID(0), sender, event.Release(), 0, GetPipeConfigWithRetries()); + runtime.SendToPipe(MakeNodeBrokerID(), sender, event.Release(), 0, GetPipeConfigWithRetries()); TAutoPtr handle; auto reply = runtime.GrabEdgeEventRethrow(handle); @@ -512,7 +512,7 @@ void CheckLeaseExtension(TTestActorRuntime &runtime, { TAutoPtr event = new TEvNodeBroker::TEvExtendLeaseRequest; event->Record.SetNodeId(nodeId); - runtime.SendToPipe(MakeNodeBrokerID(0), sender, event.Release(), 0, GetPipeConfigWithRetries()); + runtime.SendToPipe(MakeNodeBrokerID(), sender, event.Release(), 0, GetPipeConfigWithRetries()); TAutoPtr handle; auto reply = runtime.GrabEdgeEventRethrow(handle); @@ -658,7 +658,7 @@ void RestartNodeBroker(TTestActorRuntime &runtime) { TDispatchOptions options; options.FinalEvents.emplace_back(&IsTabletActiveEvent, 1); - runtime.Register(CreateTabletKiller(MakeNodeBrokerID(0))); + runtime.Register(CreateTabletKiller(MakeNodeBrokerID())); runtime.DispatchEvents(options); } @@ -975,7 +975,7 @@ Y_UNIT_TEST_SUITE(TNodeBrokerTest) { { TDispatchOptions options; options.FinalEvents.emplace_back(&IsTabletActiveEvent, 1); - runtime.Register(CreateTabletKiller(MakeNodeBrokerID(0))); + runtime.Register(CreateTabletKiller(MakeNodeBrokerID())); runtime.DispatchEvents(options); } break; @@ -1109,7 +1109,7 @@ Y_UNIT_TEST_SUITE(TNodeBrokerTest) { 1, 2, 3, 4, TStatus::OK, 1024, epoch.GetNextEnd()); // Compact node broker tables to have page faults on reboot - runtime.SendToPipe(MakeNodeBrokerID(0), sender, new TEvNodeBroker::TEvCompactTables(), 0, GetPipeConfigWithRetries()); + runtime.SendToPipe(MakeNodeBrokerID(), sender, new TEvNodeBroker::TEvCompactTables(), 0, GetPipeConfigWithRetries()); runtime.SimulateSleep(TDuration::Seconds(1)); // Wait until epoch expiration. @@ -1200,11 +1200,11 @@ Y_UNIT_TEST_SUITE(TNodeBrokerTest) { Cerr << "... rebooting node broker" << Endl; // runtime.SetLogPriority(NKikimrServices::TABLET_MAIN, NLog::PRI_TRACE); // runtime.SetLogPriority(NKikimrServices::TABLET_EXECUTOR, NLog::PRI_TRACE); - runtime.Register(CreateTabletKiller(MakeNodeBrokerID(0))); + runtime.Register(CreateTabletKiller(MakeNodeBrokerID())); hooks.WaitCacheRequests(); // Open a new pipe - auto pipe = runtime.ConnectToPipe(MakeNodeBrokerID(0), sender, 0, GetPipeConfigWithRetries()); + auto pipe = runtime.ConnectToPipe(MakeNodeBrokerID(), sender, 0, GetPipeConfigWithRetries()); // Send an extend lease request while node broker is loading its state Cerr << "... sending extend lease request" << Endl; diff --git a/ydb/core/mind/tenant_node_enumeration.cpp b/ydb/core/mind/tenant_node_enumeration.cpp index ecef91eccc5b..ab1a2295ab8c 100644 --- a/ydb/core/mind/tenant_node_enumeration.cpp +++ b/ydb/core/mind/tenant_node_enumeration.cpp @@ -14,24 +14,10 @@ TString MakeTenantNodeEnumerationPath(const TString &tenantName) { return "node+" + tenantName; } -static ui32 ExtractDefaultGroupForPath(const TString &path) { - auto *domains = AppData()->DomainsInfo.Get(); - const TStringBuf domainName = ExtractDomain(path); - auto *domainInfo = domains->GetDomainByName(domainName); - if (domainInfo) - return domainInfo->DefaultStateStorageGroup; - else - return Max(); -} - class TTenantNodeEnumerationPublisher : public TActorBootstrapped { void StartPublishing() { const TString assignedPath = MakeTenantNodeEnumerationPath(AppData()->TenantName); - const ui32 statestorageGroupId = ExtractDefaultGroupForPath(AppData()->TenantName); - if (statestorageGroupId == Max()) - return; - - Register(CreateBoardPublishActor(assignedPath, TString(), SelfId(), statestorageGroupId, 0, true)); + Register(CreateBoardPublishActor(assignedPath, TString(), SelfId(), 0, true)); } public: @@ -95,12 +81,8 @@ class TTenantNodeEnumerationLookup : public TActorBootstrapped()) - return ReportErrorAndDie(); - const TString path = MakeTenantNodeEnumerationPath(TenantName); - LookupActor = Register(CreateBoardLookupActor(path, SelfId(), statestorageGroupId, EBoardLookupMode::Majority)); + LookupActor = Register(CreateBoardLookupActor(path, SelfId(), EBoardLookupMode::Majority)); Become(&TThis::StateWait); } diff --git a/ydb/core/mind/tenant_pool.cpp b/ydb/core/mind/tenant_pool.cpp index 90be5518ca51..3ad542f32f66 100644 --- a/ydb/core/mind/tenant_pool.cpp +++ b/ydb/core/mind/tenant_pool.cpp @@ -413,9 +413,7 @@ class TDomainTenantPool : public TActorBootstrapped { SubscribeForConfig(ctx); - auto domain = AppData(ctx)->DomainsInfo->GetDomainByName(DomainName); - Y_ABORT_UNLESS(domain); - TenantSlotBroker.TabletId = MakeTenantSlotBrokerID(domain->DefaultStateStorageGroup); + TenantSlotBroker.TabletId = MakeTenantSlotBrokerID(); for (auto &pr : Config->StaticSlots) { TTenantInfo::TPtr tenant = new TTenantInfo(pr.second.GetTenantName()); @@ -853,12 +851,12 @@ class TTenantPool : public TActorBootstrapped { } auto domains = AppData(ctx)->DomainsInfo; + auto *domain = domains->GetDomain(); for (auto &pr : domainConfigs) { - auto *domain = domains->GetDomainByName(pr.first); - Y_ABORT_UNLESS(domain, "unknown domain %s in Tenant Pool config", pr.first.data()); + Y_ABORT_UNLESS(domain->Name == pr.first, "unknown domain %s in Tenant Pool config", pr.first.data()); auto aid = ctx.RegisterWithSameMailbox(new TDomainTenantPool(pr.first, LocalID, pr.second)); DomainTenantPools[pr.first] = aid; - auto serviceId = MakeTenantPoolID(SelfId().NodeId(), domain->DomainUid); + auto serviceId = MakeTenantPoolID(SelfId().NodeId()); ctx.ExecutorThread.ActorSystem->RegisterLocalService(serviceId, aid); } diff --git a/ydb/core/mind/tenant_pool.h b/ydb/core/mind/tenant_pool.h index 052066f2dd92..6b38a5b5d954 100644 --- a/ydb/core/mind/tenant_pool.h +++ b/ydb/core/mind/tenant_pool.h @@ -86,10 +86,9 @@ class TTenantPoolConfig : public TThrRefBase { IActor* CreateTenantPool(TTenantPoolConfig::TPtr config); -inline TActorId MakeTenantPoolID(ui32 node = 0, ui32 domain = 0) { - Y_ABORT_UNLESS(domain < 32); +inline TActorId MakeTenantPoolID(ui32 node = 0) { char x[12] = { 't', 'e', 'n', 'a', 'n', 't', 'p', 'o', 'o', 'l' }; - x[10] = static_cast(domain); + x[10] = static_cast(1); return TActorId(node, TStringBuf(x, 12)); } diff --git a/ydb/core/mind/tenant_slot_broker.cpp b/ydb/core/mind/tenant_slot_broker.cpp index f4e6472ac847..cd2524624e1f 100644 --- a/ydb/core/mind/tenant_slot_broker.cpp +++ b/ydb/core/mind/tenant_slot_broker.cpp @@ -413,10 +413,7 @@ void TTenantSlotBroker::OnActivateExecutor(const TActorContext &ctx) { RequestId = Now().GetValue(); - auto domains = AppData(ctx)->DomainsInfo; - DomainId = domains->GetDomainUidByTabletId(TabletID()); - Y_ABORT_UNLESS(DomainId != TDomainsInfo::BadDomainId); - DomainName = domains->Domains.at(DomainId)->Name; + DomainName = AppData()->DomainsInfo->GetDomain()->Name; auto tabletCounters = GetServiceCounters(AppData(ctx)->Counters, "tablets"); tabletCounters->RemoveSubgroup("type", "TENANT_SLOT_BROKER"); @@ -451,7 +448,7 @@ bool TTenantSlotBroker::OnRenderAppHtmlPage(NMon::TEvRemoteHttpInfo::TPtr ev, TStringStream str; HTML(str) { PRE() { - str << "Served domain: " << AppData(ctx)->DomainsInfo->Domains.at(DomainId)->Name << Endl + str << "Served domain: " << AppData(ctx)->DomainsInfo->GetDomain()->Name << Endl << "Used timeout for pending slots: " << PendingTimeout.ToString() << Endl << "PendingAssignFreeSlots: " << PendingAssignFreeSlots << Endl; @@ -1515,7 +1512,7 @@ void TTenantSlotBroker::SendConfigureSlot(TSlot::TPtr slot, LOG_DEBUG_S(ctx, NKikimrServices::TENANT_SLOT_BROKER, "Send configuration request " << slot->LastRequestId << " for " << slot->IdString(true)); - auto serviceId = MakeTenantPoolID(slot->Id.NodeId, DomainId); + auto serviceId = MakeTenantPoolID(slot->Id.NodeId); ctx.Send(serviceId, event.Release(), IEventHandle::FlagTrackDelivery, slot->LastRequestId); ctx.Schedule(PendingTimeout, new TEvPrivate::TEvCheckSlotStatus(slot, slot->LastRequestId)); } @@ -1648,7 +1645,7 @@ void TTenantSlotBroker::Handle(TEvents::TEvUndelivered::TPtr &ev, { ui32 nodeId = ev->Sender.NodeId(); - if (ev->Sender != MakeTenantPoolID(nodeId, DomainId)) + if (ev->Sender != MakeTenantPoolID(nodeId)) return; DisconnectNodeSlots(nodeId, ctx); @@ -1684,7 +1681,7 @@ void TTenantSlotBroker::Handle(TEvTenantPool::TEvLostOwnership::TPtr &ev, LOG_DEBUG_S(ctx, NKikimrServices::TENANT_SLOT_BROKER, "Re-taking ownership of tenant pool on node " << nodeId); - ctx.Send(MakeTenantPoolID(nodeId, DomainId), new TEvTenantPool::TEvTakeOwnership(Generation())); + ctx.Send(MakeTenantPoolID(nodeId), new TEvTenantPool::TEvTakeOwnership(Generation())); } void TTenantSlotBroker::Handle(TEvTabletPipe::TEvServerConnected::TPtr &ev, diff --git a/ydb/core/mind/tenant_slot_broker__load_state.cpp b/ydb/core/mind/tenant_slot_broker__load_state.cpp index 2c80314b3d33..567b49de161c 100644 --- a/ydb/core/mind/tenant_slot_broker__load_state.cpp +++ b/ydb/core/mind/tenant_slot_broker__load_state.cpp @@ -173,7 +173,7 @@ class TTenantSlotBroker::TTxLoadState : public TTransactionBaseDomainId), new TEvTenantPool::TEvTakeOwnership(Self->Generation())); + ctx.Send(MakeTenantPoolID(pr.first), new TEvTenantPool::TEvTakeOwnership(Self->Generation())); ctx.Send(GetNameserviceActorId(), new TEvInterconnect::TEvGetNode(pr.first)); for (auto& slot : pr.second) { diff --git a/ydb/core/mind/tenant_slot_broker__update_slot_status.cpp b/ydb/core/mind/tenant_slot_broker__update_slot_status.cpp index 73538e38d60a..10fb93dcf7a9 100644 --- a/ydb/core/mind/tenant_slot_broker__update_slot_status.cpp +++ b/ydb/core/mind/tenant_slot_broker__update_slot_status.cpp @@ -58,7 +58,7 @@ class TTenantSlotBroker::TTxUpdateSlotStatus : public TTransactionBaseDomainId), new TEvTenantPool::TEvTakeOwnership(Self->Generation())); + ctx.Send(MakeTenantPoolID(nodeId), new TEvTenantPool::TEvTakeOwnership(Self->Generation())); return true; } diff --git a/ydb/core/mind/tenant_slot_broker_impl.h b/ydb/core/mind/tenant_slot_broker_impl.h index 73a2f4703cdc..bb8028238ac0 100644 --- a/ydb/core/mind/tenant_slot_broker_impl.h +++ b/ydb/core/mind/tenant_slot_broker_impl.h @@ -1152,7 +1152,6 @@ class TTenantSlotBroker : public TActor, public TTabletExecut NKikimrTenantSlotBroker::TConfig Config; TDuration PendingTimeout; ui64 RequestId; - ui32 DomainId; TString DomainName; // NodeId -> DataCenter THashMap NodeIdToDataCenter; diff --git a/ydb/core/mind/tenant_ut_pool.cpp b/ydb/core/mind/tenant_ut_pool.cpp index 2abd1984cd88..2cd7be89bf63 100644 --- a/ydb/core/mind/tenant_ut_pool.cpp +++ b/ydb/core/mind/tenant_ut_pool.cpp @@ -312,7 +312,7 @@ Y_UNIT_TEST_SUITE(TTenantPoolTests) { const TActorId& sender = runtime.Sender; const TActorId tenantPoolRoot = MakeTenantPoolRootID(); - const TActorId tenantPool = MakeTenantPoolID(runtime.GetNodeId(0), 0); + const TActorId tenantPool = MakeTenantPoolID(runtime.GetNodeId(0)); using TEvStatus = TEvTenantPool::TEvTenantPoolStatus; using EState = NKikimrTenantPool::EState; diff --git a/ydb/core/mind/ut_fat/blobstorage_node_warden_ut_fat.cpp b/ydb/core/mind/ut_fat/blobstorage_node_warden_ut_fat.cpp index 1250627f8dca..17001e52557f 100644 --- a/ydb/core/mind/ut_fat/blobstorage_node_warden_ut_fat.cpp +++ b/ydb/core/mind/ut_fat/blobstorage_node_warden_ut_fat.cpp @@ -125,7 +125,7 @@ void SetupServices(TTestActorRuntime &runtime) { { // setup domain info app.ClearDomainsAndHive(); app.AddDomain(TDomainsInfo::TDomain::ConstructEmptyDomain("dc-1", domainId).Release()); - app.AddHive(domainId, MakeDefaultHiveID(stateStorageGroup)); + app.AddHive(MakeDefaultHiveID()); } { // setup channel profiles TIntrusivePtr channelProfiles = new TChannelProfiles; @@ -229,8 +229,7 @@ void SetupServices(TTestActorRuntime &runtime) { runtime.DispatchEvents(options); } - ui64 defaultStateStorageGroup = runtime.GetAppData(0).DomainsInfo->GetDefaultStateStorageGroup(DOMAIN_ID); - CreateTestBootstrapper(runtime, CreateTestTabletInfo(MakeBSControllerID(defaultStateStorageGroup), + CreateTestBootstrapper(runtime, CreateTestTabletInfo(MakeBSControllerID(), TTabletTypes::BSController, TBlobStorageGroupType::ErasureMirror3, groupId), &CreateFlatBsController); } @@ -247,10 +246,8 @@ void Setup(TTestActorRuntime& runtime) { Y_UNIT_TEST_SUITE(TBlobStorageWardenTest) { - ui64 GetBsc(TTestActorRuntime &runtime) { - ui64 defaultStateStorageGroup = runtime.GetAppData(0).DomainsInfo->GetDefaultStateStorageGroup(DOMAIN_ID); - ui64 bsController = MakeBSControllerID(defaultStateStorageGroup); - return bsController; + ui64 GetBsc(TTestActorRuntime& /*runtime*/) { + return MakeBSControllerID(); } void CreatePDiskInBox(TTestActorRuntime& runtime, const TActorId& sender, ui32 nodeId, ui64 boxId, TString pdiskPath, diff --git a/ydb/core/persqueue/pq_impl.cpp b/ydb/core/persqueue/pq_impl.cpp index 9e989af4cb80..8c6eac8add57 100644 --- a/ydb/core/persqueue/pq_impl.cpp +++ b/ydb/core/persqueue/pq_impl.cpp @@ -4050,12 +4050,7 @@ void TPersQueue::InitProcessingParams(const TActorContext& ctx) return; } - auto appdata = AppData(ctx); - const ui32 domainId = appdata->DomainsInfo->GetDomainUidByTabletId(TabletID()); - Y_ABORT_UNLESS(domainId != appdata->DomainsInfo->BadDomainId); - - const auto& domain = appdata->DomainsInfo->GetDomain(domainId); - ProcessingParams = ExtractProcessingParams(domain); + ProcessingParams = ExtractProcessingParams(*AppData(ctx)->DomainsInfo->GetDomain()); InitMediatorTimeCast(ctx); } diff --git a/ydb/core/persqueue/ut/common/pq_ut_common.h b/ydb/core/persqueue/ut/common/pq_ut_common.h index 301e836a1f47..854bfe89a22c 100644 --- a/ydb/core/persqueue/ut/common/pq_ut_common.h +++ b/ydb/core/persqueue/ut/common/pq_ut_common.h @@ -90,10 +90,10 @@ struct TTestContext { TTestContext() { - TabletId = MakeTabletID(0, 0, 1); + TabletId = MakeTabletID(false, 1); TabletIds.push_back(TabletId); - BalancerTabletId = MakeTabletID(0, 0, 2); + BalancerTabletId = MakeTabletID(false, 2); TabletIds.push_back(BalancerTabletId); } diff --git a/ydb/core/protos/config.proto b/ydb/core/protos/config.proto index 537c326e1b5a..83e98505a4ac 100644 --- a/ydb/core/protos/config.proto +++ b/ydb/core/protos/config.proto @@ -175,7 +175,7 @@ message TDomainsConfig { optional bool IsDisabled = 6 [default = false]; // used in the intermediate reconfiguration step } - optional uint32 SSId = 1; + optional uint32 SSId = 1 [default = 1]; optional TRing Ring = 2; optional uint32 StateStorageVersion = 3 [default = 0]; repeated uint32 CompatibleVersions = 4; @@ -211,7 +211,7 @@ message TDomainsConfig { } message THiveConfig { // look for another THiveConfig later in this file - optional uint32 HiveUid = 1; + optional uint32 HiveUid = 1 [default = 1]; optional fixed64 Hive = 2; } diff --git a/ydb/core/security/login_page.cpp b/ydb/core/security/login_page.cpp index 3cad44d35534..447c8fa37ca4 100644 --- a/ydb/core/security/login_page.cpp +++ b/ydb/core/security/login_page.cpp @@ -96,10 +96,9 @@ class TLoginRequest : public NActors::TActorBootstrapped { ALOG_DEBUG(NActorsServices::HTTP, "Login: Requesting LDAP provider for user " << AuthCredentials.Login); Send(MakeLdapAuthProviderID(), new TEvLdapAuthProvider::TEvAuthenticateRequest(AuthCredentials.Login, AuthCredentials.Password)); } else { - TDomainsInfo* domainsInfo = AppData()->DomainsInfo.Get(); - const TDomainsInfo::TDomain& domain = *domainsInfo->Domains.begin()->second.Get(); - TString rootDatabase = "/" + domain.Name; - ui64 rootSchemeShardTabletId = domain.SchemeRoot; + auto *domain = AppData()->DomainsInfo->GetDomain(); + TString rootDatabase = "/" + domain->Name; + ui64 rootSchemeShardTabletId = domain->SchemeRoot; if (!Database.empty() && Database != rootDatabase) { Database = rootDatabase; ALOG_DEBUG(NActorsServices::HTTP, "Login: Requesting schemecache for database " << Database); diff --git a/ydb/core/security/ticket_parser_impl.h b/ydb/core/security/ticket_parser_impl.h index bf023f8116fa..8c473ab81707 100644 --- a/ydb/core/security/ticket_parser_impl.h +++ b/ydb/core/security/ticket_parser_impl.h @@ -1719,8 +1719,8 @@ class TTicketParserImpl : public TActorBootstrapped { GetDerived()->InitCounters(counters); GetDerived()->InitAuthProvider(); - if (AppData() && AppData()->DomainsInfo && !AppData()->DomainsInfo->Domains.empty()) { - DomainName = "/" + AppData()->DomainsInfo->Domains.begin()->second->Name; + if (AppData() && AppData()->DomainsInfo && AppData()->DomainsInfo->Domain) { + DomainName = "/" + AppData()->DomainsInfo->GetDomain()->Name; } GetDerived()->InitTime(); diff --git a/ydb/core/sys_view/common/scan_actor_base_impl.h b/ydb/core/sys_view/common/scan_actor_base_impl.h index 03a96bc93490..eac44c18e0b8 100644 --- a/ydb/core/sys_view/common/scan_actor_base_impl.h +++ b/ydb/core/sys_view/common/scan_actor_base_impl.h @@ -120,15 +120,7 @@ class TScanActorBase : public TActorBootstrapped { } ui64 GetBSControllerId() { - auto domainInfo = AppData()->DomainsInfo; - if (domainInfo->Domains.empty()) { - ReplyErrorAndDie(Ydb::StatusIds::UNAVAILABLE, "Invalid domain info"); - return 0; - } - - auto domain = domainInfo->Domains.begin()->second; - auto defaultSSGroup = domainInfo->GetDefaultStateStorageGroup(domain->DomainUid); - return MakeBSControllerID(defaultSSGroup); + return MakeBSControllerID(); } template @@ -243,13 +235,7 @@ class TScanActorBase : public TActorBootstrapped { if (entry.DomainInfo->Params.HasHive()) { HiveId = entry.DomainInfo->Params.GetHive(); } else { - auto domainInfo = AppData()->DomainsInfo; - if (domainInfo->Domains.empty()) { - ReplyErrorAndDie(Ydb::StatusIds::UNAVAILABLE, "Invalid domain info"); - return; - } - auto domain = domainInfo->Domains.begin()->second; - HiveId = domainInfo->GetHive(domain->DefaultHiveUid); + HiveId = AppData()->DomainsInfo->GetHive(); } DomainKey = entry.DomainInfo->DomainKey; diff --git a/ydb/core/tablet/node_tablet_monitor.cpp b/ydb/core/tablet/node_tablet_monitor.cpp index 7b8f06193742..831aa9dfdfdb 100644 --- a/ydb/core/tablet/node_tablet_monitor.cpp +++ b/ydb/core/tablet/node_tablet_monitor.cpp @@ -83,30 +83,6 @@ class TNodeList : public TActorBootstrapped { } } HTML_TAG() {str << "All tablets of the cluster";} - TAG(TH3) { - str << "State Storages"; - } - TABLE_SORTABLE_CLASS("table") { - TABLEHEAD() { - TABLER() { - TABLEH() {str << "StateStorageId";} - TABLEH() {str << "Domain";} - } - } - TABLEBODY() { - - for (const auto& ni : AppData(ctx)->DomainsInfo->Domains) { - const TDomainsInfo::TDomain &domain = *ni.second; - for (const auto ssId : domain.StateStorageGroups) { - TABLER() { - TABLED() {str << "" - << ssId << "";} - TABLED() {str << domain.Name;} - } - } - } - } - } } ctx.Send(Sender, new NMon::TEvHttpInfoRes(str.Str())); Die(ctx); @@ -302,9 +278,8 @@ class TStateStorageTabletList : public TActorBootstrappedRelease(); - const TActorId proxyActorID = MakeStateStorageProxyID(StateStorageId); + const TActorId proxyActorID = MakeStateStorageProxyID(); ctx.Send(proxyActorID, new TEvStateStorage::TEvRequestReplicasDumps()); } @@ -341,7 +316,7 @@ class TStateStorageTabletList : public TActorBootstrapped NodesInfo; }; @@ -468,8 +442,8 @@ class TNodeTabletMonitor : public TActorBootstrapped { filterNodeId = FromStringWithDefault(cgi.Get("node_id")); ctx.ExecutorThread.RegisterActor(new TTabletList(ev->Sender, filterNodeId, StateClassifier, TableRenderer)); return; - } else if (actionParam == "browse_ss" && cgi.Has("ss_id")) { - ctx.ExecutorThread.RegisterActor(new TStateStorageTabletList(ev->Sender, FromStringWithDefault(cgi.Get("ss_id")))); + } else if (actionParam == "browse_ss") { + ctx.ExecutorThread.RegisterActor(new TStateStorageTabletList(ev->Sender)); return; } } diff --git a/ydb/core/tablet/tablet_monitoring_proxy.cpp b/ydb/core/tablet/tablet_monitoring_proxy.cpp index 212e6a6c96ae..41b3e883cabb 100644 --- a/ydb/core/tablet/tablet_monitoring_proxy.cpp +++ b/ydb/core/tablet/tablet_monitoring_proxy.cpp @@ -308,13 +308,11 @@ TTabletMonitoringProxyActor::Handle(NMon::TEvHttpInfo::TPtr &ev, const TActorCon TStringStream str; - const NKikimr::TDomainsInfo* domainsInfo = AppData(ctx)->DomainsInfo.Get(); - auto& domains = domainsInfo->Domains; + const auto& domainsInfo = AppData(ctx)->DomainsInfo; HTML(str) { - for (auto di: domains) { - ui32 domainId = di.first; + if (const auto& domain = domainsInfo->Domain) { // actually we MUST have it TAG(TH3) { - str << "Domain \"" << di.second->Name << "\" (id: " << domainId << ")"; + str << "Domain \"" << domain->Name << "\" (id: " << domain->DomainUid << ")"; } TABLE_SORTABLE_CLASS("table") { TABLEHEAD() { @@ -326,7 +324,7 @@ TTabletMonitoringProxyActor::Handle(NMon::TEvHttpInfo::TPtr &ev, const TActorCon } } TABLEBODY() { - if (const ui64 schemeRootTabletId = di.second->SchemeRoot) { + if (const ui64 schemeRootTabletId = domain->SchemeRoot) { TABLER() { TABLED() {str << "SCHEMESHARD";} TABLED() {str << schemeRootTabletId;} @@ -338,77 +336,73 @@ TTabletMonitoringProxyActor::Handle(NMon::TEvHttpInfo::TPtr &ev, const TActorCon TABLED() {str << "";} } } - for (auto hi : di.second->HiveUids) { - ui64 tabletId = domainsInfo->GetHive(hi); - TABLER() { - TABLED() {str << "HIVE";} - TABLED() {str << tabletId;} - TABLED() {str << " " - << "" - << "";} - TABLED() {str << "";} - } + ui64 tabletId = domainsInfo->GetHive(); + TABLER() { + TABLED() {str << "HIVE";} + TABLED() {str << tabletId;} + TABLED() {str << " " + << "" + << "";} + TABLED() {str << "";} } - for (auto si : di.second->StateStorageGroups) { - ui64 tabletId = NKikimr::MakeBSControllerID(si); - TABLER() { - TABLED() {str << "BS_CONTROLLER";} - TABLED() {str << tabletId;} - TABLED() {str << " " - << "" - << "";} - TABLED() {str << "";} - } - tabletId = NKikimr::MakeCmsID(si); - TABLER() { - TABLED() {str << "CMS";} - TABLED() {str << tabletId;} - TABLED() {str << " " - << "" - << "";} - TABLED() {str << "";} - } - tabletId = NKikimr::MakeNodeBrokerID(si); - TABLER() { - TABLED() {str << "NODE_BROKER";} - TABLED() {str << tabletId;} - TABLED() {str << " " - << "" - << "";} - TABLED() {str << "";} - } - tabletId = NKikimr::MakeTenantSlotBrokerID(si); - TABLER() { - TABLED() {str << "TENANT_SLOT_BROKER";} - TABLED() {str << tabletId;} - TABLED() {str << " " - << "" - << "";} - TABLED() {str << "";} - } - tabletId = NKikimr::MakeConsoleID(si); - TABLER() { - TABLED() {str << "CONSOLE";} - TABLED() {str << tabletId;} - TABLED() {str << " " - << "" - << "";} - TABLED() {str << "";} - } + tabletId = NKikimr::MakeBSControllerID(); + TABLER() { + TABLED() {str << "BS_CONTROLLER";} + TABLED() {str << tabletId;} + TABLED() {str << " " + << "" + << "";} + TABLED() {str << "";} + } + tabletId = NKikimr::MakeCmsID(); + TABLER() { + TABLED() {str << "CMS";} + TABLED() {str << tabletId;} + TABLED() {str << " " + << "" + << "";} + TABLED() {str << "";} + } + tabletId = NKikimr::MakeNodeBrokerID(); + TABLER() { + TABLED() {str << "NODE_BROKER";} + TABLED() {str << tabletId;} + TABLED() {str << " " + << "" + << "";} + TABLED() {str << "";} + } + tabletId = NKikimr::MakeTenantSlotBrokerID(); + TABLER() { + TABLED() {str << "TENANT_SLOT_BROKER";} + TABLED() {str << tabletId;} + TABLED() {str << " " + << "" + << "";} + TABLED() {str << "";} + } + tabletId = NKikimr::MakeConsoleID(); + TABLER() { + TABLED() {str << "CONSOLE";} + TABLED() {str << tabletId;} + TABLED() {str << " " + << "" + << "";} + TABLED() {str << "";} } - for (auto tabletId : di.second->Coordinators) { + for (auto tabletId : domain->Coordinators) { TABLER() { TABLED() {str << "TX_COORDINATOR";} TABLED() {str << tabletId;} @@ -420,7 +414,7 @@ TTabletMonitoringProxyActor::Handle(NMon::TEvHttpInfo::TPtr &ev, const TActorCon TABLED() {str << "";} } } - for (auto tabletId : di.second->Mediators) { + for (auto tabletId : domain->Mediators) { TABLER() { TABLED() {str << "TX_MEDIATOR";} TABLED() {str << tabletId;} @@ -432,7 +426,7 @@ TTabletMonitoringProxyActor::Handle(NMon::TEvHttpInfo::TPtr &ev, const TActorCon TABLED() {str << "";} } } - for (auto tabletId : di.second->TxAllocators) { + for (auto tabletId : domain->TxAllocators) { TABLER() { TABLED() {str << "TX_ALLOCATOR";} TABLED() {str << tabletId;} diff --git a/ydb/core/tablet/tablet_pipe_client.cpp b/ydb/core/tablet/tablet_pipe_client.cpp index 4da097d342cd..aa81bffd2690 100644 --- a/ydb/core/tablet/tablet_pipe_client.cpp +++ b/ydb/core/tablet/tablet_pipe_client.cpp @@ -436,12 +436,10 @@ namespace NTabletPipe { Y_UNUSED(ev); Y_UNUSED(ctx); - const ui64 hiveUid = HiveUidFromTabletID(TabletId); - const ui64 hiveTabletId = AppData()->DomainsInfo->GetHive(hiveUid); - - if (hiveUid == 0) + if (HiveUidFromTabletID(TabletId) == 0) BLOG_ERROR("trying to check aliveness of hand-made tablet! would definitely fail"); + const ui64 hiveTabletId = AppData()->DomainsInfo->GetHive(); RequestHiveInfo(hiveTabletId); } diff --git a/ydb/core/tablet/tablet_req_delete.cpp b/ydb/core/tablet/tablet_req_delete.cpp index a0768ef974b1..39a752b9ae36 100644 --- a/ydb/core/tablet/tablet_req_delete.cpp +++ b/ydb/core/tablet/tablet_req_delete.cpp @@ -84,8 +84,7 @@ class TTabletReqDelete : public TActorBootstrapped { ++FinishedRequests; if (FinishedRequests >= Requests.size()) { if (Generation == std::numeric_limits::max()) { - ui64 StateStorageId = StateStorageGroupFromTabletID(TabletId); - const TActorId proxyActorID = MakeStateStorageProxyID(StateStorageId); + const TActorId proxyActorID = MakeStateStorageProxyID(); ctx.Send(proxyActorID, new TEvStateStorage::TEvDelete(TabletId)); } diff --git a/ydb/core/tablet/tablet_req_reset.cpp b/ydb/core/tablet/tablet_req_reset.cpp index c95e6508d460..c1188a8abead 100644 --- a/ydb/core/tablet/tablet_req_reset.cpp +++ b/ydb/core/tablet/tablet_req_reset.cpp @@ -125,7 +125,7 @@ class TTabletReqReset : public TActorBootstrapped { } void Bootstrap(const TActorContext& ctx) { - TActorId stateStorageProxyId = MakeStateStorageProxyID(StateStorageGroupFromTabletID(TabletStorageInfo->TabletID)); + TActorId stateStorageProxyId = MakeStateStorageProxyID(); ctx.Send(stateStorageProxyId, new TEvStateStorage::TEvLookup(TabletStorageInfo->TabletID, 0)); if (Generation == 0) { FindLatestLogEntry(ctx); diff --git a/ydb/core/tablet/tablet_resolver.cpp b/ydb/core/tablet/tablet_resolver.cpp index e6c1508d9007..63c8da34079b 100644 --- a/ydb/core/tablet/tablet_resolver.cpp +++ b/ydb/core/tablet/tablet_resolver.cpp @@ -193,7 +193,7 @@ class TTabletResolver : public TActorBootstrapped { } void ResolveRequest(ui64 tabletId, const TActorContext &ctx) { - const TActorId ssproxy = MakeStateStorageProxyID(StateStorageGroupFromTabletID(tabletId)); + const TActorId ssproxy = MakeStateStorageProxyID(); ctx.Send(ssproxy, new TEvStateStorage::TEvLookup(tabletId, 0), IEventHandle::FlagTrackDelivery, tabletId); InFlyResolveCounter->Inc(); diff --git a/ydb/core/tablet/tablet_resolver_ut.cpp b/ydb/core/tablet/tablet_resolver_ut.cpp index 0de615d8cc76..ddcd83b8160e 100644 --- a/ydb/core/tablet/tablet_resolver_ut.cpp +++ b/ydb/core/tablet/tablet_resolver_ut.cpp @@ -51,7 +51,7 @@ Y_UNIT_TEST_SUITE(TTabletResolver) { { } void Bootstrap() { - ProxyId = MakeStateStorageProxyID(StateStorageGroupFromTabletID(TabletId)); + ProxyId = MakeStateStorageProxyID(); Send(ProxyId, new TEvStateStorage::TEvLookup(TabletId, 0, TEvStateStorage::TProxyOptions(TEvStateStorage::TProxyOptions::SigSync))); Become(&TThis::StateLookup); } diff --git a/ydb/core/tablet/tablet_sys.cpp b/ydb/core/tablet/tablet_sys.cpp index dfb540001395..439fb8c1452a 100644 --- a/ydb/core/tablet/tablet_sys.cpp +++ b/ydb/core/tablet/tablet_sys.cpp @@ -38,10 +38,6 @@ namespace { } -ui64 TTablet::StateStorageGroup() const { - return StateStorageGroupFromTabletID(Info->TabletID); -} - ui64 TTablet::TabletID() const { return Info->TabletID; } @@ -1899,7 +1895,7 @@ void TTablet::BootstrapFollower() { IntrospectionTrace.Reset(NTracing::CreateTrace(NTracing::ITrace::TypeSysTabletBootstrap)); } - StateStorageInfo.ProxyID = MakeStateStorageProxyID(StateStorageGroup()); + StateStorageInfo.ProxyID = MakeStateStorageProxyID(); Send(StateStorageInfo.ProxyID, new TEvStateStorage::TEvLookup(TabletID(), 0, TEvStateStorage::TProxyOptions(TEvStateStorage::TProxyOptions::SigAsync))); if (IntrospectionTrace) { IntrospectionTrace->Attach(MakeHolder(SuggestedGeneration, false, StateStorageInfo.ProxyID)); @@ -1918,7 +1914,7 @@ void TTablet::Bootstrap() { IntrospectionTrace.Reset(NTracing::CreateTrace(NTracing::ITrace::TypeSysTabletBootstrap)); } ReportTabletStateChange(TTabletStateInfo::Created); // useless? - StateStorageInfo.ProxyID = MakeStateStorageProxyID(StateStorageGroup()); + StateStorageInfo.ProxyID = MakeStateStorageProxyID(); Send(StateStorageInfo.ProxyID, new TEvStateStorage::TEvLookup(TabletID(), 0, TEvStateStorage::TProxyOptions(TEvStateStorage::TProxyOptions::SigAsync))); if (IntrospectionTrace) { IntrospectionTrace->Attach(MakeHolder(SuggestedGeneration, true, StateStorageInfo.ProxyID)); diff --git a/ydb/core/tablet/tablet_sys.h b/ydb/core/tablet/tablet_sys.h index 18e95dbb4849..8546ddf7a21b 100644 --- a/ydb/core/tablet/tablet_sys.h +++ b/ydb/core/tablet/tablet_sys.h @@ -251,7 +251,6 @@ class TTablet : public TActor { TString BlobStorageErrorReason; bool BlobStorageErrorReported = false; - ui64 StateStorageGroup() const; ui64 TabletID() const; void ReportTabletStateChange(ETabletState state); diff --git a/ydb/core/tablet_flat/datetime_ut.cpp b/ydb/core/tablet_flat/datetime_ut.cpp index 365410b67850..a2409a0a0296 100644 --- a/ydb/core/tablet_flat/datetime_ut.cpp +++ b/ydb/core/tablet_flat/datetime_ut.cpp @@ -347,7 +347,7 @@ Y_UNIT_TEST_SUITE(TFlatTableDatetime) { Env.GrabEdgeEventRethrow(handle); } - const ui32 Tablet = MakeTabletID(0, 0, 1); + const ui32 Tablet = MakeTabletID(false, 1); const TActorId Edge; }; diff --git a/ydb/core/tablet_flat/decimal_ut.cpp b/ydb/core/tablet_flat/decimal_ut.cpp index caa801279bc4..b9593574d303 100644 --- a/ydb/core/tablet_flat/decimal_ut.cpp +++ b/ydb/core/tablet_flat/decimal_ut.cpp @@ -419,7 +419,7 @@ Y_UNIT_TEST_SUITE(TFlatTableDecimals) { Env.GrabEdgeEventRethrow(handle); } - const ui32 Tablet = MakeTabletID(0, 0, 1); + const ui32 Tablet = MakeTabletID(false, 1); const TActorId Edge; }; diff --git a/ydb/core/tablet_flat/flat_executor_ut_common.h b/ydb/core/tablet_flat/flat_executor_ut_common.h index e95a8987e274..aaf2c3bc2678 100644 --- a/ydb/core/tablet_flat/flat_executor_ut_common.h +++ b/ydb/core/tablet_flat/flat_executor_ut_common.h @@ -123,7 +123,7 @@ namespace NTabletFlatExecutor { return pipeConfig; } - ui32 Tablet = MakeTabletID(0, 0, 1); + ui32 Tablet = MakeTabletID(false, 1); const TActorId Edge; }; diff --git a/ydb/core/tablet_flat/test/libs/exec/nanny.h b/ydb/core/tablet_flat/test/libs/exec/nanny.h index 94596fef0729..99f98fc9ad7a 100644 --- a/ydb/core/tablet_flat/test/libs/exec/nanny.h +++ b/ydb/core/tablet_flat/test/libs/exec/nanny.h @@ -194,7 +194,7 @@ namespace NFake { } private: - const ui64 MyId = MakeTabletID(0, 0, 1); + const ui64 MyId = MakeTabletID(false, 1); TAutoPtr Logger; TActorId Owner; TActorId Tablet; diff --git a/ydb/core/tablet_flat/test/libs/exec/runner.h b/ydb/core/tablet_flat/test/libs/exec/runner.h index d6fd55c042fd..9571e4d6bcb4 100644 --- a/ydb/core/tablet_flat/test/libs/exec/runner.h +++ b/ydb/core/tablet_flat/test/libs/exec/runner.h @@ -132,11 +132,10 @@ namespace NFake { void SetupStaticServices() { { - const auto replica = MakeStateStorageReplicaID(NodeId, 0, 0); + const auto replica = MakeStateStorageReplicaID(NodeId, 0); TIntrusivePtr info(new TStateStorageInfo()); - info->StateStorageGroup = 0; info->NToSelect = 1; info->Rings.resize(1); info->Rings[0].Replicas.push_back(replica); @@ -150,7 +149,7 @@ namespace NFake { { auto *actor = CreateStateStorageProxy(info, nullptr, nullptr); - AddService(MakeStateStorageProxyID(0), actor, TMailboxType::Revolving); + AddService(MakeStateStorageProxyID(), actor, TMailboxType::Revolving); } } diff --git a/ydb/core/tablet_flat/ut/ut_rename_table_column.cpp b/ydb/core/tablet_flat/ut/ut_rename_table_column.cpp index 46b3a856eeec..38ccc2761aa2 100644 --- a/ydb/core/tablet_flat/ut/ut_rename_table_column.cpp +++ b/ydb/core/tablet_flat/ut/ut_rename_table_column.cpp @@ -236,7 +236,7 @@ struct TEnv : public NFake::TRunner { return pipeConfig; } - const ui32 Tablet = MakeTabletID(0, 0, 1); + const ui32 Tablet = MakeTabletID(false, 1); const TActorId Edge; }; diff --git a/ydb/core/testlib/basics/appdata.cpp b/ydb/core/testlib/basics/appdata.cpp index f7de5bbf505c..b27ca91cac37 100644 --- a/ydb/core/testlib/basics/appdata.cpp +++ b/ydb/core/testlib/basics/appdata.cpp @@ -79,9 +79,9 @@ namespace NKikimr { Domains->AddDomain(domain); } - void TAppPrepare::AddHive(ui32 hiveUid, ui64 hive) + void TAppPrepare::AddHive(ui64 hive) { - Domains->AddHive(hiveUid, hive); + Domains->AddHive(hive); } void TAppPrepare::ClearDomainsAndHive() diff --git a/ydb/core/testlib/basics/appdata.h b/ydb/core/testlib/basics/appdata.h index 5f65f941dbdf..7da0b7a3f2d3 100644 --- a/ydb/core/testlib/basics/appdata.h +++ b/ydb/core/testlib/basics/appdata.h @@ -61,7 +61,7 @@ namespace NKikimr { NActors::TTestActorRuntime::TEgg Unwrap() noexcept; void AddDomain(TDomainsInfo::TDomain* domain); - void AddHive(ui32 hiveUid, ui64 hive); + void AddHive(ui64 hive); void ClearDomainsAndHive(); void SetChannels(TIntrusivePtr channels); void SetBSConf(NKikimrBlobStorage::TNodeWardenServiceSet config); diff --git a/ydb/core/testlib/basics/helpers.h b/ydb/core/testlib/basics/helpers.h index 96c9197e61b6..95452757940d 100644 --- a/ydb/core/testlib/basics/helpers.h +++ b/ydb/core/testlib/basics/helpers.h @@ -39,9 +39,8 @@ namespace NFake { NTabletPipe::TClientConfig GetPipeConfigWithRetries(); void SetupStateStorage(TTestActorRuntime& runtime, ui32 nodeIndex, - ui64 stateStorageGroup = 0, bool replicasOnFirstNode = false); - void SetupCustomStateStorage(TTestActorRuntime &runtime, ui32 NToSelect, - ui32 nrings, ui32 ringSize, ui64 stateStorageGroup); + bool replicasOnFirstNode = false); + void SetupCustomStateStorage(TTestActorRuntime &runtime, ui32 NToSelect, ui32 nrings, ui32 ringSize); void SetupBSNodeWarden(TTestActorRuntime& runtime, ui32 nodeIndex, TIntrusivePtr nodeWardenConfig); void SetupTabletResolver(TTestActorRuntime& runtime, ui32 nodeIndex); void SetupTabletPipePeNodeCaches(TTestActorRuntime& runtime, ui32 nodeIndex, bool forceFollowers = false); diff --git a/ydb/core/testlib/basics/services.cpp b/ydb/core/testlib/basics/services.cpp index 560ca56f68c0..9d98ea164acf 100644 --- a/ydb/core/testlib/basics/services.cpp +++ b/ydb/core/testlib/basics/services.cpp @@ -155,10 +155,9 @@ namespace NPDisk { } template - static TIntrusivePtr GenerateStateStorageInfo(const TActorId (&replicas)[N], ui64 stateStorageGroup) + static TIntrusivePtr GenerateStateStorageInfo(const TActorId (&replicas)[N]) { auto info = MakeIntrusive(); - info->StateStorageGroup = stateStorageGroup; info->NToSelect = N; info->Rings.resize(N); for (size_t i = 0; i < N; ++i) { @@ -174,7 +173,6 @@ namespace NPDisk { Y_ABORT_UNLESS(NToSelect <= nrings); auto info = MakeIntrusive(); - info->StateStorageGroup = 0; info->NToSelect = NToSelect; info->Rings.resize(nrings); @@ -190,11 +188,10 @@ namespace NPDisk { static TActorId MakeBoardReplicaID( const ui32 node, - const ui64 stateStorageGroup, const ui32 replicaIndex ) { char x[12] = { 's', 's', 'b' }; - x[3] = (char)stateStorageGroup; + x[3] = (char)1; memcpy(x + 5, &replicaIndex, sizeof(ui32)); return TActorId(node, TStringBuf(x, 12)); } @@ -203,25 +200,24 @@ namespace NPDisk { TTestActorRuntime &runtime, ui32 NToSelect, ui32 nrings, - ui32 ringSize, - ui64 stateStorageGroup) + ui32 ringSize) { TVector ssreplicas; for (size_t i = 0; i < nrings * ringSize; ++i) { - ssreplicas.push_back(MakeStateStorageReplicaID(runtime.GetNodeId(i), stateStorageGroup, i)); + ssreplicas.push_back(MakeStateStorageReplicaID(runtime.GetNodeId(i), i)); } TVector breplicas; for (size_t i = 0; i < nrings * ringSize; ++i) { - breplicas.push_back(MakeBoardReplicaID(runtime.GetNodeId(i), stateStorageGroup, i)); + breplicas.push_back(MakeBoardReplicaID(runtime.GetNodeId(i), i)); } TVector sbreplicas; for (size_t i = 0; i < nrings * ringSize; ++i) { - sbreplicas.push_back(MakeSchemeBoardReplicaID(runtime.GetNodeId(i), stateStorageGroup, i)); + sbreplicas.push_back(MakeSchemeBoardReplicaID(runtime.GetNodeId(i), i)); } - const TActorId ssproxy = MakeStateStorageProxyID(stateStorageGroup); + const TActorId ssproxy = MakeStateStorageProxyID(); auto ssInfo = GenerateStateStorageInfo(ssreplicas, NToSelect, nrings, ringSize); auto sbInfo = GenerateStateStorageInfo(sbreplicas, NToSelect, nrings, ringSize); @@ -244,31 +240,31 @@ namespace NPDisk { } - void SetupStateStorage(TTestActorRuntime& runtime, ui32 nodeIndex, ui64 stateStorageGroup, bool firstNode) + void SetupStateStorage(TTestActorRuntime& runtime, ui32 nodeIndex, bool firstNode) { const TActorId ssreplicas[3] = { - MakeStateStorageReplicaID(runtime.GetNodeId(0), stateStorageGroup, 0), - MakeStateStorageReplicaID(runtime.GetNodeId(0), stateStorageGroup, 1), - MakeStateStorageReplicaID(runtime.GetNodeId(0), stateStorageGroup, 2), + MakeStateStorageReplicaID(runtime.GetNodeId(0), 0), + MakeStateStorageReplicaID(runtime.GetNodeId(0), 1), + MakeStateStorageReplicaID(runtime.GetNodeId(0), 2), }; const TActorId breplicas[3] = { - MakeBoardReplicaID(runtime.GetNodeId(0), stateStorageGroup, 0), - MakeBoardReplicaID(runtime.GetNodeId(0), stateStorageGroup, 1), - MakeBoardReplicaID(runtime.GetNodeId(0), stateStorageGroup, 2), + MakeBoardReplicaID(runtime.GetNodeId(0), 0), + MakeBoardReplicaID(runtime.GetNodeId(0), 1), + MakeBoardReplicaID(runtime.GetNodeId(0), 2), }; const TActorId sbreplicas[3] = { - MakeSchemeBoardReplicaID(runtime.GetNodeId(0), stateStorageGroup, 0), - MakeSchemeBoardReplicaID(runtime.GetNodeId(0), stateStorageGroup, 1), - MakeSchemeBoardReplicaID(runtime.GetNodeId(0), stateStorageGroup, 2), + MakeSchemeBoardReplicaID(runtime.GetNodeId(0), 0), + MakeSchemeBoardReplicaID(runtime.GetNodeId(0), 1), + MakeSchemeBoardReplicaID(runtime.GetNodeId(0), 2), }; - const TActorId ssproxy = MakeStateStorageProxyID(stateStorageGroup); + const TActorId ssproxy = MakeStateStorageProxyID(); - auto ssInfo = GenerateStateStorageInfo(ssreplicas, stateStorageGroup); - auto sbInfo = GenerateStateStorageInfo(sbreplicas, stateStorageGroup); - auto bInfo = GenerateStateStorageInfo(breplicas, stateStorageGroup); + auto ssInfo = GenerateStateStorageInfo(ssreplicas); + auto sbInfo = GenerateStateStorageInfo(sbreplicas); + auto bInfo = GenerateStateStorageInfo(breplicas); if (!firstNode || nodeIndex == 0) { for (ui32 i = 0; i < 3; ++i) { @@ -285,17 +281,9 @@ namespace NPDisk { TActorSetupCmd(CreateStateStorageProxy(ssInfo.Get(), bInfo.Get(), sbInfo.Get()), TMailboxType::Revolving, 0), nodeIndex); } - static void SetupStateStorageGroups(TTestActorRuntime& runtime, ui32 nodeIndex, TAppPrepare& app) + static void SetupStateStorageGroups(TTestActorRuntime& runtime, ui32 nodeIndex) { - TSet stateStorageGroups; - for (auto it = app.Domains->Domains.begin(); it != app.Domains->Domains.end(); ++it) { - ui32 stateStorageGroup = it->second->DefaultStateStorageGroup; - if (stateStorageGroups.find(stateStorageGroup) == stateStorageGroups.end()) { - stateStorageGroups.insert(stateStorageGroup); - - SetupStateStorage(runtime, nodeIndex, stateStorageGroup, true); - } - } + SetupStateStorage(runtime, nodeIndex, true); } void SetupQuoterService(TTestActorRuntime& runtime, ui32 nodeIndex) @@ -332,13 +320,13 @@ namespace NPDisk { app.SetBSConf(std::move(bsConfig)); } - if (app.Domains->Domains.empty()) { + if (!app.Domains->Domain) { app.AddDomain(TDomainsInfo::TDomain::ConstructEmptyDomain("dc-1").Release()); - app.AddHive(0, 0); + app.AddHive(0); } for (ui32 nodeIndex = 0; nodeIndex < runtime.GetNodeCount(); ++nodeIndex) { - SetupStateStorageGroups(runtime, nodeIndex, app); + SetupStateStorageGroups(runtime, nodeIndex); NKikimrProto::TKeyConfig keyConfig; if (const auto it = app.Keys.find(nodeIndex); it != app.Keys.end()) { keyConfig = it->second; diff --git a/ydb/core/testlib/basics/storage.h b/ydb/core/testlib/basics/storage.h index f86117018adc..65b58a076fb1 100644 --- a/ydb/core/testlib/basics/storage.h +++ b/ydb/core/testlib/basics/storage.h @@ -120,8 +120,8 @@ namespace NKikimr { SubstGlobal(escapedPdiskPath, "\\", "\\\\"); TStringStream str; - for (const auto &it: domains.Domains) { - str << "AvailabilityDomains: " << it.second->DomainUid << Endl; + if (const auto& domain = domains.Domain) { + str << "AvailabilityDomains: " << domain->DomainUid << Endl; } str << "PDisks { NodeID: " << Runtime.GetNodeId(0) << " PDiskID: 1 PDiskGuid: " << PDiskGuid << " Path: \"" << escapedPdiskPath << "\"}" << Endl; diff --git a/ydb/core/testlib/tablet_helpers.cpp b/ydb/core/testlib/tablet_helpers.cpp index 2f1f64a81954..dea9f26c4d72 100644 --- a/ydb/core/testlib/tablet_helpers.cpp +++ b/ydb/core/testlib/tablet_helpers.cpp @@ -133,15 +133,12 @@ namespace NKikimr { } const auto& domainsInfo = app->Domains; - if (!domainsInfo || domainsInfo->Domains.size() == 0) { + if (!domainsInfo || !domainsInfo->Domain) { return; } - Y_ABORT_UNLESS(domainsInfo->Domains.size() == 1); - for (const auto &xpair : domainsInfo->Domains) { - const TDomainsInfo::TDomain *domain = xpair.second.Get(); - UseFakeTimeCast |= domain->Mediators.size() == 0; - } + const TDomainsInfo::TDomain *domain = domainsInfo->GetDomain(); + UseFakeTimeCast |= domain->Mediators.size() == 0; } void Birth(ui32 node) noexcept override @@ -670,9 +667,8 @@ namespace NKikimr { return prev; } - void SetupChannelProfiles(TAppPrepare &app, ui32 domainId, ui32 nchannels) { - Y_ABORT_UNLESS(app.Domains && app.Domains->Domains.contains(domainId)); - auto& poolKinds = app.Domains->GetDomain(domainId).StoragePoolTypes; + void SetupChannelProfiles(TAppPrepare &app, ui32 nchannels) { + auto& poolKinds = app.Domains->GetDomain()->StoragePoolTypes; Y_ABORT_UNLESS(!poolKinds.empty()); TIntrusivePtr channelProfiles = new TChannelProfiles; @@ -717,7 +713,7 @@ namespace NKikimr { app.SetChannels(std::move(channelProfiles)); } - void SetupBoxAndStoragePool(TTestActorRuntime &runtime, const TActorId& sender, ui32 domainId, ui32 nGroups) { + void SetupBoxAndStoragePool(TTestActorRuntime &runtime, const TActorId& sender, ui32 nGroups) { NTabletPipe::TClientConfig pipeConfig; pipeConfig.RetryPolicy = NTabletPipe::TClientRetryPolicy::WithRetries(); @@ -747,13 +743,13 @@ namespace NKikimr { host.SetHostConfigId(hostConfig.GetHostConfigId()); bsConfigureRequest->Record.MutableRequest()->AddCommand()->MutableDefineBox()->CopyFrom(boxConfig); - for (const auto& [kind, pool] : runtime.GetAppData().DomainsInfo->Domains[domainId]->StoragePoolTypes) { + for (const auto& [kind, pool] : runtime.GetAppData().DomainsInfo->GetDomain()->StoragePoolTypes) { NKikimrBlobStorage::TDefineStoragePool storagePool(pool); storagePool.SetNumGroups(nGroups); bsConfigureRequest->Record.MutableRequest()->AddCommand()->MutableDefineStoragePool()->CopyFrom(storagePool); } - runtime.SendToPipe(MakeBSControllerID(domainId), sender, bsConfigureRequest.Release(), 0, GetPipeConfigWithRetries()); + runtime.SendToPipe(MakeBSControllerID(), sender, bsConfigureRequest.Release(), 0, GetPipeConfigWithRetries()); TAutoPtr handleConfigureResponse; auto configureResponse = runtime.GrabEdgeEventRethrow(handleConfigureResponse); diff --git a/ydb/core/testlib/tablet_helpers.h b/ydb/core/testlib/tablet_helpers.h index 099d0bd74135..bd22bc27daf5 100644 --- a/ydb/core/testlib/tablet_helpers.h +++ b/ydb/core/testlib/tablet_helpers.h @@ -38,8 +38,8 @@ namespace NKikimr { } const TChannelsBindings DEFAULT_BINDED_CHANNELS = {GetDefaultChannelBind(), GetDefaultChannelBind(), GetDefaultChannelBind()}; - void SetupBoxAndStoragePool(TTestActorRuntime &runtime, const TActorId& sender, ui32 domainId = 0, ui32 nGroups = 1); - void SetupChannelProfiles(TAppPrepare &app, ui32 domainId = 0, ui32 nchannels = 3); + void SetupBoxAndStoragePool(TTestActorRuntime &runtime, const TActorId& sender, ui32 nGroups = 1); + void SetupChannelProfiles(TAppPrepare &app, ui32 nchannels = 3); TDomainsInfo::TDomain::TStoragePoolKinds DefaultPoolKinds(ui32 count = 1); i64 SetSplitMergePartCountLimit(TTestActorRuntime* runtime, i64 val); diff --git a/ydb/core/testlib/tenant_runtime.cpp b/ydb/core/testlib/tenant_runtime.cpp index 88ba8b75905c..f8e20417a2da 100644 --- a/ydb/core/testlib/tenant_runtime.cpp +++ b/ydb/core/testlib/tenant_runtime.cpp @@ -823,6 +823,9 @@ void TTenantTestRuntime::Setup(bool createTenantPools) app.ClearDomainsAndHive(); ui32 planResolution = 500; + + Y_ABORT_UNLESS(Config.Domains.size() == 1); + // Add domains info. for (ui32 i = 0; i < Config.Domains.size(); ++i) { auto &domain = Config.Domains[i]; @@ -837,12 +840,10 @@ void TTenantTestRuntime::Setup(bool createTenantPools) poolTypes["hdd-2"] = hddPool; poolTypes["hdd-3"] = hddPool; auto domainPtr = TDomainsInfo::TDomain::ConstructDomainWithExplicitTabletIds(domain.Name, i, domain.SchemeShardId, - i, i, TVector{i}, - i, TVector{i}, planResolution, - TVector{TDomainsInfo::MakeTxCoordinatorIDFixed(i, 1)}, - TVector{TDomainsInfo::MakeTxMediatorIDFixed(i, 1)}, - TVector{TDomainsInfo::MakeTxAllocatorIDFixed(i, 1)}, + TVector{TDomainsInfo::MakeTxCoordinatorIDFixed(1)}, + TVector{TDomainsInfo::MakeTxMediatorIDFixed(1)}, + TVector{TDomainsInfo::MakeTxAllocatorIDFixed(1)}, poolTypes); TVector ids = GetTxAllocatorTabletIds(); @@ -850,7 +851,7 @@ void TTenantTestRuntime::Setup(bool createTenantPools) SetTxAllocatorTabletIds(ids); app.AddDomain(domainPtr.Release()); - app.AddHive(i, Config.HiveId); + app.AddHive(Config.HiveId); } for (size_t i = 0; i< Config.Nodes.size(); ++i) { @@ -865,8 +866,7 @@ void TTenantTestRuntime::Setup(bool createTenantPools) Register(NTabletMonitoringProxy::CreateTabletMonitoringProxy()); } - for (auto &pr : GetAppData().DomainsInfo->Domains) { - auto &domain = pr.second; + if (const auto& domain = GetAppData().DomainsInfo->Domain) { for (auto id : domain->TxAllocators) { auto aid = CreateTestBootstrapper(*this, CreateTestTabletInfo(id, TTabletTypes::TxAllocator), &CreateTxAllocator); EnableScheduleForActor(aid, true); @@ -977,7 +977,7 @@ void TTenantTestRuntime::Setup(bool createTenantPools) // Create BS Controller. { - auto info = CreateTestTabletInfo(MakeBSControllerID(0), TTabletTypes::BSController); + auto info = CreateTestTabletInfo(MakeBSControllerID(), TTabletTypes::BSController); TActorId actorId = CreateTestBootstrapper(*this, info, [](const TActorId &tablet, TTabletStorageInfo *info) -> IActor* { //return new TFakeBSController(tablet, info); return CreateFlatBsController(tablet, info); @@ -1007,7 +1007,7 @@ void TTenantTestRuntime::Setup(bool createTenantPools) NTabletPipe::TClientConfig pipeConfig; pipeConfig.RetryPolicy = NTabletPipe::TClientRetryPolicy::WithRetries(); - SendToPipe(MakeBSControllerID(0), Sender, request.Release(), 0, pipeConfig); + SendToPipe(MakeBSControllerID(), Sender, request.Release(), 0, pipeConfig); auto reply2 = GrabEdgeEventRethrow(handle); UNIT_ASSERT_VALUES_EQUAL(reply2->Record.GetResponse().GetSuccess(), true); @@ -1052,7 +1052,7 @@ void TTenantTestRuntime::Setup(bool createTenantPools) // Create Console { - auto info = CreateTestTabletInfo(MakeConsoleID(0), TTabletTypes::Console, TErasureType::ErasureNone); + auto info = CreateTestTabletInfo(MakeConsoleID(), TTabletTypes::Console, TErasureType::ErasureNone); TActorId actorId = CreateTestBootstrapper(*this, info, [](const TActorId &tablet, TTabletStorageInfo *info) -> IActor* { return CreateConsole(tablet, info); }); @@ -1119,7 +1119,7 @@ void TTenantTestRuntime::Setup(bool createTenantPools) // Create Tenant Slot Broker { - auto info = CreateTestTabletInfo(MakeTenantSlotBrokerID(0), TTabletTypes::TenantSlotBroker, TErasureType::ErasureNone); + auto info = CreateTestTabletInfo(MakeTenantSlotBrokerID(), TTabletTypes::TenantSlotBroker, TErasureType::ErasureNone); TActorId actorId = CreateTestBootstrapper(*this, info, [&config=this->Config](const TActorId &tablet, TTabletStorageInfo *info) -> IActor* { if (config.FakeTenantSlotBroker) return new TFakeTenantSlotBroker(tablet, info); @@ -1157,12 +1157,12 @@ void TTenantTestRuntime::WaitForHiveState(const TVector status, ui32 nodeId) { - runtime.Send(new IEventHandle(MakeTenantPoolID(runtime.GetNodeId(nodeId), domain), + runtime.Send(new IEventHandle(MakeTenantPoolID(runtime.GetNodeId(nodeId)), runtime.Sender, new TEvTenantPool::TEvGetStatus)); TAutoPtr handle; diff --git a/ydb/core/testlib/tenant_runtime.h b/ydb/core/testlib/tenant_runtime.h index d7537a865679..0d10433cac0d 100644 --- a/ydb/core/testlib/tenant_runtime.h +++ b/ydb/core/testlib/tenant_runtime.h @@ -204,7 +204,7 @@ class TTenantTestRuntime : public TTestBasicRuntime { NKikimrTenantPool::TSlotStatus MakeSlotStatus(const TString &id, const TString &type, const TString &tenant, ui64 cpu, ui64 memory, ui64 network, const TString &label = ""); -void CheckTenantPoolStatus(TTenantTestRuntime &runtime, ui32 domain, +void CheckTenantPoolStatus(TTenantTestRuntime &runtime, THashMap status, ui32 nodeId = 0); } // namespace NKikimr diff --git a/ydb/core/testlib/test_client.cpp b/ydb/core/testlib/test_client.cpp index 60427d069068..d10f8d0c7e2e 100644 --- a/ydb/core/testlib/test_client.cpp +++ b/ydb/core/testlib/test_client.cpp @@ -155,14 +155,6 @@ namespace Tests { return freg.Release(); } - ui64 ChangeDomain(ui64 tabletId, ui32 domainUid) { - return MakeTabletID(StateStorageGroupFromTabletID(tabletId), domainUid, UniqPartFromTabletID(tabletId)); - } - - ui64 ChangeStateStorage(ui64 tabletId, ui32 ssUid) { - return MakeTabletID(ssUid, HiveUidFromTabletID(tabletId), UniqPartFromTabletID(tabletId)); - } - TServer::TServer(TServerSettings::TConstPtr settings, bool init) : Settings(settings) , UseStoragePools(!Settings->StoragePoolTypes.empty()) @@ -218,7 +210,7 @@ namespace Tests { SetupMessageBus(Settings->Port); SetupDomains(app); - app.AddHive(Settings->Domain, ChangeStateStorage(Hive, Settings->Domain)); + app.AddHive(ChangeStateStorage(Hive, Settings->Domain)); app.SetFnRegistry(Settings->FrFactory); app.SetFormatsFactory(Settings->Formats); @@ -226,7 +218,7 @@ namespace Tests { NKikHouse::RegisterFormat(*Settings->Formats); } - NKikimr::SetupChannelProfiles(app, Settings->Domain); + NKikimr::SetupChannelProfiles(app); Runtime->SetupMonitoring(); Runtime->SetLogBackend(Settings->LogBackend); @@ -338,8 +330,8 @@ namespace Tests { desc->Ssl = !options.SslData.Empty(); TVector rootDomains; - for (auto &domain : appData.DomainsInfo->Domains) { - rootDomains.emplace_back("/" + domain.second->Name); + if (const auto& domain = appData.DomainsInfo->Domain) { + rootDomains.emplace_back("/" + domain->Name); } desc->ServedDatabases.insert(desc->ServedDatabases.end(), rootDomains.begin(), rootDomains.end()); @@ -469,12 +461,10 @@ namespace Tests { planResolution = Settings->UseRealThreads ? 7 : 500; } auto domain = TDomainsInfo::TDomain::ConstructDomainWithExplicitTabletIds(Settings->DomainName, domainId, ChangeStateStorage(SchemeRoot, domainId), - domainId, domainId, TVector{domainId}, - domainId, TVector{domainId}, planResolution, - TVector{TDomainsInfo::MakeTxCoordinatorIDFixed(domainId, 1)}, - TVector{TDomainsInfo::MakeTxMediatorIDFixed(domainId, 1)}, - TVector{TDomainsInfo::MakeTxAllocatorIDFixed(domainId, 1)}, + TVector{TDomainsInfo::MakeTxCoordinatorIDFixed(1)}, + TVector{TDomainsInfo::MakeTxMediatorIDFixed(1)}, + TVector{TDomainsInfo::MakeTxAllocatorIDFixed(1)}, Settings->StoragePoolTypes); app.AddDomain(domain.Release()); } @@ -531,20 +521,20 @@ namespace Tests { void TServer::CreateBootstrapTablets() { const ui32 domainId = Settings->Domain; - Y_ABORT_UNLESS(TDomainsInfo::MakeTxAllocatorIDFixed(domainId, 1) == ChangeStateStorage(TxAllocator, domainId)); + Y_ABORT_UNLESS(TDomainsInfo::MakeTxAllocatorIDFixed(1) == ChangeStateStorage(TxAllocator, domainId)); CreateTestBootstrapper(*Runtime, CreateTestTabletInfo(ChangeStateStorage(TxAllocator, domainId), TTabletTypes::TxAllocator), &CreateTxAllocator); - Y_ABORT_UNLESS(TDomainsInfo::MakeTxCoordinatorIDFixed(domainId, 1) == ChangeStateStorage(Coordinator, domainId)); + Y_ABORT_UNLESS(TDomainsInfo::MakeTxCoordinatorIDFixed(1) == ChangeStateStorage(Coordinator, domainId)); CreateTestBootstrapper(*Runtime, CreateTestTabletInfo(ChangeStateStorage(Coordinator, domainId), TTabletTypes::Coordinator), &CreateFlatTxCoordinator); - Y_ABORT_UNLESS(TDomainsInfo::MakeTxMediatorIDFixed(domainId, 1) == ChangeStateStorage(Mediator, domainId)); + Y_ABORT_UNLESS(TDomainsInfo::MakeTxMediatorIDFixed(1) == ChangeStateStorage(Mediator, domainId)); CreateTestBootstrapper(*Runtime, CreateTestTabletInfo(ChangeStateStorage(Mediator, domainId), TTabletTypes::Mediator), &CreateTxMediator); CreateTestBootstrapper(*Runtime, CreateTestTabletInfo(ChangeStateStorage(SchemeRoot, domainId), TTabletTypes::SchemeShard), &CreateFlatTxSchemeShard); CreateTestBootstrapper(*Runtime, CreateTestTabletInfo(ChangeStateStorage(Hive, domainId), TTabletTypes::Hive), &CreateDefaultHive); - CreateTestBootstrapper(*Runtime, CreateTestTabletInfo(MakeBSControllerID(domainId), TTabletTypes::BSController), &CreateFlatBsController); - CreateTestBootstrapper(*Runtime, CreateTestTabletInfo(MakeTenantSlotBrokerID(domainId), TTabletTypes::TenantSlotBroker), &NTenantSlotBroker::CreateTenantSlotBroker); + CreateTestBootstrapper(*Runtime, CreateTestTabletInfo(MakeBSControllerID(), TTabletTypes::BSController), &CreateFlatBsController); + CreateTestBootstrapper(*Runtime, CreateTestTabletInfo(MakeTenantSlotBrokerID(), TTabletTypes::TenantSlotBroker), &NTenantSlotBroker::CreateTenantSlotBroker); if (Settings->EnableConsole) { - CreateTestBootstrapper(*Runtime, CreateTestTabletInfo(MakeConsoleID(domainId), TTabletTypes::Console), &NConsole::CreateConsole); + CreateTestBootstrapper(*Runtime, CreateTestTabletInfo(MakeConsoleID(), TTabletTypes::Console), &NConsole::CreateConsole); } - CreateTestBootstrapper(*Runtime, CreateTestTabletInfo(MakeNodeBrokerID(domainId), TTabletTypes::NodeBroker), &NNodeBroker::CreateNodeBroker); + CreateTestBootstrapper(*Runtime, CreateTestTabletInfo(MakeNodeBrokerID(), TTabletTypes::NodeBroker), &NNodeBroker::CreateNodeBroker); } void TServer::SetupStorage() { @@ -586,7 +576,7 @@ namespace Tests { } } - Runtime->SendToPipe(MakeBSControllerID(Settings->Domain), sender, bsConfigureRequest.Release(), 0, pipeConfig); + Runtime->SendToPipe(MakeBSControllerID(), sender, bsConfigureRequest.Release(), 0, pipeConfig); TAutoPtr handleConfigureResponse; auto configureResponse = Runtime->GrabEdgeEventRethrow(handleConfigureResponse); diff --git a/ydb/core/testlib/test_client.h b/ydb/core/testlib/test_client.h index cc8feb752abb..f33ea34ac126 100644 --- a/ydb/core/testlib/test_client.h +++ b/ydb/core/testlib/test_client.h @@ -78,10 +78,15 @@ namespace Tests { bool IsServerRedirected(); TServerSetup GetServerSetup(); - ui64 ChangeDomain(ui64 tabletId, ui32 domainUid); - ui64 ChangeStateStorage(ui64 tabletId, ui32 ssUid); - NMiniKQL::IFunctionRegistry* DefaultFrFactory(const NScheme::TTypeRegistry& typeRegistry); + inline ui64 ChangeDomain(ui64 tabletId, ui32 /*domainUid*/) { + return tabletId; + } + + inline ui64 ChangeStateStorage(ui64 tabletId, ui32 /*ssUid*/) { + return tabletId; + } + NMiniKQL::IFunctionRegistry* DefaultFrFactory(const NScheme::TTypeRegistry& typeRegistry); struct TServerSettings: public TThrRefBase, public TTestFeatureFlagsHolder { static constexpr ui64 BOX_ID = 999; diff --git a/ydb/core/tx/columnshard/columnshard_ut_common.cpp b/ydb/core/tx/columnshard/columnshard_ut_common.cpp index 407aed03b43d..6f4cdae71bd6 100644 --- a/ydb/core/tx/columnshard/columnshard_ut_common.cpp +++ b/ydb/core/tx/columnshard/columnshard_ut_common.cpp @@ -26,12 +26,10 @@ void TTester::Setup(TTestActorRuntime& runtime) { auto domain = TDomainsInfo::TDomain::ConstructDomainWithExplicitTabletIds( "dc-1", domainId, FAKE_SCHEMESHARD_TABLET_ID, - domainId, domainId, std::vector{domainId}, - domainId, std::vector{domainId}, planResolution, - std::vector{TDomainsInfo::MakeTxCoordinatorIDFixed(domainId, 1)}, + std::vector{TDomainsInfo::MakeTxCoordinatorIDFixed(1)}, std::vector{}, - std::vector{TDomainsInfo::MakeTxAllocatorIDFixed(domainId, 1)}); + std::vector{TDomainsInfo::MakeTxAllocatorIDFixed(1)}); TVector ids = runtime.GetTxAllocatorTabletIds(); ids.insert(ids.end(), domain->TxAllocators.begin(), domain->TxAllocators.end()); diff --git a/ydb/core/tx/coordinator/coordinator__init.cpp b/ydb/core/tx/coordinator/coordinator__init.cpp index b39ae86d054f..35cc40c3a706 100644 --- a/ydb/core/tx/coordinator/coordinator__init.cpp +++ b/ydb/core/tx/coordinator/coordinator__init.cpp @@ -145,7 +145,7 @@ struct TTxCoordinator::TTxInit : public TTransactionBase { LOG_INFO_S(ctx, NKikimrServices::TX_COORDINATOR, "tablet# " << Self->TabletID() << " CreateTxInit initialize himself"); - Self->DoConfiguration(*CreateDomainConfigurationFromStatic(appData, Self->TabletID()), ctx); + Self->DoConfiguration(*CreateDomainConfigurationFromStatic(appData), ctx); return; } diff --git a/ydb/core/tx/coordinator/coordinator__restore_params.cpp b/ydb/core/tx/coordinator/coordinator__restore_params.cpp index 008fe2e166dc..6086196b0c0e 100644 --- a/ydb/core/tx/coordinator/coordinator__restore_params.cpp +++ b/ydb/core/tx/coordinator/coordinator__restore_params.cpp @@ -105,11 +105,7 @@ class TTxCoordinator::TRestoreProcessingParamsActor }; bool TTxCoordinator::IsTabletInStaticDomain(TAppData* appData) { - const ui32 selfDomain = appData->DomainsInfo->GetDomainUidByTabletId(TabletID()); - Y_ABORT_UNLESS(selfDomain != appData->DomainsInfo->BadDomainId); - const auto& domain = appData->DomainsInfo->GetDomain(selfDomain); - - for (auto domainCoordinatorId: domain.Coordinators) { + for (auto domainCoordinatorId: appData->DomainsInfo->GetDomain()->Coordinators) { if (TabletID() == domainCoordinatorId) { return true; } @@ -124,7 +120,7 @@ void TTxCoordinator::RestoreProcessingParams(const TActorContext& ctx) { LOG_INFO_S(ctx, NKikimrServices::TX_COORDINATOR, "Coordinator# " << TabletID() << " restoring static processing params"); - DoConfiguration(*CreateDomainConfigurationFromStatic(appData, TabletID()), ctx); + DoConfiguration(*CreateDomainConfigurationFromStatic(appData), ctx); return; } diff --git a/ydb/core/tx/datashard/datashard__init.cpp b/ydb/core/tx/datashard/datashard__init.cpp index b00bb254ecdb..273e969b3d72 100644 --- a/ydb/core/tx/datashard/datashard__init.cpp +++ b/ydb/core/tx/datashard/datashard__init.cpp @@ -605,12 +605,8 @@ class TDataShard::TTxInitSchema : public TTransactionBase { LOAD_SYS_BYTES(db, Schema::Sys_SubDomainInfo, rawProcessingParams) if (rawProcessingParams.empty()) { - auto appdata = AppData(ctx); - const ui32 selfDomain = appdata->DomainsInfo->GetDomainUidByTabletId(Self->TabletID()); - Y_ABORT_UNLESS(selfDomain != appdata->DomainsInfo->BadDomainId); - const auto& domain = appdata->DomainsInfo->GetDomain(selfDomain); - - NKikimrSubDomains::TProcessingParams params = ExtractProcessingParams(domain); + auto *domain = AppData(ctx)->DomainsInfo->GetDomain(); + NKikimrSubDomains::TProcessingParams params = ExtractProcessingParams(*domain); LOG_DEBUG(ctx, NKikimrServices::TX_DATASHARD, "TxInitSchema.Execute Persist Sys_SubDomainInfo"); Self->PersistSys(db, Schema::Sys_SubDomainInfo, params.SerializeAsString()); } diff --git a/ydb/core/tx/datashard/ut_common/datashard_ut_common.cpp b/ydb/core/tx/datashard/ut_common/datashard_ut_common.cpp index 33cad64185bf..106912ee712e 100644 --- a/ydb/core/tx/datashard/ut_common/datashard_ut_common.cpp +++ b/ydb/core/tx/datashard/ut_common/datashard_ut_common.cpp @@ -44,15 +44,12 @@ void TTester::Setup(TTestActorRuntime& runtime, const TOptions& opts) { TAppPrepare app; - auto domain = TDomainsInfo::TDomain::ConstructDomainWithExplicitTabletIds( "dc-1", domainId, FAKE_SCHEMESHARD_TABLET_ID, - domainId, domainId, TVector{domainId}, - domainId, TVector{domainId}, planResolution, - TVector{TDomainsInfo::MakeTxCoordinatorIDFixed(domainId, 1)}, + TVector{TDomainsInfo::MakeTxCoordinatorIDFixed(1)}, TVector{}, - TVector{TDomainsInfo::MakeTxAllocatorIDFixed(domainId, 1)}); + TVector{TDomainsInfo::MakeTxAllocatorIDFixed(1)}); TVector ids = runtime.GetTxAllocatorTabletIds(); ids.insert(ids.end(), domain->TxAllocators.begin(), domain->TxAllocators.end()); diff --git a/ydb/core/tx/long_tx_service/long_tx_service_impl.cpp b/ydb/core/tx/long_tx_service/long_tx_service_impl.cpp index 1321a461b7cd..07edd6ec2a80 100644 --- a/ydb/core/tx/long_tx_service/long_tx_service_impl.cpp +++ b/ydb/core/tx/long_tx_service/long_tx_service_impl.cpp @@ -328,8 +328,8 @@ const TString& TLongTxServiceActor::GetDatabaseNameOrLegacyDefault(const TString Y_ABORT_UNLESS(appData); Y_ABORT_UNLESS(appData->DomainsInfo); // Usually there's exactly one domain - if (appData->EnableMvccSnapshotWithLegacyDomainRoot && Y_LIKELY(appData->DomainsInfo->Domains.size() == 1)) { - DefaultDatabaseName = appData->DomainsInfo->Domains.begin()->second->Name; + if (appData->EnableMvccSnapshotWithLegacyDomainRoot && Y_LIKELY(appData->DomainsInfo->Domain)) { + DefaultDatabaseName = appData->DomainsInfo->GetDomain()->Name; } } diff --git a/ydb/core/tx/mediator/mediator__init.cpp b/ydb/core/tx/mediator/mediator__init.cpp index 244ca7cba496..7ab9dc25af5a 100644 --- a/ydb/core/tx/mediator/mediator__init.cpp +++ b/ydb/core/tx/mediator/mediator__init.cpp @@ -48,11 +48,7 @@ struct TTxMediator::TTxInit : public TTransactionBase { } bool IsTabletInStaticDomain(const TAppData *appdata) { - const ui32 selfDomain = appdata->DomainsInfo->GetDomainUidByTabletId(Self->TabletID()); - Y_ABORT_UNLESS(selfDomain != appdata->DomainsInfo->BadDomainId); - const auto& domain = appdata->DomainsInfo->GetDomain(selfDomain); - - for (auto domainMediatorId: domain.Mediators) { + for (auto domainMediatorId: appdata->DomainsInfo->GetDomain()->Mediators) { if (Self->TabletID() == domainMediatorId) { return true; } @@ -80,7 +76,7 @@ struct TTxMediator::TTxInit : public TTransactionBase { LOG_INFO_S(ctx, NKikimrServices::TX_MEDIATOR, "tablet# " << Self->TabletID() << " CreateTxInit initialize himself"); - Self->DoConfigure(*CreateDomainConfigurationFromStatic(appData, Self->TabletID()), ctx); + Self->DoConfigure(*CreateDomainConfigurationFromStatic(appData), ctx); return; } diff --git a/ydb/core/tx/replication/service/service.cpp b/ydb/core/tx/replication/service/service.cpp index 50e24aea1236..35840dafb9c8 100644 --- a/ydb/core/tx/replication/service/service.cpp +++ b/ydb/core/tx/replication/service/service.cpp @@ -22,8 +22,7 @@ class TReplicationService: public TActorBootstrapped { } const auto boardPath = MakeDiscoveryPath(tenant); - const auto groupId = domainInfo->DefaultStateStorageGroup; - BoardPublisher = Register(CreateBoardPublishActor(boardPath, TString(), SelfId(), groupId, 0, true)); + BoardPublisher = Register(CreateBoardPublishActor(boardPath, TString(), SelfId(), 0, true)); } void PassAway() override { diff --git a/ydb/core/tx/scheme_board/cache.cpp b/ydb/core/tx/scheme_board/cache.cpp index 96443917beb6..26d10a09057c 100644 --- a/ydb/core/tx/scheme_board/cache.cpp +++ b/ydb/core/tx/scheme_board/cache.cpp @@ -541,11 +541,7 @@ namespace { << ", tabletId# " << tabletId << ", domainOwnerId# " << domainOwnerId); - const auto& domains = *AppData()->DomainsInfo; - const ui32 domainId = domains.GetDomainUidByTabletId(tabletId); - const ui32 boardSSId = domains.GetDomain(domainId).DefaultSchemeBoardGroup; - - return Register(CreateSchemeBoardSubscriber(SelfId(), path, boardSSId, domainOwnerId)); + return Register(CreateSchemeBoardSubscriber(SelfId(), path, domainOwnerId)); } TActorId CreateSubscriber(const TPathId& pathId) const { @@ -2156,25 +2152,17 @@ class TSchemeCache: public TMonitorableActor { } template - TSubscriber CreateSubscriber(const TPath& path, const ui64 tabletId, const ui64 domainOwnerId) const { + TSubscriber CreateSubscriber(const TPath& path, const ui64 domainOwnerId) const { SBC_LOG_T("Create subscriber" << ": self# " << SelfId() << ", path# " << path << ", domainOwnerId# " << domainOwnerId); - const auto& domains = *AppData()->DomainsInfo; - const ui32 domainId = domains.GetDomainUidByTabletId(tabletId); - const ui32 boardSSId = domains.GetDomain(domainId).DefaultSchemeBoardGroup; - return TSubscriber( - Register(CreateSchemeBoardSubscriber(SelfId(), path, boardSSId, domainOwnerId)), domainOwnerId, path + Register(CreateSchemeBoardSubscriber(SelfId(), path, domainOwnerId)), domainOwnerId, path ); } - TSubscriber CreateSubscriber(const TPathId& pathId, const ui64 domainOwnerId) const { - return CreateSubscriber(pathId, pathId.OwnerId, domainOwnerId); - } - template void HandleEntry(TContextPtr context, TEntry& entry, size_t index, TPathExtractor pathExtractor, TTabletIdExtractor tabletIdExtractor) @@ -2188,8 +2176,7 @@ class TSchemeCache: public TMonitorableActor { case EPathType::RegularPath: { const ui64 tabletId = tabletIdExtractor(entry); - const ui32 domainId = AppData()->DomainsInfo->GetDomainUidByTabletId(tabletId); - if (tabletId == ui64(NSchemeShard::InvalidTabletId) || domainId == TDomainsInfo::BadDomainId) { + if (tabletId == ui64(NSchemeShard::InvalidTabletId)) { return SetRootUnknown(context.Get(), entry); } @@ -2217,7 +2204,7 @@ class TSchemeCache: public TMonitorableActor { domainOwnerId = tabletId; } - cacheItem = &Cache.Upsert(path, TCacheItem(this, CreateSubscriber(path, tabletId, domainOwnerId), false)); + cacheItem = &Cache.Upsert(path, TCacheItem(this, CreateSubscriber(path, domainOwnerId), false)); break; } case EPathType::SysPath: @@ -2275,7 +2262,7 @@ class TSchemeCache: public TMonitorableActor { } if (!byPath) { - TSubscriber subscriber = CreateSubscriber(notifyPath, notifyPathId.OwnerId, byPathId->GetSubcriber().DomainOwnerId); + TSubscriber subscriber = CreateSubscriber(notifyPath, byPathId->GetSubcriber().DomainOwnerId); return &Cache.Upsert(notifyPath, notifyPathId, TCacheItem(this, subscriber, false)); } diff --git a/ydb/core/tx/scheme_board/load_test.cpp b/ydb/core/tx/scheme_board/load_test.cpp index 1e2b0f6a88f3..68ca4d1f4b31 100644 --- a/ydb/core/tx/scheme_board/load_test.cpp +++ b/ydb/core/tx/scheme_board/load_test.cpp @@ -183,18 +183,16 @@ class TLoadProducer: public TActorBootstrapped { } void Boot() { - const TActorId proxy = MakeStateStorageProxyID(StateStorageGroupFromTabletID(Owner)); + const TActorId proxy = MakeStateStorageProxyID(); Send(proxy, new TEvStateStorage::TEvListSchemeBoard(), IEventHandle::FlagTrackDelivery); Become(&TThis::StateBoot); } void Populate() { - const ui32 ssId = StateStorageGroupFromTabletID(Owner); - Descriptions = GenerateDescriptions(Owner, Config, NextPathId); Populator = Register(CreateSchemeBoardPopulator( - Owner, Max(), ssId, Descriptions, NextPathId + Owner, Max(), Descriptions, NextPathId )); TPathId pathId(Owner, NextPathId - 1); @@ -203,7 +201,7 @@ class TLoadProducer: public TActorBootstrapped { // subscriber will help us to know when sync is completed Subscriber = Register(CreateSchemeBoardSubscriber( - SelfId(), topPath, ssId, + SelfId(), topPath, ESchemeBoardSubscriberDeletionPolicy::Majority )); @@ -324,10 +322,9 @@ class TLoadProducer: public TActorBootstrapped { class TLoadConsumer: public TActorBootstrapped { void Subscribe(const TPathId& pathId) { - const ui32 ssId = StateStorageGroupFromTabletID(Owner); for (ui32 i = 0; i < Config.SubscriberMulti; ++i) { const TActorId subscriber = Register(CreateSchemeBoardSubscriber( - SelfId(), pathId, ssId, + SelfId(), pathId, ESchemeBoardSubscriberDeletionPolicy::Majority )); diff --git a/ydb/core/tx/scheme_board/monitoring.cpp b/ydb/core/tx/scheme_board/monitoring.cpp index 83c4deaba1cf..3e7dc418b283 100644 --- a/ydb/core/tx/scheme_board/monitoring.cpp +++ b/ydb/core/tx/scheme_board/monitoring.cpp @@ -1056,14 +1056,7 @@ class TMonitoring: public TActorBootstrapped { } static TActorId MakeStateStorageProxyId() { - const auto& domains = AppData()->DomainsInfo->Domains; - Y_ABORT_UNLESS(domains.size() <= 1); - - for (const auto& domain : domains) { - return NKikimr::MakeStateStorageProxyID(domain.second->DefaultSchemeBoardGroup); - } - - Y_ABORT("unreachable"); + return NKikimr::MakeStateStorageProxyID(); } template diff --git a/ydb/core/tx/scheme_board/populator.cpp b/ydb/core/tx/scheme_board/populator.cpp index c0a25fc039dc..a1600e851865 100644 --- a/ydb/core/tx/scheme_board/populator.cpp +++ b/ydb/core/tx/scheme_board/populator.cpp @@ -756,8 +756,7 @@ class TPopulator: public TMonitorableActor { const auto& info = ev->Get()->Info; if (!info) { - SBP_LOG_E("Publish on unconfigured SchemeBoard" - << ": StateStorage group# " << StateStorageGroup); + SBP_LOG_E("Publish on unconfigured SchemeBoard"); Become(&TThis::StateCalm); return; } @@ -843,8 +842,7 @@ class TPopulator: public TMonitorableActor { } void HandleUndelivered() { - SBP_LOG_E("Publish on unavailable SchemeBoard" - << ": StateStorage group# " << StateStorageGroup); + SBP_LOG_E("Publish on unavailable SchemeBoard"); Become(&TThis::StateCalm); } @@ -871,12 +869,10 @@ class TPopulator: public TMonitorableActor { explicit TPopulator( const ui64 owner, const ui64 generation, - const ui32 ssId, TMap descriptions, const ui64 maxPathId) : Owner(owner) , Generation(generation) - , StateStorageGroup(ssId) , Descriptions(std::move(descriptions)) , MaxPathId(TPathId(owner, maxPathId)) { @@ -885,7 +881,7 @@ class TPopulator: public TMonitorableActor { void Bootstrap() { TMonitorableActor::Bootstrap(); - const TActorId proxy = MakeStateStorageProxyID(StateStorageGroup); + const TActorId proxy = MakeStateStorageProxyID(); Send(proxy, new TEvStateStorage::TEvListSchemeBoard(), IEventHandle::FlagTrackDelivery); Become(&TThis::StateResolve); } @@ -931,7 +927,6 @@ class TPopulator: public TMonitorableActor { private: const ui64 Owner; const ui64 Generation; - const ui64 StateStorageGroup; TMap Descriptions; TPathId MaxPathId; @@ -957,11 +952,10 @@ class TPopulator: public TMonitorableActor { IActor* CreateSchemeBoardPopulator( const ui64 owner, const ui64 generation, - const ui32 ssId, TMap descriptions, const ui64 maxPathId ) { - return new NSchemeBoard::TPopulator(owner, generation, ssId, std::move(descriptions), maxPathId); + return new NSchemeBoard::TPopulator(owner, generation, std::move(descriptions), maxPathId); } } // NKikimr diff --git a/ydb/core/tx/scheme_board/populator.h b/ydb/core/tx/scheme_board/populator.h index ff0b4cead4b0..cdf8642cf929 100644 --- a/ydb/core/tx/scheme_board/populator.h +++ b/ydb/core/tx/scheme_board/populator.h @@ -12,7 +12,6 @@ namespace NKikimr { IActor* CreateSchemeBoardPopulator( const ui64 owner, const ui64 generation, - const ui32 schemeBoardSSId, TMap descriptions, const ui64 maxPathId ); diff --git a/ydb/core/tx/scheme_board/replica.h b/ydb/core/tx/scheme_board/replica.h index a626fea2a1e6..368b46d78ccc 100644 --- a/ydb/core/tx/scheme_board/replica.h +++ b/ydb/core/tx/scheme_board/replica.h @@ -9,11 +9,10 @@ namespace NKikimr { // same as MakeStateStorageReplicaID inline TActorId MakeSchemeBoardReplicaID( const ui32 node, - const ui64 stateStorageGroup, const ui32 replicaIndex ) { char x[12] = { 's', 'b', 's' }; - x[3] = (char)stateStorageGroup; + x[3] = (char)1; memcpy(x + 5, &replicaIndex, sizeof(ui32)); return TActorId(node, TStringBuf(x, 12)); } diff --git a/ydb/core/tx/scheme_board/subscriber.cpp b/ydb/core/tx/scheme_board/subscriber.cpp index 76264b385a60..91bb39d3be29 100644 --- a/ydb/core/tx/scheme_board/subscriber.cpp +++ b/ydb/core/tx/scheme_board/subscriber.cpp @@ -877,8 +877,7 @@ class TSubscriber: public TMonitorableActor { const auto& replicas = ev->Get()->Replicas; if (replicas.empty()) { - SBS_LOG_E("Subscribe on unconfigured SchemeBoard" - << ": StateStorage group# " << StateStorageGroup); + SBS_LOG_E("Subscribe on unconfigured SchemeBoard"); this->Become(&TDerived::StateCalm); return; } @@ -938,8 +937,7 @@ class TSubscriber: public TMonitorableActor { } void HandleUndelivered() { - SBS_LOG_E("Subscribe on unavailable SchemeBoard" - << ": StateStorage group# " << StateStorageGroup); + SBS_LOG_E("Subscribe on unavailable SchemeBoard"); this->Become(&TDerived::StateCalm); } @@ -970,11 +968,9 @@ class TSubscriber: public TMonitorableActor { explicit TSubscriber( const TActorId& owner, const TPath& path, - const ui64 stateStorageGroup, const ui64 domainOwnerId) : Owner(owner) , Path(path) - , StateStorageGroup(stateStorageGroup) , DomainOwnerId(domainOwnerId) , DelayedSyncRequest(0) , CurrentSyncRequest(0) @@ -984,7 +980,7 @@ class TSubscriber: public TMonitorableActor { void Bootstrap(const TActorContext&) { TMonitorableActor::Bootstrap(); - const TActorId proxy = MakeStateStorageProxyID(StateStorageGroup); + const TActorId proxy = MakeStateStorageProxyID(); this->Send(proxy, new TEvStateStorage::TEvResolveSchemeBoard(Path), IEventHandle::FlagTrackDelivery); this->Become(&TDerived::StateResolve); } @@ -1027,7 +1023,6 @@ class TSubscriber: public TMonitorableActor { private: const TActorId Owner; const TPath Path; - const ui64 StateStorageGroup; const ui64 DomainOwnerId; TSet Proxies; @@ -1058,50 +1053,43 @@ IActor* CreateSchemeBoardSubscriber( const TActorId& owner, const TString& path ) { - auto& domains = AppData()->DomainsInfo->Domains; - Y_ABORT_UNLESS(!domains.empty()); - auto& domain = domains.begin()->second; - ui32 schemeBoardGroup = domain->DefaultSchemeBoardGroup; + auto *domain = AppData()->DomainsInfo->GetDomain(); ui64 domainOwnerId = domain->SchemeRoot; - return CreateSchemeBoardSubscriber(owner, path, schemeBoardGroup, domainOwnerId); + return CreateSchemeBoardSubscriber(owner, path, domainOwnerId); } IActor* CreateSchemeBoardSubscriber( const TActorId& owner, const TString& path, - const ui64 stateStorageGroup, const ui64 domainOwnerId ) { - return new NSchemeBoard::TSubscriberByPath(owner, path, stateStorageGroup, domainOwnerId); + return new NSchemeBoard::TSubscriberByPath(owner, path, domainOwnerId); } IActor* CreateSchemeBoardSubscriber( const TActorId& owner, const TPathId& pathId, - const ui64 stateStorageGroup, const ui64 domainOwnerId ) { - return new NSchemeBoard::TSubscriberByPathId(owner, pathId, stateStorageGroup, domainOwnerId); + return new NSchemeBoard::TSubscriberByPathId(owner, pathId, domainOwnerId); } IActor* CreateSchemeBoardSubscriber( const TActorId& owner, const TString& path, - const ui64 stateStorageGroup, const EDeletionPolicy deletionPolicy ) { Y_UNUSED(deletionPolicy); - return new NSchemeBoard::TSubscriberByPath(owner, path, stateStorageGroup, 0); + return new NSchemeBoard::TSubscriberByPath(owner, path, 0); } IActor* CreateSchemeBoardSubscriber( const TActorId& owner, const TPathId& pathId, - const ui64 stateStorageGroup, const EDeletionPolicy deletionPolicy ) { Y_UNUSED(deletionPolicy); - return new NSchemeBoard::TSubscriberByPathId(owner, pathId, stateStorageGroup, 0); + return new NSchemeBoard::TSubscriberByPathId(owner, pathId, 0); } } // NKikimr diff --git a/ydb/core/tx/scheme_board/subscriber.h b/ydb/core/tx/scheme_board/subscriber.h index e531dd8d1236..f6caf8e9900b 100644 --- a/ydb/core/tx/scheme_board/subscriber.h +++ b/ydb/core/tx/scheme_board/subscriber.h @@ -16,14 +16,12 @@ IActor* CreateSchemeBoardSubscriber( IActor* CreateSchemeBoardSubscriber( const TActorId& owner, const TString& path, - const ui64 stateStorageGroup, const ui64 domainOwnerId ); IActor* CreateSchemeBoardSubscriber( const TActorId& owner, const TPathId& pathId, - const ui64 stateStorageGroup, const ui64 domainOwnerId ); @@ -37,14 +35,12 @@ enum class ESchemeBoardSubscriberDeletionPolicy { IActor* CreateSchemeBoardSubscriber( const TActorId& owner, const TString& path, - const ui64 stateStorageGroup, const ESchemeBoardSubscriberDeletionPolicy deletionPolicy ); IActor* CreateSchemeBoardSubscriber( const TActorId& owner, const TPathId& pathId, - const ui64 stateStorageGroup, const ESchemeBoardSubscriberDeletionPolicy deletionPolicy ); diff --git a/ydb/core/tx/scheme_board/subscriber_ut.cpp b/ydb/core/tx/scheme_board/subscriber_ut.cpp index 4a33a9f5ab00..75dca72eafd3 100644 --- a/ydb/core/tx/scheme_board/subscriber_ut.cpp +++ b/ydb/core/tx/scheme_board/subscriber_ut.cpp @@ -19,7 +19,7 @@ namespace NSchemeBoard { class TSubscriberTest: public NUnitTest::TTestBase { TVector ResolveReplicas() { - const TActorId proxy = MakeStateStorageProxyID(0); + const TActorId proxy = MakeStateStorageProxyID(); const TActorId edge = Context->AllocateEdgeActor(); Context->Send(proxy, edge, new TEvStateStorage::TEvListSchemeBoard()); @@ -126,7 +126,7 @@ void TSubscriberTest::NotifyDelete() { void TSubscriberTest::StrongNotificationAfterCommit() { const TActorId edge = Context->AllocateEdgeActor(); - Context->CreateSubscriber(edge, "path", 0, 1, false); + Context->CreateSubscriber(edge, "path", 1, false); { auto ev = Context->GrabEdgeEvent(edge); UNIT_ASSERT(ev->Get()); @@ -162,7 +162,7 @@ void TSubscriberTest::InvalidNotification() { void TSubscriberTest::ReconnectOnFailure() { const TActorId edge = Context->AllocateEdgeActor(1); - Context->CreateSubscriber(edge, "path", 0, 1, true, 1); + Context->CreateSubscriber(edge, "path", 1, true, 1); Context->Disconnect(0, 1); Context->Connect(0, 1); @@ -251,7 +251,7 @@ void TSubscriberTest::SyncWithOutdatedReplica() { class TSubscriberCombinationsTest: public NUnitTest::TTestBase { TVector ResolveReplicas(TTestContext& context) { - const TActorId proxy = MakeStateStorageProxyID(0); + const TActorId proxy = MakeStateStorageProxyID(); const TActorId edge = context.AllocateEdgeActor(); context.Send(proxy, edge, new TEvStateStorage::TEvListSchemeBoard()); diff --git a/ydb/core/tx/scheme_board/ut_helpers.h b/ydb/core/tx/scheme_board/ut_helpers.h index 1def7912f36a..e3c1f51fc35c 100644 --- a/ydb/core/tx/scheme_board/ut_helpers.h +++ b/ydb/core/tx/scheme_board/ut_helpers.h @@ -132,13 +132,12 @@ class TTestContext: public TTestBasicRuntime { TActorId CreateSubscriber( const TActorId& owner, const TPath& path, - ui64 stateStorageGroup = 0, ui64 domainOwnerId = 1, bool grabResponse = true, ui32 nodeIndex = 0 ) { const TActorId subscriber = Register( - CreateSchemeBoardSubscriber(owner, path, stateStorageGroup, domainOwnerId), nodeIndex + CreateSchemeBoardSubscriber(owner, path, domainOwnerId), nodeIndex ); EnableScheduleForActor(subscriber, true); @@ -153,12 +152,11 @@ class TTestContext: public TTestBasicRuntime { TActorId CreateSubscriber( const TActorId& owner, const TPath& path, - ui64 stateStorageGroup = 0, ui64 domainOwnerId = 1, ui32 nodeIndex = 0 ) { return CreateSubscriber( - owner, path, stateStorageGroup, domainOwnerId, false, nodeIndex + owner, path, domainOwnerId, false, nodeIndex ); } @@ -170,7 +168,6 @@ class TTestWithSchemeshard: public NUnitTest::TTestBase { TAppPrepare& app, const TString& name, ui32 domainUid, - ui32 stateStorageGroup, ui64 hiveTabletId, ui64 schemeshardTabletId ) { @@ -178,12 +175,10 @@ class TTestWithSchemeshard: public NUnitTest::TTestBase { ui32 planResolution = 50; auto domain = TDomainsInfo::TDomain::ConstructDomainWithExplicitTabletIds( name, domainUid, schemeshardTabletId, - stateStorageGroup, stateStorageGroup, TVector{stateStorageGroup}, - domainUid, TVector{domainUid}, planResolution, - TVector{TDomainsInfo::MakeTxCoordinatorIDFixed(domainUid, 1)}, + TVector{TDomainsInfo::MakeTxCoordinatorIDFixed(1)}, TVector{}, - TVector{TDomainsInfo::MakeTxAllocatorIDFixed(domainUid, 1)}, + TVector{TDomainsInfo::MakeTxAllocatorIDFixed(1)}, DefaultPoolKinds(2) ); @@ -192,7 +187,7 @@ class TTestWithSchemeshard: public NUnitTest::TTestBase { runtime.SetTxAllocatorTabletIds(ids); app.AddDomain(domain.Release()); - app.AddHive(domainUid, hiveTabletId); + app.AddHive(hiveTabletId); } static void SetupRuntime(TTestActorRuntime& runtime) { @@ -201,8 +196,8 @@ class TTestWithSchemeshard: public NUnitTest::TTestBase { } TAppPrepare app; - AddDomain(runtime, app, "Root", 0, 0, TTestTxConfig::Hive, TTestTxConfig::SchemeShard); - SetupChannelProfiles(app, 0, 1); + AddDomain(runtime, app, "Root", 0, TTestTxConfig::Hive, TTestTxConfig::SchemeShard); + SetupChannelProfiles(app, 1); SetupTabletServices(runtime, &app, true); } diff --git a/ydb/core/tx/scheme_cache/scheme_cache.cpp b/ydb/core/tx/scheme_cache/scheme_cache.cpp index 2a7bbaf541b2..67caca5044a0 100644 --- a/ydb/core/tx/scheme_cache/scheme_cache.cpp +++ b/ydb/core/tx/scheme_cache/scheme_cache.cpp @@ -14,14 +14,7 @@ TSchemeCacheConfig::TSchemeCacheConfig(const TAppData* appData, ::NMonitoring::T { Y_ABORT_UNLESS(appData); Y_ABORT_UNLESS(appData->DomainsInfo); - - for (const auto& [_, domain] : appData->DomainsInfo->Domains) { - Y_ABORT_UNLESS(domain); - - if (!domain->SchemeRoot) { - continue; - } - + if (const auto& domain = appData->DomainsInfo->Domain; domain && domain->SchemeRoot) { Roots.emplace_back(domain->DomainRootTag(), domain->SchemeRoot, domain->Name); } } diff --git a/ydb/core/tx/schemeshard/schemeshard__init_populator.cpp b/ydb/core/tx/schemeshard/schemeshard__init_populator.cpp index aeda8d0aa0cf..cd2196d4035d 100644 --- a/ydb/core/tx/schemeshard/schemeshard__init_populator.cpp +++ b/ydb/core/tx/schemeshard/schemeshard__init_populator.cpp @@ -57,12 +57,9 @@ struct TSchemeShard::TTxInitPopulator : public TTransactionBase { void Complete(const TActorContext& ctx) override { const ui64 tabletId = Self->TabletID(); - const auto &domains = *AppData()->DomainsInfo; - const ui32 domainId = domains.GetDomainUidByTabletId(tabletId); - const ui32 boardSSId = domains.GetDomain(domainId).DefaultSchemeBoardGroup; IActor* populator = CreateSchemeBoardPopulator( - tabletId, Self->Generation(), boardSSId, + tabletId, Self->Generation(), std::move(Descriptions), Self->NextLocalPathId ); diff --git a/ydb/core/tx/schemeshard/schemeshard_impl.cpp b/ydb/core/tx/schemeshard/schemeshard_impl.cpp index fad1fc55ae99..4b2aa7eea12d 100644 --- a/ydb/core/tx/schemeshard/schemeshard_impl.cpp +++ b/ydb/core/tx/schemeshard/schemeshard_impl.cpp @@ -3852,15 +3852,7 @@ void TSchemeShard::PersistRemovePublishingPath(NIceDb::TNiceDb& db, TTxId txId, } TTabletId TSchemeShard::GetGlobalHive(const TActorContext& ctx) const { - auto domainsInfo = AppData(ctx)->DomainsInfo; - - ui32 domainUid = domainsInfo->GetDomainUidByTabletId(TabletID()); - auto domain = domainsInfo->GetDomain(domainUid); - - const ui32 hiveIdx = Max(); - ui32 hiveUid = domain.GetHiveUidByIdx(hiveIdx); - - return TTabletId(domainsInfo->GetHive(hiveUid)); + return TTabletId(AppData(ctx)->DomainsInfo->GetHive()); } TShardIdx TSchemeShard::GetShardIdx(TTabletId tabletId) const { @@ -4215,14 +4207,7 @@ TSchemeShard::TSchemeShard(const TActorId &tablet, TTabletStorageInfo *info) } const TDomainsInfo::TDomain& TSchemeShard::GetDomainDescription(const TActorContext &ctx) const { - auto appdata = AppData(ctx); - Y_ABORT_UNLESS(appdata); - - const ui32 selfDomain = appdata->DomainsInfo->GetDomainUidByTabletId(TabletID()); - Y_ABORT_UNLESS(selfDomain != appdata->DomainsInfo->BadDomainId); - const auto& domain = appdata->DomainsInfo->GetDomain(selfDomain); - - return domain; + return *AppData(ctx)->DomainsInfo->GetDomain(); } const NKikimrConfig::TDomainsConfig& TSchemeShard::GetDomainsConfig() { @@ -4310,8 +4295,7 @@ void TSchemeShard::OnTabletDead(TEvTablet::TEvTabletDead::TPtr &ev, const TActor static TVector CollectTxAllocators(const TAppData *appData) { TVector allocators; - for (auto it: appData->DomainsInfo->Domains) { - auto &domain = it.second; + if (const auto& domain = appData->DomainsInfo->Domain) { for (auto tabletId: domain->TxAllocators) { allocators.push_back(tabletId); } diff --git a/ydb/core/tx/schemeshard/ut_helpers/test_env.cpp b/ydb/core/tx/schemeshard/ut_helpers/test_env.cpp index b7b02714e2a4..d4c7a1db3bea 100644 --- a/ydb/core/tx/schemeshard/ut_helpers/test_env.cpp +++ b/ydb/core/tx/schemeshard/ut_helpers/test_env.cpp @@ -574,10 +574,10 @@ NSchemeShardUT_Private::TTestEnv::TTestEnv(TTestActorRuntime& runtime, const TTe app.AddSystemBackupSID(sid); } - AddDomain(runtime, app, TTestTxConfig::DomainUid, 0, hive, schemeRoot); + AddDomain(runtime, app, TTestTxConfig::DomainUid, hive, schemeRoot); SetupLogging(runtime); - SetupChannelProfiles(app, TTestTxConfig::DomainUid, ChannelsCount); + SetupChannelProfiles(app, ChannelsCount); for (ui32 node = 0; node < runtime.GetNodeCount(); ++node) { SetupSchemeCache(runtime, node, app.Domains->GetDomain(TTestTxConfig::DomainUid).Name); @@ -692,17 +692,15 @@ void NSchemeShardUT_Private::TTestEnv::SetupLogging(TTestActorRuntime &runtime) } } -void NSchemeShardUT_Private::TTestEnv::AddDomain(TTestActorRuntime &runtime, TAppPrepare &app, ui32 domainUid, ui32 ssId, ui64 hive, ui64 schemeRoot) { +void NSchemeShardUT_Private::TTestEnv::AddDomain(TTestActorRuntime &runtime, TAppPrepare &app, ui32 domainUid, ui64 hive, ui64 schemeRoot) { app.ClearDomainsAndHive(); ui32 planResolution = 50; auto domain = TDomainsInfo::TDomain::ConstructDomainWithExplicitTabletIds( "MyRoot", domainUid, schemeRoot, - ssId, ssId, TVector{ssId}, - domainUid, TVector{domainUid}, planResolution, - TVector{TDomainsInfo::MakeTxCoordinatorIDFixed(domainUid, 1)}, + TVector{TDomainsInfo::MakeTxCoordinatorIDFixed(1)}, TVector{}, - TVector{TDomainsInfo::MakeTxAllocatorIDFixed(domainUid, 1)}, + TVector{TDomainsInfo::MakeTxAllocatorIDFixed(1)}, DefaultPoolKinds(2)); TVector ids = runtime.GetTxAllocatorTabletIds(); @@ -710,7 +708,7 @@ void NSchemeShardUT_Private::TTestEnv::AddDomain(TTestActorRuntime &runtime, TAp runtime.SetTxAllocatorTabletIds(ids); app.AddDomain(domain.Release()); - app.AddHive(domainUid, hive); + app.AddHive(hive); } TFakeHiveState::TPtr NSchemeShardUT_Private::TTestEnv::GetHiveState() const { diff --git a/ydb/core/tx/schemeshard/ut_helpers/test_env.h b/ydb/core/tx/schemeshard/ut_helpers/test_env.h index da9b4de410e0..72f048ab978b 100644 --- a/ydb/core/tx/schemeshard/ut_helpers/test_env.h +++ b/ydb/core/tx/schemeshard/ut_helpers/test_env.h @@ -129,7 +129,7 @@ namespace NSchemeShardUT_Private { private: static std::function GetTabletCreationFunc(ui32 type); - void AddDomain(TTestActorRuntime& runtime, TAppPrepare& app, ui32 domainUid, ui32 ssId, ui64 hive, ui64 schemeRoot); + void AddDomain(TTestActorRuntime& runtime, TAppPrepare& app, ui32 domainUid, ui64 hive, ui64 schemeRoot); void BootSchemeShard(TTestActorRuntime& runtime, ui64 schemeRoot); void BootTxAllocator(TTestActorRuntime& runtime, ui64 tabletId); diff --git a/ydb/core/tx/sequenceshard/ut_helpers.h b/ydb/core/tx/sequenceshard/ut_helpers.h index f0274f2309e9..396e963894fe 100644 --- a/ydb/core/tx/sequenceshard/ut_helpers.h +++ b/ydb/core/tx/sequenceshard/ut_helpers.h @@ -14,7 +14,7 @@ namespace NSequenceShard { struct TTestContext { TTabletTypes::EType TabletType = TTabletTypes::SequenceShard; - ui64 TabletId = MakeTabletID(0, 0, 1); + ui64 TabletId = MakeTabletID(false, 1); THolder Runtime; TActorId ClientId; TActorId UnmarkedClientId; diff --git a/ydb/core/tx/tx.cpp b/ydb/core/tx/tx.cpp index 28b5d8de0e0a..6379ba653323 100644 --- a/ydb/core/tx/tx.cpp +++ b/ydb/core/tx/tx.cpp @@ -34,12 +34,8 @@ TEvSubDomain::TEvConfigureStatus::TEvConfigureStatus(NKikimrTx::TEvSubDomainConf Record.SetOnTabletId(tabletId); } -TAutoPtr CreateDomainConfigurationFromStatic(const TAppData *appdata, ui64 tabletId) { - const ui32 selfDomain = appdata->DomainsInfo->GetDomainUidByTabletId(tabletId); - Y_ABORT_UNLESS(selfDomain != appdata->DomainsInfo->BadDomainId); - const auto& domain = appdata->DomainsInfo->GetDomain(selfDomain); - - return new TEvSubDomain::TEvConfigure(ExtractProcessingParams(domain)); +TAutoPtr CreateDomainConfigurationFromStatic(const TAppData *appdata) { + return new TEvSubDomain::TEvConfigure(ExtractProcessingParams(*appdata->DomainsInfo->GetDomain())); } } diff --git a/ydb/core/tx/tx.h b/ydb/core/tx/tx.h index 9ff1c18afb78..36930bef548b 100644 --- a/ydb/core/tx/tx.h +++ b/ydb/core/tx/tx.h @@ -265,7 +265,7 @@ struct TEvSubDomain { }; }; -TAutoPtr CreateDomainConfigurationFromStatic(const TAppData *appdata, ui64 tabletId); +TAutoPtr CreateDomainConfigurationFromStatic(const TAppData *appdata); } diff --git a/ydb/core/tx/tx_allocator/txallocator_ut_helpers.cpp b/ydb/core/tx/tx_allocator/txallocator_ut_helpers.cpp index 7d67a8843ca7..103e57594502 100644 --- a/ydb/core/tx/tx_allocator/txallocator_ut_helpers.cpp +++ b/ydb/core/tx/tx_allocator/txallocator_ut_helpers.cpp @@ -76,8 +76,6 @@ void TTestEnv::Setup(TTestActorRuntime &runtime) { SetupLogging(runtime); TAppPrepare app; auto domain = TDomainsInfo::TDomain::ConstructDomainWithExplicitTabletIds("dc-1", domainId, 0, - domainId, domainId, TVector{domainId}, - domainId, TVector{domainId}, 100500, TVector{}, TVector{}, diff --git a/ydb/core/tx/tx_allocator_client/ut_helpers.cpp b/ydb/core/tx/tx_allocator_client/ut_helpers.cpp index 12662cf57178..fbf8552d5bf3 100644 --- a/ydb/core/tx/tx_allocator_client/ut_helpers.cpp +++ b/ydb/core/tx/tx_allocator_client/ut_helpers.cpp @@ -59,8 +59,6 @@ void TTestEnv::Setup() { SetupLogging(); TAppPrepare app; auto domain = TDomainsInfo::TDomain::ConstructDomainWithExplicitTabletIds("dc-1", domainId, 0, - domainId, domainId, TVector{domainId}, - domainId, TVector{domainId}, 100500, TVector{}, TVector{}, diff --git a/ydb/core/tx/tx_proxy/datareq.cpp b/ydb/core/tx/tx_proxy/datareq.cpp index d5c66d3f6ab4..f59effde3f76 100644 --- a/ydb/core/tx/tx_proxy/datareq.cpp +++ b/ydb/core/tx/tx_proxy/datareq.cpp @@ -2801,13 +2801,8 @@ ui64 GetFirstTablet(NSchemeCache::TSchemeCacheRequest &cacheRequest) { return firstKey.GetPartitions().begin()->ShardId; } -const TDomainsInfo::TDomain& TDataReq::SelectDomain(NSchemeCache::TSchemeCacheRequest &cacheRequest, const TActorContext &ctx) { - ui64 firstTabletId = GetFirstTablet(cacheRequest); - - auto appdata = AppData(ctx); - const ui32 selfDomain = appdata->DomainsInfo->GetDomainUidByTabletId(firstTabletId); - Y_ABORT_UNLESS(selfDomain != appdata->DomainsInfo->BadDomainId); - return appdata->DomainsInfo->GetDomain(selfDomain); +const TDomainsInfo::TDomain& TDataReq::SelectDomain(NSchemeCache::TSchemeCacheRequest& /*cacheRequest*/, const TActorContext &ctx) { + return *AppData(ctx)->DomainsInfo->GetDomain(); } ui64 TDataReq::SelectCoordinator(NSchemeCache::TSchemeCacheRequest &cacheRequest, const TActorContext &ctx) { @@ -2866,11 +2861,7 @@ void TDataReq::RegisterPlan(const TActorContext &ctx) { Y_ABORT_UNLESS(domainsInfo); ui64 totalReadSize = 0; - TSet affectedDomains; for (const auto &xp : PerTablet) { - const ui32 tabletDomain = domainsInfo->GetDomainUidByTabletId(xp.first); - Y_ABORT_UNLESS(tabletDomain != Max()); - affectedDomains.insert(tabletDomain); totalReadSize += xp.second.ReadSize; } diff --git a/ydb/core/tx/tx_proxy/describe.cpp b/ydb/core/tx/tx_proxy/describe.cpp index aed5e9c91d8c..affd5915a4cd 100644 --- a/ydb/core/tx/tx_proxy/describe.cpp +++ b/ydb/core/tx/tx_proxy/describe.cpp @@ -230,24 +230,19 @@ void TDescribeReq::Handle(TEvTxProxyReq::TEvNavigateScheme::TPtr &ev, const TAct Source = msg->Ev->Sender; SourceCookie = msg->Ev->Cookie; - if (record.GetDescribePath().HasPath()) { - TDomainsInfo *domainsInfo = AppData(ctx)->DomainsInfo.Get(); - Y_ABORT_UNLESS(!domainsInfo->Domains.empty()); - - if (record.GetDescribePath().GetPath() == "/") { - // Special handling for enumerating roots - TAutoPtr result = - new NSchemeShard::TEvSchemeShard::TEvDescribeSchemeResultBuilder("/", NSchemeShard::RootSchemeShardId, TPathId(NSchemeShard::RootSchemeShardId, NSchemeShard::RootPathId)); - auto descr = result->Record.MutablePathDescription(); - FillRootDescr(descr->MutableSelf(), "/", NSchemeShard::RootSchemeShardId); - for (const auto& domain : domainsInfo->Domains) { - auto entry = result->Record.MutablePathDescription()->AddChildren(); - FillRootDescr(entry, domain.second->Name, domain.second->SchemeRoot); - } - - ctx.Send(Source, result.Release(), 0, SourceCookie); - return Die(ctx); + if (record.GetDescribePath().HasPath() && record.GetDescribePath().GetPath() == "/") { + // Special handling for enumerating roots + TAutoPtr result = + new NSchemeShard::TEvSchemeShard::TEvDescribeSchemeResultBuilder("/", NSchemeShard::RootSchemeShardId, TPathId(NSchemeShard::RootSchemeShardId, NSchemeShard::RootPathId)); + auto descr = result->Record.MutablePathDescription(); + FillRootDescr(descr->MutableSelf(), "/", NSchemeShard::RootSchemeShardId); + if (const auto& domain = AppData(ctx)->DomainsInfo->Domain) { + auto entry = result->Record.MutablePathDescription()->AddChildren(); + FillRootDescr(entry, domain->Name, domain->SchemeRoot); } + + ctx.Send(Source, result.Release(), 0, SourceCookie); + return Die(ctx); } if (!record.GetUserToken().empty()) { @@ -407,8 +402,7 @@ void TDescribeReq::Handle(NSchemeShard::TEvSchemeShard::TEvDescribeSchemeResult: const auto& pathDescription = ev->Get()->GetRecord().GetPathDescription(); const auto& self = pathDescription.GetSelf(); - TDomainsInfo *domainsInfo = AppData()->DomainsInfo.Get(); - Y_ABORT_UNLESS(!domainsInfo->Domains.empty()); + const auto& domainsInfo = AppData()->DomainsInfo; bool needSysFolder = false; if (self.GetPathType() == NKikimrSchemeOp::EPathType::EPathTypeSubDomain || @@ -417,11 +411,8 @@ void TDescribeReq::Handle(NSchemeShard::TEvSchemeShard::TEvDescribeSchemeResult: { needSysFolder = true; } else if (self.GetPathId() == NSchemeShard::RootPathId) { - for (const auto& [_, domain] : domainsInfo->Domains) { - if (domain->SchemeRoot == self.GetSchemeshardId()) { - needSysFolder = true; - break; - } + if (const auto& domain = domainsInfo->Domain; domain && domain->SchemeRoot == self.GetSchemeshardId()) { + needSysFolder = true; } } diff --git a/ydb/core/util/testactorsys.cpp b/ydb/core/util/testactorsys.cpp index 79143b1b0338..f8de98e4191a 100644 --- a/ydb/core/util/testactorsys.cpp +++ b/ydb/core/util/testactorsys.cpp @@ -146,9 +146,9 @@ class TTestExecutorPool : public IExecutorPool { } }; -static TActorId MakeBoardReplicaID(ui32 node, ui64 stateStorageGroup, ui32 replicaIndex) { +static TActorId MakeBoardReplicaID(ui32 node, ui32 replicaIndex) { char x[12] = {'s', 's', 'b'}; - x[3] = (char)stateStorageGroup; + x[3] = (char)1; memcpy(x + 5, &replicaIndex, sizeof(ui32)); return TActorId(node, TStringBuf(x, 12)); } @@ -225,22 +225,19 @@ void TTestActorSystem::SetupTabletRuntime(const std::functionDomains) { - const ui64 stateStorageGroup = domain->DefaultStateStorageGroup; + if (const auto& domain = GetDomainsInfo()->Domain) { ui32 numReplicas = 3; auto process = [&](auto&& generateId, auto&& createReplica) { auto info = MakeIntrusive(); - info->StateStorageGroup = stateStorageGroup; info->NToSelect = numReplicas; info->Rings.resize(numReplicas); for (ui32 i = 0; i < numReplicas; ++i) { - info->Rings[i].Replicas.push_back(generateId(stateStorageNodeId, stateStorageGroup, i)); + info->Rings[i].Replicas.push_back(generateId(stateStorageNodeId, i)); } if (nodeId == stateStorageNodeId) { for (ui32 i = 0; i < numReplicas; ++i) { - RegisterService(generateId(stateStorageNodeId, stateStorageGroup, i), - Register(createReplica(info.Get(), i), nodeId)); + RegisterService(generateId(stateStorageNodeId, i), Register(createReplica(info.Get(), i), nodeId)); } } return info; @@ -250,8 +247,7 @@ void TTestActorSystem::SetupStateStorage(ui32 nodeId, ui32 stateStorageNodeId) { auto b = process(MakeBoardReplicaID, CreateStateStorageBoardReplica); auto sb = process(MakeSchemeBoardReplicaID, CreateSchemeBoardReplica); - RegisterService(MakeStateStorageProxyID(stateStorageGroup), - Register(CreateStateStorageProxy(ss.Get(), b.Get(), sb.Get()), nodeId)); + RegisterService(MakeStateStorageProxyID(), Register(CreateStateStorageProxy(ss.Get(), b.Get(), sb.Get()), nodeId)); } } diff --git a/ydb/core/viewer/browse.h b/ydb/core/viewer/browse.h index 13aa3a68a16f..4f88059b5a06 100644 --- a/ydb/core/viewer/browse.h +++ b/ydb/core/viewer/browse.h @@ -218,8 +218,8 @@ class TBrowse : public TActorBootstrapped { break; } bool hasTxAllocators = false; - for (const auto& pair: domainsInfo->Domains) { - if (!pair.second->TxAllocators.empty()) { + if (const auto& domain = domainsInfo->Domain) { + if (!domain->TxAllocators.empty()) { hasTxAllocators = true; break; } @@ -432,15 +432,6 @@ class TBrowseTabletsCommon : public TActorBootstrapped { return PipeClients.emplace(tabletId, pipeClient).first->second; } - TTabletId GetBscTabletId(TTabletId tabletId, const TActorContext& ctx) { - TDomainsInfo* domainsInfo = AppData(ctx)->DomainsInfo.Get(); - ui64 hiveUid = HiveUidFromTabletID(tabletId); - ui32 hiveDomain = domainsInfo->GetHiveDomainUid(hiveUid); - ui64 defaultStateStorageGroup = domainsInfo->GetDefaultStateStorageGroup(hiveDomain); - TTabletId bscTabletId = MakeBSControllerID(defaultStateStorageGroup); - return bscTabletId; - } - void Handle(TEvTablet::TEvGetCountersResponse::TPtr &ev, const TActorContext &ctx) { TabletCountersResults.emplace(ev->Cookie, ev->Release()); ++Responses; @@ -456,7 +447,7 @@ class TBrowseTabletsCommon : public TActorBootstrapped { for (const auto& historyInfo : channelInfo.GetHistory()) { ui32 groupId = historyInfo.GetGroupID(); if (GroupInfo.emplace(groupId, nullptr).second) { - TTabletId bscTabletId = GetBscTabletId(lookupResult->Record.GetTabletID(), ctx); + TTabletId bscTabletId = MakeBSControllerID(); TActorId pipeClient = GetTabletPipe(bscTabletId, ctx); NTabletPipe::SendData(ctx, pipeClient, new TEvBlobStorage::TEvRequestControllerInfo(groupId)); ++Requests; diff --git a/ydb/core/viewer/browse_db.h b/ydb/core/viewer/browse_db.h index 3af5491e3d22..a105e9dc869d 100644 --- a/ydb/core/viewer/browse_db.h +++ b/ydb/core/viewer/browse_db.h @@ -70,8 +70,7 @@ class TBrowseTable : public TBrowseTabletsCommon { NTabletPipe::SendData(ctx, pipeClient, new TEvTablet::TEvGetCounters(), tabletId); ++Requests; ctx.Send(BrowseContext.Owner, new NViewerEvents::TEvBrowseRequestSent(TxProxy, tabletId, TEvTablet::EvGetCounters)); - auto hiveUid = HiveUidFromTabletID(tabletId); - auto hiveTabletId = domainsInfo->GetHive(hiveUid); + ui64 hiveTabletId = domainsInfo->GetHive(); pipeClient = GetTabletPipe(hiveTabletId, ctx); NTabletPipe::SendData(ctx, pipeClient, new TEvHive::TEvLookupChannelInfo(tabletId), tabletId); ++Requests; diff --git a/ydb/core/viewer/browse_pq.h b/ydb/core/viewer/browse_pq.h index 971679cd2760..1f2b5d950b16 100644 --- a/ydb/core/viewer/browse_pq.h +++ b/ydb/core/viewer/browse_pq.h @@ -145,8 +145,7 @@ class TBrowseCommon : public TBrowseTabletsCommon { NTabletPipe::SendData(ctx, pipeClient, new TEvTablet::TEvGetCounters(), tabletId); ++Requests; ctx.Send(BrowseContext.Owner, new NViewerEvents::TEvBrowseRequestSent(pipeClient, tabletId, TEvTablet::EvGetCounters)); - auto hiveUid = HiveUidFromTabletID(tabletId); - auto hiveTabletId = domainsInfo->GetHive(hiveUid); + ui64 hiveTabletId = domainsInfo->GetHive(); pipeClient = GetTabletPipe(hiveTabletId, ctx); NTabletPipe::SendData(ctx, pipeClient, new TEvHive::TEvLookupChannelInfo(tabletId), tabletId); ++Requests; diff --git a/ydb/core/viewer/json_cluster.h b/ydb/core/viewer/json_cluster.h index 94a87eb7f624..bcbfe05e17a9 100644 --- a/ydb/core/viewer/json_cluster.h +++ b/ydb/core/viewer/json_cluster.h @@ -88,8 +88,7 @@ class TJsonCluster : public TViewerPipeClient { void SendWhiteboardTabletStateRequest() { THashSet filterTablets; TIntrusivePtr domains = AppData()->DomainsInfo; - if (!domains->Domains.empty()) { - TIntrusivePtr domain = domains->Domains.begin()->second; + if (const auto& domain = domains->Domain) { for (TTabletId id : domain->Coordinators) { filterTablets.emplace(id); } @@ -157,8 +156,7 @@ class TJsonCluster : public TViewerPipeClient { } NKikimrSchemeOp::TDescribePath* record = request->Record.MutableDescribePath(); TIntrusivePtr domains = AppData()->DomainsInfo; - if (!domains->Domains.empty()) { - TIntrusivePtr domain = domains->Domains.begin()->second; + if (const auto& domain = domains->Domain) { TString domainPath = "/" + domain->Name; record->SetPath(domainPath); } @@ -326,14 +324,11 @@ class TJsonCluster : public TViewerPipeClient { EventLog.StartResponseBuildingTime = TActivationContext::Now(); if (Tablets) { TIntrusivePtr domains = AppData()->DomainsInfo; - if (!domains->Domains.empty()) { - TIntrusivePtr domain = domains->Domains.begin()->second; - ui32 hiveDomain = domains->GetHiveDomainUid(domain->DefaultHiveUid); - ui64 defaultStateStorageGroup = domains->GetDefaultStateStorageGroup(hiveDomain); - tablets.emplace(MakeBSControllerID(defaultStateStorageGroup)); - tablets.emplace(MakeConsoleID(defaultStateStorageGroup)); + if (const auto& domain = domains->Domain) { + tablets.emplace(MakeBSControllerID()); + tablets.emplace(MakeConsoleID()); tablets.emplace(domain->SchemeRoot); - tablets.emplace(domains->GetHive(domain->DefaultHiveUid)); + tablets.emplace(domains->GetHive()); for (TTabletId id : domain->Coordinators) { tablets.emplace(id); } @@ -438,8 +433,8 @@ class TJsonCluster : public TViewerPipeClient { pbCluster.SetStorageUsed(totalStorageSize - availableStorageSize); pbCluster.SetHosts(hosts.size()); TIntrusivePtr domains = AppData()->DomainsInfo; - if (!domains->Domains.empty()) { - TString domainName = "/" + domains->Domains.begin()->second->Name; + if (const auto& domain = domains->Domain) { + TString domainName = "/" + domain->Name; pbCluster.SetDomain(domainName); } for (const TString& dc : dataCenters) { diff --git a/ydb/core/viewer/json_compute.h b/ydb/core/viewer/json_compute.h index 4c6f0463c902..3e8a0c5212cb 100644 --- a/ydb/core/viewer/json_compute.h +++ b/ydb/core/viewer/json_compute.h @@ -162,7 +162,7 @@ class TJsonCompute : public TViewerPipeClient { SendRequest(GetNameserviceActorId(), new TEvInterconnect::TEvListNodes()); TIntrusivePtr domains = AppData()->DomainsInfo; - TIntrusivePtr domain = domains->Domains.begin()->second; + auto *domain = domains->GetDomain(); RequestConsoleListTenants(); @@ -174,7 +174,7 @@ class TJsonCompute : public TViewerPipeClient { tenant.SetType(NKikimrViewer::Domain); RequestSchemeCacheNavigate(DomainPath); } - RootHiveId = domains->GetHive(domain->DefaultHiveUid); + RootHiveId = domains->GetHive(); if (Requests == 0) { ReplyAndPassAway(); } diff --git a/ydb/core/viewer/json_healthcheck.h b/ydb/core/viewer/json_healthcheck.h index 67c62469cfae..d80ab97fc9e7 100644 --- a/ydb/core/viewer/json_healthcheck.h +++ b/ydb/core/viewer/json_healthcheck.h @@ -138,7 +138,7 @@ class TJsonHealthCheck : public TActorBootstrapped { IMetricEncoder* e = encoder.Get(); TIntrusivePtr domains = AppData()->DomainsInfo; - TIntrusivePtr domain = domains->Domains.begin()->second; + auto *domain = domains->GetDomain(); auto filterDatabase = Database ? Database : "/" + domain->Name; e->OnStreamBegin(); if (recordCounters->size() > 0) { diff --git a/ydb/core/viewer/json_netinfo.h b/ydb/core/viewer/json_netinfo.h index e441a05963b7..12ccc5033282 100644 --- a/ydb/core/viewer/json_netinfo.h +++ b/ydb/core/viewer/json_netinfo.h @@ -60,16 +60,15 @@ class TJsonNetInfo : public TViewerPipeClient { SendRequest(GetNameserviceActorId(), new TEvInterconnect::TEvListNodes()); TIntrusivePtr domains = AppData()->DomainsInfo; - TIntrusivePtr domain = domains->Domains.begin()->second; - auto group = domains->GetDefaultStateStorageGroup(domain->DomainUid); - ui64 consoleId = MakeConsoleID(group); + auto *domain = domains->GetDomain(); + ui64 consoleId = MakeConsoleID(); if (consoleId != 0) { RequestConsoleListTenants(); } - ui64 hiveId = domains->GetHive(domain->DefaultHiveUid); - if (hiveId != 0) { + ui64 hiveId = domains->GetHive(); + if (hiveId != TDomainsInfo::BadTabletId) { RequestHiveDomainStats(hiveId); } diff --git a/ydb/core/viewer/json_pipe_req.h b/ydb/core/viewer/json_pipe_req.h index 38ad1ca2ff66..e169eb117203 100644 --- a/ydb/core/viewer/json_pipe_req.h +++ b/ydb/core/viewer/json_pipe_req.h @@ -115,10 +115,7 @@ class TViewerPipeClient : public TActorBootstrapped { } NNodeWhiteboard::TTabletId GetConsoleId() { - TIntrusivePtr domains = AppData()->DomainsInfo; - TIntrusivePtr domain = domains->Domains.begin()->second; - auto group = domains->GetDefaultStateStorageGroup(domain->DomainUid); - return MakeConsoleID(group); + return MakeConsoleID(); } void RequestConsoleListTenants() { @@ -135,10 +132,7 @@ class TViewerPipeClient : public TActorBootstrapped { } NNodeWhiteboard::TTabletId GetBSControllerId() { - TIntrusivePtr domains = AppData()->DomainsInfo; - TIntrusivePtr domain = domains->Domains.begin()->second; - ui32 stateStorageGroup = domains->GetDefaultStateStorageGroup(domain->DomainUid); - return MakeBSControllerID(stateStorageGroup); + return MakeBSControllerID(); } void RequestBSControllerConfig() { @@ -187,14 +181,12 @@ class TViewerPipeClient : public TActorBootstrapped { } void RequestStateStorageEndpointsLookup(const TString& path) { - if (AppData()->DomainsInfo->Domains.empty()) { + if (!AppData()->DomainsInfo->Domain) { return; } - auto domainInfo = AppData()->DomainsInfo->Domains.begin()->second; TBase::RegisterWithSameMailbox(CreateBoardLookupActor(MakeEndpointsBoardPath(path), TBase::SelfId(), - domainInfo->DefaultStateStorageGroup, - EBoardLookupMode::Second)); + EBoardLookupMode::Second)); ++Requests; } diff --git a/ydb/core/viewer/json_storage.h b/ydb/core/viewer/json_storage.h index ce5cdb8bbf93..7b29d68c89fa 100644 --- a/ydb/core/viewer/json_storage.h +++ b/ydb/core/viewer/json_storage.h @@ -122,9 +122,8 @@ class TJsonStorage : public TJsonStorageBase { void Bootstrap() override { TIntrusivePtr domains = AppData()->DomainsInfo; - TIntrusivePtr domain = domains->Domains.begin()->second; - ui64 hiveId = domains->GetHive(domain->DefaultHiveUid); - if (hiveId != 0) { + ui64 hiveId = domains->GetHive(); + if (hiveId != TDomainsInfo::BadTabletId) { RequestHiveStorageStats(hiveId); } TBase::Bootstrap(); diff --git a/ydb/core/viewer/json_tabletinfo.h b/ydb/core/viewer/json_tabletinfo.h index 2c9ecd2fa889..440f1750e03d 100644 --- a/ydb/core/viewer/json_tabletinfo.h +++ b/ydb/core/viewer/json_tabletinfo.h @@ -154,14 +154,11 @@ class TJsonTabletInfo : public TJsonWhiteboardRequest domains = AppData()->DomainsInfo; - TIntrusivePtr domain = domains->Domains.begin()->second; + auto *domain = domains->GetDomain(); Tablets[domain->SchemeRoot] = NKikimrTabletBase::TTabletTypes::SchemeShard; - - ui32 hiveDomain = domains->GetHiveDomainUid(domain->DefaultHiveUid); - ui64 defaultStateStorageGroup = domains->GetDefaultStateStorageGroup(hiveDomain); - Tablets[MakeBSControllerID(defaultStateStorageGroup)] = NKikimrTabletBase::TTabletTypes::BSController; - Tablets[MakeConsoleID(defaultStateStorageGroup)] = NKikimrTabletBase::TTabletTypes::Console; - Tablets[MakeNodeBrokerID(defaultStateStorageGroup)] = NKikimrTabletBase::TTabletTypes::NodeBroker; + Tablets[MakeBSControllerID()] = NKikimrTabletBase::TTabletTypes::BSController; + Tablets[MakeConsoleID()] = NKikimrTabletBase::TTabletTypes::Console; + Tablets[MakeNodeBrokerID()] = NKikimrTabletBase::TTabletTypes::NodeBroker; } if (pathDescription.GetDomainDescription().GetProcessingParams().HasHive()) { Tablets[pathDescription.GetDomainDescription().GetProcessingParams().GetHive()] = NKikimrTabletBase::TTabletTypes::Hive; diff --git a/ydb/core/viewer/json_tenantinfo.h b/ydb/core/viewer/json_tenantinfo.h index 626d3ad30f8e..9ddce212c61b 100644 --- a/ydb/core/viewer/json_tenantinfo.h +++ b/ydb/core/viewer/json_tenantinfo.h @@ -108,7 +108,7 @@ class TJsonTenantInfo : public TViewerPipeClient { OffloadMerge = FromStringWithDefault(params.Get("offload_merge"), OffloadMerge); TIntrusivePtr domains = AppData()->DomainsInfo; - TIntrusivePtr domain = domains->Domains.begin()->second; + auto *domain = domains->GetDomain(); RequestConsoleListTenants(); @@ -122,7 +122,7 @@ class TJsonTenantInfo : public TViewerPipeClient { RequestSchemeCacheNavigate(DomainPath); } RootId = GetDomainId({domain->SchemeRoot, 1}); - RootHiveId = domains->GetHive(domain->DefaultHiveUid); + RootHiveId = domains->GetHive(); RequestHiveDomainStats(RootHiveId); if (Storage) { RequestHiveStorageStats(RootHiveId); @@ -450,7 +450,7 @@ class TJsonTenantInfo : public TViewerPipeClient { void ReplyAndPassAway() { BLOG_TRACE("ReplyAndPassAway() started"); TIntrusivePtr domains = AppData()->DomainsInfo; - TIntrusivePtr domain = domains->Domains.begin()->second; + auto *domain = domains->GetDomain(); THashMap OverallByDomainId; TMap NodeSystemStateInfo; @@ -547,13 +547,10 @@ class TJsonTenantInfo : public TViewerPipeClient { tablets.emplace_back(entry.DomainInfo->Params.GetSchemeShard()); } else { tablets.emplace_back(domain->SchemeRoot); - - ui32 hiveDomain = domains->GetHiveDomainUid(domain->DefaultHiveUid); - ui64 defaultStateStorageGroup = domains->GetDefaultStateStorageGroup(hiveDomain); - tablets.emplace_back(MakeBSControllerID(defaultStateStorageGroup)); - tablets.emplace_back(MakeConsoleID(defaultStateStorageGroup)); + tablets.emplace_back(MakeBSControllerID()); + tablets.emplace_back(MakeConsoleID()); } - TTabletId hiveId = domains->GetHive(domain->DefaultHiveUid); + TTabletId hiveId = domains->GetHive(); if (entry.DomainInfo->Params.HasHive()) { hiveId = entry.DomainInfo->Params.GetHive(); } else { diff --git a/ydb/core/viewer/json_tenants.h b/ydb/core/viewer/json_tenants.h index 00a269be37ea..7c9043ad3ea9 100644 --- a/ydb/core/viewer/json_tenants.h +++ b/ydb/core/viewer/json_tenants.h @@ -43,7 +43,7 @@ class TJsonTenants : public TViewerPipeClient { Timeout = FromStringWithDefault(params.Get("timeout"), 10000); State = FromStringWithDefault(params.Get("state"), true); TIntrusivePtr domains = AppData()->DomainsInfo; - TIntrusivePtr domain = domains->Domains.begin()->second; + auto *domain = domains->GetDomain(); NKikimrViewer::TTenant& tenant = *Result.AddTenants(); tenant.SetName("/" + domain->Name); if (State) { diff --git a/ydb/core/viewer/viewer_ut.cpp b/ydb/core/viewer/viewer_ut.cpp index 6fbcfba9583a..2e77266a3168 100644 --- a/ydb/core/viewer/viewer_ut.cpp +++ b/ydb/core/viewer/viewer_ut.cpp @@ -860,8 +860,7 @@ Y_UNIT_TEST_SUITE(Viewer) { entry.Kind = TSchemeCacheNavigate::EKind::KindExtSubdomain; entry.DomainInfo = MakeIntrusive(SHARED_DOMAIN_KEY, SHARED_DOMAIN_KEY); auto domains = runtime.GetAppData().DomainsInfo; - auto domain = domains->Domains.begin()->second; - ui64 hiveId = domains->GetHive(domain->DefaultHiveUid); + ui64 hiveId = domains->GetHive(); entry.DomainInfo->Params.SetHive(hiveId); } else if (path == "/Root/serverless/users" || entry.TableId.PathId == SERVERLESS_TABLE) { entry.Status = TSchemeCacheNavigate::EStatus::Ok; diff --git a/ydb/core/yql_testlib/yql_testlib.cpp b/ydb/core/yql_testlib/yql_testlib.cpp index acd493048a1f..feecdd7ab1e6 100644 --- a/ydb/core/yql_testlib/yql_testlib.cpp +++ b/ydb/core/yql_testlib/yql_testlib.cpp @@ -162,7 +162,7 @@ void TYqlServer::Initialize() { SetupDomains(app); SetupChannelProfiles(app); - app.AddHive(Settings->Domain, ChangeStateStorage(Hive, Settings->Domain)); + app.AddHive(ChangeStateStorage(Hive, Settings->Domain)); app.SetFnRegistry([this](const NKikimr::NScheme::TTypeRegistry& typeRegistry) -> NKikimr::NMiniKQL::IFunctionRegistry* { Y_UNUSED(typeRegistry); // register test UDFs diff --git a/ydb/library/yaml_config/core_constants.h b/ydb/library/yaml_config/core_constants.h index 9ecd44cab91d..0e72732193f2 100644 --- a/ydb/library/yaml_config/core_constants.h +++ b/ydb/library/yaml_config/core_constants.h @@ -42,9 +42,9 @@ const inline std::map GetTablets(ui64 idx) { {TString{"NodeBroker"}, 72057594037936129}, {TString{"TenantSlotBroker"}, 72057594037936130}, {TString{"Console"}, 72057594037936131}, - {TString{"TxAllocator"}, TDomainsInfo::MakeTxAllocatorIDFixed(1, idx)}, - {TString{"FlatTxCoordinator"}, TDomainsInfo::MakeTxCoordinatorIDFixed(1, idx)}, - {TString{"TxMediator"}, TDomainsInfo::MakeTxMediatorIDFixed(1, idx)}, + {TString{"TxAllocator"}, TDomainsInfo::MakeTxAllocatorIDFixed(idx)}, + {TString{"FlatTxCoordinator"}, TDomainsInfo::MakeTxCoordinatorIDFixed(idx)}, + {TString{"TxMediator"}, TDomainsInfo::MakeTxMediatorIDFixed(idx)}, }; } diff --git a/ydb/library/yaml_config/deprecated/yaml_config_parser.cpp b/ydb/library/yaml_config/deprecated/yaml_config_parser.cpp index ede6d764c5ef..631fb599f7bf 100644 --- a/ydb/library/yaml_config/deprecated/yaml_config_parser.cpp +++ b/ydb/library/yaml_config/deprecated/yaml_config_parser.cpp @@ -210,9 +210,9 @@ namespace NKikimr::NYaml::NDeprecated { {"NODE_BROKER", 72057594037936129}, {"TENANT_SLOT_BROKER", 72057594037936130}, {"CONSOLE", 72057594037936131}, - {"TX_ALLOCATOR", TDomainsInfo::MakeTxAllocatorIDFixed(1, idx)}, - {"FLAT_TX_COORDINATOR", TDomainsInfo::MakeTxCoordinatorIDFixed(1, idx)}, - {"TX_MEDIATOR", TDomainsInfo::MakeTxMediatorIDFixed(1, idx)}, + {"TX_ALLOCATOR", TDomainsInfo::MakeTxAllocatorIDFixed(idx)}, + {"FLAT_TX_COORDINATOR", TDomainsInfo::MakeTxCoordinatorIDFixed(idx)}, + {"TX_MEDIATOR", TDomainsInfo::MakeTxMediatorIDFixed(idx)}, }; auto it = tablets.find(type);