Skip to content

Commit c01d378

Browse files
ivanmorozov333ivanmorozov333
andauthored
general cache (#20004)
Co-authored-by: ivanmorozov333 <[email protected]>
1 parent 001b720 commit c01d378

File tree

91 files changed

+1355
-1106
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

91 files changed

+1355
-1106
lines changed

ydb/core/base/events.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,9 @@ struct TKikimrEvents : TEvents {
186186
ES_PRIORITY_QUEUE = 4263,
187187
ES_SOLOMON_PROVIDER = 4264,
188188
ES_CONVEYOR_COMPOSITE = 4265,
189+
ES_GENERAL_CACHE_PUBLIC = 4266,
190+
ES_GENERAL_CACHE_SOURCE = 4267,
191+
189192
};
190193
};
191194

ydb/core/driver_lib/run/kikimr_services_initializers.cpp

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,6 @@
146146
#include <ydb/core/tx/columnshard/blob_cache.h>
147147
#include <ydb/core/tx/datashard/datashard.h>
148148
#include <ydb/core/tx/columnshard/columnshard.h>
149-
#include <ydb/core/tx/columnshard/data_accessor/shared_metadata_accessor_cache_actor.h>
150149
#include <ydb/core/tx/mediator/mediator.h>
151150
#include <ydb/core/tx/replication/controller/controller.h>
152151
#include <ydb/core/tx/replication/service/service.h>
@@ -193,6 +192,8 @@
193192
#include <ydb/core/tx/conveyor_composite/service/service.h>
194193
#include <ydb/core/tx/conveyor_composite/usage/config.h>
195194
#include <ydb/core/tx/conveyor_composite/usage/service.h>
195+
#include <ydb/core/tx/columnshard/data_accessor/cache_policy/policy.h>
196+
#include <ydb/core/tx/general_cache/usage/service.h>
196197
#include <ydb/core/tx/priorities/usage/config.h>
197198
#include <ydb/core/tx/priorities/usage/service.h>
198199

@@ -1146,18 +1147,6 @@ void TSharedCacheInitializer::InitializeServices(
11461147
TActorSetupCmd(actor, TMailboxType::ReadAsFilled, appData->UserPoolId));
11471148
}
11481149

1149-
TSharedMetadataAccessorCacheInitializer::TSharedMetadataAccessorCacheInitializer(const TKikimrRunConfig& runConfig)
1150-
: IKikimrServicesInitializer(runConfig)
1151-
{}
1152-
1153-
void TSharedMetadataAccessorCacheInitializer::InitializeServices(NActors::TActorSystemSetup *setup, const TAppData *appData) {
1154-
if (appData->FeatureFlags.GetEnableSharedMetadataAccessorCache()) {
1155-
auto* actor = NOlap::NDataAccessorControl::TSharedMetadataAccessorCacheActor::CreateActor();
1156-
setup->LocalServices.emplace_back(NOlap::NDataAccessorControl::TSharedMetadataAccessorCacheActor::MakeActorId(NodeId),
1157-
TActorSetupCmd(actor, TMailboxType::HTSwap, appData->UserPoolId));
1158-
}
1159-
}
1160-
11611150
// TBlobCacheInitializer
11621151

11631152
TBlobCacheInitializer::TBlobCacheInitializer(const TKikimrRunConfig& runConfig)
@@ -2280,6 +2269,29 @@ void TCompPrioritiesInitializer::InitializeServices(NActors::TActorSystemSetup*
22802269
}
22812270
}
22822271

2272+
TGeneralCachePortionsMetadataInitializer::TGeneralCachePortionsMetadataInitializer(const TKikimrRunConfig& runConfig)
2273+
: IKikimrServicesInitializer(runConfig) {
2274+
}
2275+
2276+
void TGeneralCachePortionsMetadataInitializer::InitializeServices(NActors::TActorSystemSetup* setup, const NKikimr::TAppData* appData) {
2277+
auto serviceConfig = NGeneralCache::NPublic::TConfig::BuildFromProto(Config.GetPortionsMetadataCache());
2278+
if (serviceConfig.IsFail()) {
2279+
AFL_ERROR(NKikimrServices::TX_COLUMNSHARD)("error", "cannot parse portions metadata cache config")("action", "default_usage")(
2280+
"error", serviceConfig.GetErrorMessage())("default", NGeneralCache::NPublic::TConfig::BuildDefault().DebugString());
2281+
serviceConfig = NGeneralCache::NPublic::TConfig::BuildDefault();
2282+
}
2283+
AFL_VERIFY(!serviceConfig.IsFail());
2284+
2285+
TIntrusivePtr<::NMonitoring::TDynamicCounters> tabletGroup = GetServiceCounters(appData->Counters, "tablets");
2286+
TIntrusivePtr<::NMonitoring::TDynamicCounters> conveyorGroup = tabletGroup->GetSubgroup("type", "TX_GENERAL_CACHE_PORTIONS_METADATA");
2287+
2288+
auto service = NGeneralCache::TServiceOperator<NOlap::NGeneralCache::TPortionsMetadataCachePolicy>::CreateService(*serviceConfig, conveyorGroup);
2289+
2290+
setup->LocalServices.push_back(
2291+
std::make_pair(NGeneralCache::TServiceOperator<NOlap::NGeneralCache::TPortionsMetadataCachePolicy>::MakeServiceId(NodeId),
2292+
TActorSetupCmd(service, TMailboxType::HTSwap, appData->UserPoolId)));
2293+
}
2294+
22832295
TCompositeConveyorInitializer::TCompositeConveyorInitializer(const TKikimrRunConfig& runConfig)
22842296
: IKikimrServicesInitializer(runConfig) {
22852297
}

ydb/core/driver_lib/run/kikimr_services_initializers.h

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -95,13 +95,6 @@ class TSharedCacheInitializer : public IKikimrServicesInitializer {
9595
void InitializeServices(NActors::TActorSystemSetup *setup, const NKikimr::TAppData *appData) override;
9696
};
9797

98-
class TSharedMetadataAccessorCacheInitializer : public IKikimrServicesInitializer {
99-
public:
100-
TSharedMetadataAccessorCacheInitializer(const TKikimrRunConfig& runConfig);
101-
102-
void InitializeServices(NActors::TActorSystemSetup *setup, const NKikimr::TAppData *appData) override;
103-
};
104-
10598
class TBlobCacheInitializer : public IKikimrServicesInitializer {
10699
public:
107100
TBlobCacheInitializer(const TKikimrRunConfig& runConfig);
@@ -435,6 +428,12 @@ class TCompositeConveyorInitializer : public IKikimrServicesInitializer {
435428
void InitializeServices(NActors::TActorSystemSetup* setup, const NKikimr::TAppData* appData) override;
436429
};
437430

431+
class TGeneralCachePortionsMetadataInitializer: public IKikimrServicesInitializer {
432+
public:
433+
TGeneralCachePortionsMetadataInitializer(const TKikimrRunConfig& runConfig);
434+
void InitializeServices(NActors::TActorSystemSetup* setup, const NKikimr::TAppData* appData) override;
435+
};
436+
438437
class TExternalIndexInitializer: public IKikimrServicesInitializer {
439438
public:
440439
TExternalIndexInitializer(const TKikimrRunConfig& runConfig);

ydb/core/driver_lib/run/run.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1701,10 +1701,6 @@ TIntrusivePtr<TServiceInitializersList> TKikimrRunner::CreateServiceInitializers
17011701

17021702
sil->AddServiceInitializer(new TMemProfMonitorInitializer(runConfig, ProcessMemoryInfoProvider));
17031703

1704-
if (serviceMask.EnableSharedMetadataAccessorCache) {
1705-
sil->AddServiceInitializer(new TSharedMetadataAccessorCacheInitializer(runConfig));
1706-
}
1707-
17081704
#if defined(ENABLE_MEMORY_TRACKING)
17091705
if (serviceMask.EnableMemoryTracker) {
17101706
sil->AddServiceInitializer(new TMemoryTrackerInitializer(runConfig));
@@ -1742,6 +1738,10 @@ TIntrusivePtr<TServiceInitializersList> TKikimrRunner::CreateServiceInitializers
17421738
sil->AddServiceInitializer(new TCompositeConveyorInitializer(runConfig));
17431739
}
17441740

1741+
if (serviceMask.EnableGeneralCachePortionsMetadata) {
1742+
sil->AddServiceInitializer(new TGeneralCachePortionsMetadataInitializer(runConfig));
1743+
}
1744+
17451745
if (serviceMask.EnableCms) {
17461746
sil->AddServiceInitializer(new TCmsServiceInitializer(runConfig));
17471747
}

ydb/core/driver_lib/run/service_mask.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ union TBasicKikimrServicesMask {
8181
bool EnableGroupedMemoryLimiter:1;
8282
bool EnableAwsService:1;
8383
bool EnableCompPriorities : 1;
84-
bool EnableSharedMetadataAccessorCache : 1;
84+
bool EnableGeneralCachePortionsMetadata: 1;
8585
};
8686

8787
struct {

ydb/core/driver_lib/run/ya.make

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,8 @@ PEERDIR(
106106
ydb/core/tx
107107
ydb/core/tx/columnshard
108108
ydb/core/tx/conveyor/service
109+
ydb/core/tx/general_cache
110+
ydb/core/tx/columnshard/data_accessor/cache_policy
109111
ydb/core/tx/coordinator
110112
ydb/core/tx/datashard
111113
ydb/core/tx/limiter/grouped_memory/usage

ydb/core/protos/config.proto

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1990,7 +1990,6 @@ message TColumnShardConfig {
19901990
optional uint32 PeriodicWakeupActivationPeriodMs = 42 [default = 60000];
19911991
optional bool GenerateInternalPathId = 43 [default = false]; //Be aware! IRREVERSIBLE(if set, can not be unset for a dababase)
19921992
optional bool ProxyWritingEnabled = 44 [default = true];
1993-
optional uint64 SharedMetadataAccessorCacheSize = 45 [default = 1073741824]; // 1Gb
19941993
}
19951994

19961995
message TSchemeShardConfig {
@@ -2338,6 +2337,11 @@ message TLabel {
23382337
optional string Value = 2;
23392338
}
23402339

2340+
message TGeneralCacheConfig {
2341+
optional uint64 MemoryLimit = 1;
2342+
optional uint64 DirectInflightLimit = 2;
2343+
}
2344+
23412345
message TAppConfig {
23422346
option (NMarkers.Root) = true;
23432347
optional TActorSystemConfig ActorSystemConfig = 1;
@@ -2438,6 +2442,7 @@ message TAppConfig {
24382442
optional string StartupConfigYaml = 107;
24392443
optional string StartupStorageYaml = 108;
24402444
optional TCompositeConveyorConfig CompositeConveyorConfig = 109;
2445+
optional TGeneralCacheConfig PortionsMetadataCache = 110;
24412446
}
24422447

24432448
message TYdbVersion {

ydb/core/protos/console_config.proto

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ message TConfigItem {
151151
ClusterYamlConfigItem = 101;
152152

153153
CompositeConveyorConfigItem = 109;
154+
PortionsMetadataCacheItem = 110;
154155

155156
// synthetic kinds for audit purposes only
156157
DatabaseYamlConfigChangeItem = 32767;

ydb/core/protos/feature_flags.proto

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,6 @@ message TFeatureFlags {
211211
optional bool EnableNodeBrokerDeltaProtocol = 185 [default = false];
212212
optional bool EnableAccessToIndexImplTables = 186 [default = false];
213213
optional bool EnableAddUniqueIndex = 187 [default = false];
214-
optional bool EnableSharedMetadataAccessorCache = 188 [default = true];
214+
optional bool EnableSharedMetadataAccessorCache = 188 [default = true, deprecated = true];
215215
optional bool RequireDbPrefixInSecretName = 189 [default = false];
216216
}

ydb/core/testlib/basics/services.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include <ydb/core/tablet/node_tablet_monitor.h>
2121
#include <ydb/core/tablet/tablet_list_renderer.h>
2222
#include <ydb/core/tablet_flat/shared_sausagecache.h>
23+
#include <ydb/core/tx/columnshard/data_accessor/cache_policy/policy.h>
2324
#include <ydb/core/tx/scheme_board/replica.h>
2425
#include <ydb/core/client/server/grpc_proxy_status.h>
2526
#include <ydb/core/scheme/tablet_scheme.h>
@@ -166,6 +167,13 @@ namespace NPDisk {
166167
nodeIndex);
167168
}
168169

170+
void SetupCSMetadataCache(TTestActorRuntime& runtime, ui32 nodeIndex) {
171+
auto* actor = NOlap::NDataAccessorControl::TGeneralCache::CreateService(
172+
NGeneralCache::NPublic::TConfig::BuildDefault(), runtime.GetDynamicCounters(nodeIndex));
173+
runtime.AddLocalService(NOlap::NDataAccessorControl::TGeneralCache::MakeServiceId(runtime.GetNodeId(nodeIndex)),
174+
TActorSetupCmd(actor, TMailboxType::ReadAsFilled, 0), nodeIndex);
175+
}
176+
169177
void SetupBlobCache(TTestActorRuntime& runtime, ui32 nodeIndex)
170178
{
171179
runtime.AddLocalService(NBlobCache::MakeBlobCacheServiceId(),
@@ -377,6 +385,7 @@ namespace NPDisk {
377385
SetupResourceBroker(runtime, nodeIndex, app.ResourceBrokerConfig);
378386
SetupSharedPageCache(runtime, nodeIndex, sharedCacheConfig ? *sharedCacheConfig : defaultSharedCacheConfig);
379387
SetupBlobCache(runtime, nodeIndex);
388+
SetupCSMetadataCache(runtime, nodeIndex);
380389
SetupSysViewService(runtime, nodeIndex);
381390
SetupQuoterService(runtime, nodeIndex);
382391
SetupStatService(runtime, nodeIndex);

0 commit comments

Comments
 (0)