@@ -28,6 +28,12 @@ struct TDqSettings {
28
28
File /* "file" */ ,
29
29
};
30
30
31
+ enum class EEnabledSpillingNodes {
32
+ None,
33
+ OnlyGraceJoin,
34
+ All,
35
+ };
36
+
31
37
struct TDefault {
32
38
static constexpr ui32 MaxTasksPerStage = 20U ;
33
39
static constexpr ui32 MaxTasksPerOperation = 70U ;
@@ -60,7 +66,7 @@ struct TDqSettings {
60
66
static constexpr ui32 MaxDPccpDPTableSize = 16400U ;
61
67
static constexpr ui64 MaxAttachmentsSize = 2_GB;
62
68
static constexpr bool SplitStageOnDqReplicate = true ;
63
- static constexpr bool EnableSpillingInGraceJoin = false ;
69
+ static constexpr EEnabledSpillingNodes EnabledSpillingNodes = EEnabledSpillingNodes::None ;
64
70
};
65
71
66
72
using TPtr = std::shared_ptr<TDqSettings>;
@@ -132,7 +138,7 @@ struct TDqSettings {
132
138
NCommon::TConfSetting<bool , false > DisableLLVMForBlockStages;
133
139
NCommon::TConfSetting<bool , false > SplitStageOnDqReplicate;
134
140
135
- NCommon::TConfSetting<bool , false > EnableSpillingInGraceJoin ;
141
+ NCommon::TConfSetting<EEnabledSpillingNodes , false > EnabledSpillingNodes ;
136
142
137
143
NCommon::TConfSetting<ui64, false > _MaxAttachmentsSize;
138
144
NCommon::TConfSetting<bool , false > DisableCheckpoints;
@@ -219,7 +225,8 @@ struct TDqSettings {
219
225
}
220
226
221
227
bool IsSpillingInGraceJoinEnabled () const {
222
- return IsSpillingEnabled () && EnableSpillingInGraceJoin.Get ().GetOrElse (false );
228
+ auto enabledNodes = EnabledSpillingNodes.Get ().GetOrElse (TDqSettings::TDefault::EnabledSpillingNodes);
229
+ return IsSpillingEnabled () && (enabledNodes == EEnabledSpillingNodes::OnlyGraceJoin || enabledNodes == EEnabledSpillingNodes::All);
223
230
}
224
231
225
232
bool IsDqReplicateEnabled (const TTypeAnnotationContext& typesCtx) const {
0 commit comments