diff --git a/ydb/library/yql/cfg/tests/gateways.conf b/ydb/library/yql/cfg/tests/gateways.conf index efe250f79019..8c420a5109a4 100644 --- a/ydb/library/yql/cfg/tests/gateways.conf +++ b/ydb/library/yql/cfg/tests/gateways.conf @@ -188,6 +188,11 @@ Dq { Name: "UseWideChannels" Value: "true" } + + DefaultSettings { + Name: "SplitStageOnDqReplicate" + Value: "true" + } } Fs { diff --git a/ydb/library/yql/providers/dq/common/yql_dq_settings.cpp b/ydb/library/yql/providers/dq/common/yql_dq_settings.cpp index 5aac22998d90..8ea030222958 100644 --- a/ydb/library/yql/providers/dq/common/yql_dq_settings.cpp +++ b/ydb/library/yql/providers/dq/common/yql_dq_settings.cpp @@ -83,10 +83,18 @@ TDqConfiguration::TDqConfiguration() { .ValueSetter([this](const TString&, TDqSettings::ESpillingEngine value) { SpillingEngine = value; if (value != TDqSettings::ESpillingEngine::Disable) { + SplitStageOnDqReplicate = false; EnableDqReplicate = true; } }); REGISTER_SETTING(*this, DisableLLVMForBlockStages); + REGISTER_SETTING(*this, SplitStageOnDqReplicate) + .ValueSetter([this](const TString&, bool value) { + SplitStageOnDqReplicate = value; + if (!value) { + EnableDqReplicate = true; + } + }); } } // namespace NYql 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 30c7d99b9271..c0284e015c96 100644 --- a/ydb/library/yql/providers/dq/common/yql_dq_settings.h +++ b/ydb/library/yql/providers/dq/common/yql_dq_settings.h @@ -127,6 +127,7 @@ struct TDqSettings { NCommon::TConfSetting UseBlockReader; NCommon::TConfSetting SpillingEngine; NCommon::TConfSetting DisableLLVMForBlockStages; + NCommon::TConfSetting SplitStageOnDqReplicate; // This options will be passed to executor_actor and worker_actor template diff --git a/ydb/library/yql/providers/dq/provider/exec/yql_dq_exectransformer.cpp b/ydb/library/yql/providers/dq/provider/exec/yql_dq_exectransformer.cpp index 5c1afce66844..5de8c10f6b6a 100644 --- a/ydb/library/yql/providers/dq/provider/exec/yql_dq_exectransformer.cpp +++ b/ydb/library/yql/providers/dq/provider/exec/yql_dq_exectransformer.cpp @@ -266,7 +266,7 @@ struct TDqsPipelineConfigurator : public IPipelineConfigurator { } pipeline->Add( NDq::CreateDqBuildPhyStagesTransformer( - State_->Settings->SpillingEngine.Get().GetOrElse(TDqSettings::TDefault::SpillingEngine) != TDqSettings::ESpillingEngine::Disable, + !State_->Settings->SplitStageOnDqReplicate.Get().GetOrElse(true), *pipeline->GetTypeAnnotationContext(), mode ), "BuildPhy");