[feature](runtime filter) New session variable runtime_filter_wait_infinitely (#26888)

New session variable: runtime_filter_wait_infinitely. If set runtime_filter_wait_infinitely = true, consumer of rf will wait on receiving until query is timeout.
This commit is contained in:
zhiqiang
2023-11-14 07:05:59 -06:00
committed by GitHub
parent 9a4fd5be79
commit 30d1e6036c
9 changed files with 52 additions and 16 deletions

View File

@ -167,6 +167,8 @@ public class SessionVariable implements Serializable, Writable {
public static final String USE_RF_DEFAULT = "use_rf_default";
// Time in ms to wait until runtime filters are delivered.
public static final String RUNTIME_FILTER_WAIT_TIME_MS = "runtime_filter_wait_time_ms";
public static final String runtime_filter_wait_infinitely = "runtime_filter_wait_infinitely";
// Maximum number of bloom runtime filters allowed per query
public static final String RUNTIME_FILTERS_MAX_NUM = "runtime_filters_max_num";
// Runtime filter type used, For testing, Corresponds to TRuntimeFilterType
@ -792,6 +794,9 @@ public class SessionVariable implements Serializable, Writable {
@VariableMgr.VarAttr(name = RUNTIME_FILTER_WAIT_TIME_MS, needForward = true)
private int runtimeFilterWaitTimeMs = 1000;
@VariableMgr.VarAttr(name = runtime_filter_wait_infinitely, needForward = true)
private boolean runtimeFilterWaitInfinitely = false;
@VariableMgr.VarAttr(name = RUNTIME_FILTERS_MAX_NUM, needForward = true)
private int runtimeFiltersMaxNum = 10;
@ -2486,6 +2491,7 @@ public class SessionVariable implements Serializable, Writable {
tResult.setRuntimeFilterWaitTimeMs(runtimeFilterWaitTimeMs);
tResult.setRuntimeFilterMaxInNum(runtimeFilterMaxInNum);
tResult.setRuntimeFilterWaitInfinitely(runtimeFilterWaitInfinitely);
if (cpuResourceLimit > 0) {
TResourceLimit resourceLimit = new TResourceLimit();