Skip to content

Commit 9491c44

Browse files
author
alexpaniman
committed
Add CBO parameter for configuring Shuffle Elimination cutoff
Adds configurable Shuffle Elimination cutoff option based on number of joins in a query. This option is primarily needed for benchmarking CBO with Shuffle Elimination on different queries, PR with benchmarks is going to be to merged at github <#27065>, but since it also changes yql/essentials, this PR on Arcanum needs to be merged first. commit_hash:5ca0bbf08f8ec4c370cba0cf2e4034e4a90d3cdf
1 parent 4ecc650 commit 9491c44

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

yql/essentials/core/cbo/cbo_optimizer_new.h

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -385,17 +385,19 @@ struct IOptimizerNew {
385385

386386
struct TExprContext;
387387

388+
struct TCBOSettings {
389+
ui32 MaxDPhypDPTableSize = 100000;
390+
bool ForceShuffleElimination = false;
391+
};
392+
388393
class IOptimizerFactory: private TNonCopyable {
389394
public:
390395
using TPtr = std::shared_ptr<IOptimizerFactory>;
391396
using TLogger = std::function<void(const TString&)>;
392397

393398
virtual ~IOptimizerFactory() = default;
394399

395-
struct TNativeSettings {
396-
ui32 MaxDPhypDPTableSize = 100000;
397-
};
398-
virtual IOptimizerNew::TPtr MakeJoinCostBasedOptimizerNative(IProviderContext& pctx, TExprContext& ctx, const TNativeSettings& settings) const = 0;
400+
virtual IOptimizerNew::TPtr MakeJoinCostBasedOptimizerNative(IProviderContext& pctx, TExprContext& ctx, const TCBOSettings& settings) const = 0;
399401

400402
struct TPGSettings {
401403
TLogger Logger = [](const TString&) {};

yql/essentials/core/cbo/simple/cbo_simple.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ namespace {
99

1010
class TSimpleOptimizerFactory: public IOptimizerFactory {
1111
public:
12-
virtual IOptimizerNew::TPtr MakeJoinCostBasedOptimizerNative(IProviderContext& pctx, TExprContext& ctx, const TNativeSettings& settings) const override {
12+
virtual IOptimizerNew::TPtr MakeJoinCostBasedOptimizerNative(IProviderContext& pctx, TExprContext& ctx, const TCBOSettings& settings) const override {
1313
Y_UNUSED(pctx);
1414
Y_UNUSED(ctx);
1515
Y_UNUSED(settings);

0 commit comments

Comments
 (0)