aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDark-Avery <75083610+Dark-Avery@users.noreply.github.com>2024-01-31 00:05:08 +0300
committerGitHub <noreply@github.com>2024-01-31 00:05:08 +0300
commitbd5ea97297a8fe1417675ee6550a39447b262170 (patch)
tree607b1eeab12a5b71fadc43e56d4bb78fa0f0cdef
parenteabb0f0cc24c9572fb70f5769d2fb8dddcfefaf4 (diff)
downloadydb-bd5ea97297a8fe1417675ee6550a39447b262170.tar.gz
Change max size of DP table (#1423)
* Change max size of DP table * Change size of bitset for graph joins * minor fix * minor fix
-rw-r--r--ydb/library/yql/dq/opt/dq_opt_join_cost_based.cpp12
-rw-r--r--ydb/library/yql/providers/dq/common/yql_dq_settings.h2
2 files changed, 7 insertions, 7 deletions
diff --git a/ydb/library/yql/dq/opt/dq_opt_join_cost_based.cpp b/ydb/library/yql/dq/opt/dq_opt_join_cost_based.cpp
index 38d824e9ae..0ecc17f153 100644
--- a/ydb/library/yql/dq/opt/dq_opt_join_cost_based.cpp
+++ b/ydb/library/yql/dq/opt/dq_opt_join_cost_based.cpp
@@ -1014,7 +1014,7 @@ std::shared_ptr<TJoinOptimizerNode> OptimizeSubtree(const std::shared_ptr<TJoinO
return PickBestNonReorderabeJoin(joinTree->LeftArg, joinTree->RightArg, joinTree->JoinConditions, joinTree->JoinType, ctx);
}
- TGraph<64> joinGraph;
+ TGraph<128> joinGraph;
TVector<std::shared_ptr<IBaseOptimizerNode>> rels;
std::set<std::pair<TJoinColumn, TJoinColumn>> joinConditions;
@@ -1024,10 +1024,10 @@ std::shared_ptr<TJoinOptimizerNode> OptimizeSubtree(const std::shared_ptr<TJoinO
joinGraph.AddNode(i, rels[i]->Labels());
}
- // Check if we have more rels than DPccp can handle (64)
+ // Check if we have more rels than DPccp can handle (128)
// If that's the case - don't optimize the plan and just return it with
// computed statistics
- if (rels.size() >= 64) {
+ if (rels.size() >= 128) {
ComputeStatistics(joinTree, ctx);
return joinTree;
}
@@ -1055,7 +1055,7 @@ std::shared_ptr<TJoinOptimizerNode> OptimizeSubtree(const std::shared_ptr<TJoinO
YQL_CLOG(TRACE, CoreDq) << str.str();
}
- TDPccpSolver<64> solver(joinGraph, rels, ctx);
+ TDPccpSolver<128> solver(joinGraph, rels, ctx);
// Check that the dynamic table of DPccp is not too big
// If it is, just compute the statistics for the join tree and return it
@@ -1172,7 +1172,7 @@ public:
TOutput JoinSearch() override {
auto dummyProviderCtx = TDummyProviderContext();
- TDPccpSolver<64> solver(JoinGraph, Rels, dummyProviderCtx);
+ TDPccpSolver<128> solver(JoinGraph, Rels, dummyProviderCtx);
std::shared_ptr<TJoinOptimizerNode> result = solver.Solve();
if (Log) {
std::stringstream str;
@@ -1282,7 +1282,7 @@ private:
const std::function<void(const TString&)> Log;
TVector<std::shared_ptr<IBaseOptimizerNode>> Rels;
- TGraph<64> JoinGraph;
+ TGraph<128> JoinGraph;
};
IOptimizer* MakeNativeOptimizer(const IOptimizer::TInput& input, const std::function<void(const TString&)>& log) {
diff --git a/ydb/library/yql/providers/dq/common/yql_dq_settings.h b/ydb/library/yql/providers/dq/common/yql_dq_settings.h
index 3530a3178e..0b91a562fa 100644
--- a/ydb/library/yql/providers/dq/common/yql_dq_settings.h
+++ b/ydb/library/yql/providers/dq/common/yql_dq_settings.h
@@ -57,7 +57,7 @@ struct TDqSettings {
static constexpr ETaskRunnerStats TaskRunnerStats = ETaskRunnerStats::Basic;
static constexpr ESpillingEngine SpillingEngine = ESpillingEngine::Disable;
static constexpr ui32 CostBasedOptimizationLevel = 0;
- static constexpr ui32 MaxDPccpDPTableSize = 10000U;
+ static constexpr ui32 MaxDPccpDPTableSize = 16400U;
};