risingwave_common/config/
batch.rs1use risingwave_common_proc_macro::serde_prefix_all;
16
17use super::*;
18
19#[serde_with::apply(Option => #[serde(with = "none_as_empty_string")])]
21#[derive(Clone, Debug, Serialize, Deserialize, DefaultFromSerde, ConfigDoc)]
22pub struct BatchConfig {
23 #[serde(default)]
26 pub worker_threads_num: Option<usize>,
27
28 #[serde(default)]
29 #[config_doc(nested)]
30 pub developer: BatchDeveloperConfig,
31
32 #[serde(default)]
34 pub distributed_query_limit: Option<u64>,
35
36 #[serde(default)]
38 pub max_batch_queries_per_frontend_node: Option<u64>,
39
40 #[serde(default = "default::batch::enable_barrier_read")]
41 pub enable_barrier_read: bool,
42
43 #[serde(default = "default::batch::statement_timeout_in_sec")]
45 pub statement_timeout_in_sec: u32,
46
47 #[serde(default, flatten)]
48 #[config_doc(omitted)]
49 pub unrecognized: Unrecognized<Self>,
50
51 #[serde(default)]
52 pub frontend_compute_runtime_worker_threads: Option<usize>,
54
55 #[serde(default = "default::batch::mask_worker_temporary_secs")]
57 pub mask_worker_temporary_secs: usize,
58
59 #[serde(default = "default::batch::redact_sql_option_keywords")]
63 pub redact_sql_option_keywords: Vec<String>,
64
65 #[serde(default = "default::batch::redact_sql_option_allowlist")]
69 pub redact_sql_option_allowlist: Vec<String>,
70
71 #[serde(default = "default::batch::enable_spill")]
73 pub enable_spill: bool,
74}
75
76#[serde_prefix_all("batch_", mode = "alias")]
80#[serde_with::apply(Option => #[serde(with = "none_as_empty_string")])]
81#[derive(Clone, Debug, Serialize, Deserialize, DefaultFromSerde, ConfigDoc)]
82pub struct BatchDeveloperConfig {
83 #[serde(default = "default::developer::connector_message_buffer_size")]
86 pub connector_message_buffer_size: usize,
87
88 #[serde(default = "default::developer::batch_output_channel_size")]
90 pub output_channel_size: usize,
91
92 #[serde(default = "default::developer::batch_receiver_channel_size")]
93 pub receiver_channel_size: usize,
94
95 #[serde(default = "default::developer::batch_root_stage_channel_size")]
96 pub root_stage_channel_size: usize,
97
98 #[serde(default = "default::developer::batch_chunk_size")]
100 pub chunk_size: usize,
101
102 #[serde(default = "default::developer::batch_exchange_connection_pool_size")]
105 pub(super) exchange_connection_pool_size: Option<u16>,
106
107 #[serde(default)]
108 pub compute_client_config: RpcClientConfig,
109
110 #[serde(default)]
111 pub frontend_client_config: RpcClientConfig,
112
113 #[serde(default = "default::developer::batch_local_execute_buffer_size")]
114 pub local_execute_buffer_size: usize,
115}
116
117pub mod default {
118 pub use crate::config::default::developer;
119
120 pub mod batch {
121 pub fn enable_barrier_read() -> bool {
122 false
123 }
124
125 pub fn enable_spill() -> bool {
126 true
127 }
128
129 pub fn statement_timeout_in_sec() -> u32 {
130 60 * 60
132 }
133
134 pub fn mask_worker_temporary_secs() -> usize {
135 30
136 }
137
138 pub fn redact_sql_option_keywords() -> Vec<String> {
139 [
140 "credential",
141 "key",
142 "password",
143 "private",
144 "secret",
145 "token",
146 ]
147 .into_iter()
148 .map(str::to_owned)
149 .collect()
150 }
151
152 pub fn redact_sql_option_allowlist() -> Vec<String> {
153 vec!["primary_key".to_owned()]
154 }
155 }
156}