diff --git a/ydb/core/protos/config.proto b/ydb/core/protos/config.proto index 88396c5f640b..b94896c0e80e 100644 --- a/ydb/core/protos/config.proto +++ b/ydb/core/protos/config.proto @@ -41,6 +41,7 @@ import "ydb/core/protos/nbs/blockstore.proto"; import "ydb/library/actors/protos/interconnect.proto"; import "yql/essentials/core/file_storage/proto/file_storage.proto"; import "yql/essentials/providers/common/proto/gateways_config.proto"; +import "ydb/core/protos/s3_settings.proto"; package NKikimrConfig; option java_package = "ru.yandex.kikimr.proto"; @@ -2141,6 +2142,7 @@ message TColumnShardConfig { optional uint64 BadPortionsLimit = 52; optional bool CombineChunksInResult = 54 [default = true]; optional bool EnableParallelCompaction = 56 [default = true]; + optional NKikimrSchemeOp.TS3Settings S3Client = 58; } message TSchemeShardConfig { diff --git a/ydb/core/tx/tiering/manager.cpp b/ydb/core/tx/tiering/manager.cpp index eaa43a2ff179..d51149f8e078 100644 --- a/ydb/core/tx/tiering/manager.cpp +++ b/ydb/core/tx/tiering/manager.cpp @@ -1,6 +1,8 @@ #include "common.h" #include "manager.h" +#include +#include #include #include #include @@ -78,11 +80,16 @@ class TTiersManager::TActor: public TActorBootstrapped { ResetRetryState(tierId); if (description.GetSelf().GetPathType() == NKikimrSchemeOp::EPathTypeExternalDataSource) { NTiers::TTierConfig tier; + if (HasAppData() && AppDataVerified().ColumnShardConfig.HasS3Client()) { + tier = NTiers::TTierConfig(AppDataVerified().ColumnShardConfig.GetS3Client()); + } + if (const auto status = tier.DeserializeFromProto(description.GetExternalDataSourceDescription()); status.IsFail()) { AFL_WARN(NKikimrServices::TX_TIERING)("event", "fetched_invalid_tier_settings")("error", status.GetErrorMessage()); Owner->UpdateTierConfig(std::nullopt, tierId); return; } + Owner->UpdateTierConfig(tier, tierId); } else { AFL_WARN(NKikimrServices::TX_TIERING)("error", "invalid_object_type")("type", static_cast(description.GetSelf().GetPathType()))("path", tierId.GetConfigPath()); diff --git a/ydb/core/tx/tiering/tier/object.h b/ydb/core/tx/tiering/tier/object.h index cb8481c9b28e..3660032dda3f 100644 --- a/ydb/core/tx/tiering/tier/object.h +++ b/ydb/core/tx/tiering/tier/object.h @@ -26,6 +26,10 @@ class TTierConfig { , Compression(compression) { } + explicit TTierConfig(const TTierProto& config) + : ProtoConfig(config) { + } + TConclusionStatus DeserializeFromProto(const NKikimrSchemeOp::TExternalDataSourceDescription& proto); NJson::TJsonValue SerializeConfigToJson() const;