diff options
author | ivanmorozov <ivanmorozov@yandex-team.com> | 2023-06-29 19:49:38 +0300 |
---|---|---|
committer | ivanmorozov <ivanmorozov@yandex-team.com> | 2023-06-29 19:49:38 +0300 |
commit | 0da132170af57898a5d97bd0135546bbc28e307a (patch) | |
tree | 691263ff5f4caeccec2077ae3d3fe6e4166f6248 | |
parent | 412cf517fc2e0a3d4bfc4d3ed885d1a1dcd5465c (diff) | |
download | ydb-0da132170af57898a5d97bd0135546bbc28e307a.tar.gz |
use available packs count for kqp fetcher optimal usage
-rw-r--r-- | ydb/core/tx/columnshard/columnshard__index_scan.h | 4 | ||||
-rw-r--r-- | ydb/core/tx/columnshard/columnshard__scan.cpp | 3 | ||||
-rw-r--r-- | ydb/core/tx/columnshard/columnshard__scan.h | 3 |
3 files changed, 10 insertions, 0 deletions
diff --git a/ydb/core/tx/columnshard/columnshard__index_scan.h b/ydb/core/tx/columnshard/columnshard__index_scan.h index 26ebae045e6..44b4fb85651 100644 --- a/ydb/core/tx/columnshard/columnshard__index_scan.h +++ b/ydb/core/tx/columnshard/columnshard__index_scan.h @@ -41,6 +41,10 @@ public: TColumnShardScanIterator(NOlap::TReadMetadata::TConstPtr readMetadata, NColumnShard::TDataTasksProcessorContainer processor, const NColumnShard::TConcreteScanCounters& scanCounters); ~TColumnShardScanIterator(); + virtual std::optional<ui32> GetAvailableResultsCount() const override { + return ReadyResults.size(); + } + virtual void Apply(IDataTasksProcessor::ITask::TPtr task) override; virtual bool HasWaitingTasks() const override; diff --git a/ydb/core/tx/columnshard/columnshard__scan.cpp b/ydb/core/tx/columnshard/columnshard__scan.cpp index 6a1d76291d6..b4747eb6aee 100644 --- a/ydb/core/tx/columnshard/columnshard__scan.cpp +++ b/ydb/core/tx/columnshard/columnshard__scan.cpp @@ -458,6 +458,9 @@ private: Result->PageFault = pageFault; Result->PageFaults = PageFaults; Result->Finished = lastBatch; + if (ScanIterator) { + Result->AvailablePacks = ScanIterator->GetAvailableResultsCount(); + } TDuration totalElapsedTime = TDuration::Seconds(GetElapsedTicksAsSeconds()); // Result->TotalTime = totalElapsedTime - LastReportedElapsedTime; // TODO: Result->CpuTime = ... diff --git a/ydb/core/tx/columnshard/columnshard__scan.h b/ydb/core/tx/columnshard/columnshard__scan.h index 37e86afe291..efd721b093a 100644 --- a/ydb/core/tx/columnshard/columnshard__scan.h +++ b/ydb/core/tx/columnshard/columnshard__scan.h @@ -26,6 +26,9 @@ public: virtual void Apply(IDataTasksProcessor::ITask::TPtr /*processor*/) { } + virtual std::optional<ui32> GetAvailableResultsCount() const { + return {}; + } virtual void AddData(const NBlobCache::TBlobRange& /*blobRange*/, TString /*data*/) {} virtual bool HasWaitingTasks() const = 0; virtual bool Finished() const = 0; |