@@ -295,6 +295,8 @@ pub struct SearcherConfig {
295295 pub split_cache : Option < SplitCacheLimits > ,
296296 #[ serde( default = "SearcherConfig::default_request_timeout_secs" ) ]
297297 request_timeout_secs : NonZeroU64 ,
298+ #[ serde( default = "SearcherConfig::default_request_timeout_secs" ) ]
299+ leaf_request_timeout_secs : NonZeroU64 ,
298300 #[ serde( default ) ]
299301 #[ serde( skip_serializing_if = "Option::is_none" ) ]
300302 pub storage_timeout_policy : Option < StorageTimeoutPolicy > ,
@@ -519,6 +521,7 @@ impl Default for SearcherConfig {
519521 aggregation_bucket_limit : 65000 ,
520522 split_cache : None ,
521523 request_timeout_secs : Self :: default_request_timeout_secs ( ) ,
524+ leaf_request_timeout_secs : Self :: default_request_timeout_secs ( ) ,
522525 storage_timeout_policy : None ,
523526 warmup_memory_budget : ByteSize :: gb ( 100 ) ,
524527 warmup_single_split_initial_allocation : ByteSize :: mb ( 300 ) ,
@@ -528,10 +531,14 @@ impl Default for SearcherConfig {
528531}
529532
530533impl SearcherConfig {
531- /// The timeout after which a search should be cancelled
534+ /// The timeout applied at the gRPC layer for search requests
532535 pub fn request_timeout ( & self ) -> Duration {
533536 Duration :: from_secs ( self . request_timeout_secs . get ( ) )
534537 }
538+ /// The timeout applied at the leaf search layer
539+ pub fn leaf_request_timeout ( & self ) -> Duration {
540+ Duration :: from_secs ( self . leaf_request_timeout_secs . get ( ) )
541+ }
535542 fn default_request_timeout_secs ( ) -> NonZeroU64 {
536543 NonZeroU64 :: new ( 30 ) . unwrap ( )
537544 }
0 commit comments