diff options
author | chertus <azuikov@ydb.tech> | 2023-07-21 18:57:59 +0300 |
---|---|---|
committer | chertus <azuikov@ydb.tech> | 2023-07-21 18:57:59 +0300 |
commit | 29ae8fa544303466960689369d7ca9672b2530ea (patch) | |
tree | 82aa8b93d7d326f7d9a75453d9fdcad4780e4001 | |
parent | 7ec327a014cc13cd295f4691a17ae02bab78e70d (diff) | |
download | ydb-29ae8fa544303466960689369d7ca9672b2530ea.tar.gz |
KIKIMR-18779 limit S3 reading threads
-rw-r--r-- | ydb/core/protos/counters_columnshard.proto | 1 | ||||
-rw-r--r-- | ydb/core/tx/columnshard/columnshard_impl.cpp | 1 | ||||
-rw-r--r-- | ydb/core/tx/tiering/s3_actor.cpp | 8 |
3 files changed, 10 insertions, 0 deletions
diff --git a/ydb/core/protos/counters_columnshard.proto b/ydb/core/protos/counters_columnshard.proto index 2b10625f1d0..804ac167441 100644 --- a/ydb/core/protos/counters_columnshard.proto +++ b/ydb/core/protos/counters_columnshard.proto @@ -133,6 +133,7 @@ enum ECumulativeCounters { COUNTER_FORGETTING_BYTES = 78 [(CounterOpts) = {Name: "ForgettingBytes"}]; COUNTER_READING_EXPORTED_BLOBS = 79 [(CounterOpts) = {Name: "ReadingExportedBlobs"}]; COUNTER_READING_EXPORTED_BYTES = 80 [(CounterOpts) = {Name: "ReadingExportedBytes"}]; + COUNTER_READING_EXPORTED_RANGES = 81 [(CounterOpts) = {Name: "ReadingExportedRanges"}]; } enum EPercentileCounters { diff --git a/ydb/core/tx/columnshard/columnshard_impl.cpp b/ydb/core/tx/columnshard/columnshard_impl.cpp index 923d07d453c..73781c3adc6 100644 --- a/ydb/core/tx/columnshard/columnshard_impl.cpp +++ b/ydb/core/tx/columnshard/columnshard_impl.cpp @@ -1046,6 +1046,7 @@ bool TColumnShard::GetExportedBlob(const TActorContext& ctx, TActorId dst, ui64 sumBytes += blobRange.Size; } IncCounter(COUNTER_READING_EXPORTED_BLOBS); + IncCounter(COUNTER_READING_EXPORTED_RANGES, get->BlobRanges.size()); IncCounter(COUNTER_READING_EXPORTED_BYTES, sumBytes); ctx.Send(s3, get.release()); diff --git a/ydb/core/tx/tiering/s3_actor.cpp b/ydb/core/tx/tiering/s3_actor.cpp index 0c5c930757d..d04e9866bb3 100644 --- a/ydb/core/tx/tiering/s3_actor.cpp +++ b/ydb/core/tx/tiering/s3_actor.cpp @@ -7,6 +7,9 @@ #include <ydb/core/protos/flat_scheme_op.pb.h> #include <ydb/core/wrappers/s3_wrapper.h> +#include <ydb/core/wrappers/s3_storage_config.h> + +#include <contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/include/aws/core/utils/threading/Executor.h> namespace NKikimr::NColumnShard { @@ -117,6 +120,11 @@ public: } ExternalStorageConfig = NWrappers::IExternalStorageConfig::Construct(msg.Settings); + if (auto* s3Config = dynamic_cast<NWrappers::NExternalStorage::TS3ExternalStorageConfig*>(ExternalStorageConfig.get())) { + static constexpr ui32 MAX_THREADS = 10; + Aws::Client::ClientConfiguration& awsConfig = s3Config->ConfigRef(); + awsConfig.executor = Aws::MakeShared<Aws::Utils::Threading::PooledThreadExecutor>("cs-s3", MAX_THREADS); + } if (ExternalStorageActorId) { Send(ExternalStorageActorId, new TEvents::TEvPoisonPill); ExternalStorageActorId = {}; |