diff options
author | Dark-Avery <75083610+Dark-Avery@users.noreply.github.com> | 2024-01-31 00:05:08 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-31 00:05:08 +0300 |
commit | bd5ea97297a8fe1417675ee6550a39447b262170 (patch) | |
tree | 607b1eeab12a5b71fadc43e56d4bb78fa0f0cdef | |
parent | eabb0f0cc24c9572fb70f5769d2fb8dddcfefaf4 (diff) | |
download | ydb-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.cpp | 12 | ||||
-rw-r--r-- | ydb/library/yql/providers/dq/common/yql_dq_settings.h | 2 |
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; }; |