aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorivanmorozov <ivanmorozov@yandex-team.com>2023-06-29 19:49:38 +0300
committerivanmorozov <ivanmorozov@yandex-team.com>2023-06-29 19:49:38 +0300
commit0da132170af57898a5d97bd0135546bbc28e307a (patch)
tree691263ff5f4caeccec2077ae3d3fe6e4166f6248
parent412cf517fc2e0a3d4bfc4d3ed885d1a1dcd5465c (diff)
downloadydb-0da132170af57898a5d97bd0135546bbc28e307a.tar.gz
use available packs count for kqp fetcher optimal usage
-rw-r--r--ydb/core/tx/columnshard/columnshard__index_scan.h4
-rw-r--r--ydb/core/tx/columnshard/columnshard__scan.cpp3
-rw-r--r--ydb/core/tx/columnshard/columnshard__scan.h3
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;