Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion quickwit/quickwit-config/src/node_config/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -295,6 +295,8 @@ pub struct SearcherConfig {
pub split_cache: Option<SplitCacheLimits>,
#[serde(default = "SearcherConfig::default_request_timeout_secs")]
request_timeout_secs: NonZeroU64,
#[serde(default = "SearcherConfig::default_request_timeout_secs")]
leaf_request_timeout_secs: NonZeroU64,
#[serde(default)]
#[serde(skip_serializing_if = "Option::is_none")]
pub storage_timeout_policy: Option<StorageTimeoutPolicy>,
Expand Down Expand Up @@ -519,6 +521,7 @@ impl Default for SearcherConfig {
aggregation_bucket_limit: 65000,
split_cache: None,
request_timeout_secs: Self::default_request_timeout_secs(),
leaf_request_timeout_secs: Self::default_request_timeout_secs(),
storage_timeout_policy: None,
warmup_memory_budget: ByteSize::gb(100),
warmup_single_split_initial_allocation: ByteSize::mb(300),
Expand All @@ -528,10 +531,14 @@ impl Default for SearcherConfig {
}

impl SearcherConfig {
/// The timeout after which a search should be cancelled
/// The timeout applied at the gRPC layer for search requests
pub fn request_timeout(&self) -> Duration {
Duration::from_secs(self.request_timeout_secs.get())
}
/// The timeout applied at the leaf search layer
pub fn leaf_request_timeout(&self) -> Duration {
Duration::from_secs(self.leaf_request_timeout_secs.get())
}
fn default_request_timeout_secs() -> NonZeroU64 {
NonZeroU64::new(30).unwrap()
}
Expand Down
1 change: 1 addition & 0 deletions quickwit/quickwit-config/src/node_config/serialize.rs
Original file line number Diff line number Diff line change
Expand Up @@ -680,6 +680,7 @@ mod tests {
_max_num_concurrent_split_streams: Some(serde::de::IgnoredAny),
split_cache: None,
request_timeout_secs: NonZeroU64::new(30).unwrap(),
leaf_request_timeout_secs: NonZeroU64::new(30).unwrap(),
storage_timeout_policy: Some(crate::StorageTimeoutPolicy {
min_throughtput_bytes_per_secs: 100_000,
timeout_millis: 2_000,
Expand Down
2 changes: 1 addition & 1 deletion quickwit/quickwit-search/src/service.rs
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ impl SearchService for SearchServiceImpl {
targeted_splits: num_splits,
status: None,
};
let timeout = self.searcher_context.searcher_config.request_timeout();
let timeout = self.searcher_context.searcher_config.leaf_request_timeout();
tokio::time::timeout(timeout, tracked_future).await?
}

Expand Down
Loading