abhishekrb19 commented on code in PR #18148:
URL: https://github.com/apache/druid/pull/18148#discussion_r2412148753


##########
docs/querying/query-context-reference.md:
##########
@@ -44,6 +44,7 @@ Unless otherwise noted, the following parameters apply to all 
query types, and t
 |Parameter          |Default                                 | Description     
     |
 
|-------------------|----------------------------------------|----------------------|
 |`timeout`          | `druid.server.http.defaultQueryTimeout`| Query timeout 
in millis, beyond which unfinished queries will be cancelled. 0 timeout means 
`no timeout` (up to the server-side maximum query timeout, 
`druid.server.http.maxQueryTimeout`). To set the default timeout and maximum 
timeout, see [Broker configuration](../configuration/index.md#broker) |
+|`perSegmentTimeout`| `null`                                 | Per-segment 
processing timeout in millis, beyond which unfinished queries will be 
cancelled. Should be ≤ `timeout`. 0 `perSegmentTimeout` means `no per-segment 
timeout`. Generally, a standard default should be O(X seconds). A cluster-wide 
default value for this query context can be specified via 
`druid.query.default.context.perSegmentTimeout`.|

Review Comment:
   I think using -1 as the default to disable per segment timeouts would be 
clearer. However, it's consistent with `timeout`'s default strategy, so this is 
okay



##########
docs/configuration/index.md:
##########
@@ -1371,6 +1371,7 @@ Processing properties set on the Middle Manager are 
passed through to Peons.
 |`druid.processing.formatString`|Realtime and Historical processes use this 
format string to name their processing threads.|processing-%s|
 |`druid.processing.numMergeBuffers`|The number of direct memory buffers 
available for merging query results. The buffers are sized by 
`druid.processing.buffer.sizeBytes`. This property is effectively a concurrency 
limit for queries that require merging buffers. If you are using any queries 
that require merge buffers (currently, just groupBy) then you should have at 
least two of these.|`max(2, druid.processing.numThreads / 4)`|
 |`druid.processing.numThreads`|The number of processing threads to have 
available for parallel processing of segments. Our rule of thumb is `num_cores 
- 1`, which means that even under heavy load there will still be one core 
available to do background tasks like talking with ZooKeeper and pulling down 
segments. If only one core is available, this property defaults to the value 
`1`.|Number of cores - 1 (or 1)|
+|`druid.processing.numTimeoutThreads`|The number of processing threads to have 
available for handling per-segment query timeouts. Setting this value to `0` 
removes the ability to service per-segment timeouts, irrespective of 
query-level configs. As these threads are just servicing timers, it's 
recommended to set this value to some small percent (e.g. 5%) of the total 
query processing cores available to the peon.|0|

Review Comment:
   "irrespective of query-level configs." -> did you intend to say query 
context like `perSegmentTimeout`? I think it'll be better to be specific here.



##########
docs/querying/query-context-reference.md:
##########
@@ -44,6 +44,7 @@ Unless otherwise noted, the following parameters apply to all 
query types, and t
 |Parameter          |Default                                 | Description     
     |
 
|-------------------|----------------------------------------|----------------------|
 |`timeout`          | `druid.server.http.defaultQueryTimeout`| Query timeout 
in millis, beyond which unfinished queries will be cancelled. 0 timeout means 
`no timeout` (up to the server-side maximum query timeout, 
`druid.server.http.maxQueryTimeout`). To set the default timeout and maximum 
timeout, see [Broker configuration](../configuration/index.md#broker) |
+|`perSegmentTimeout`| `null`                                 | Per-segment 
processing timeout in millis, beyond which unfinished queries will be 
cancelled. Should be ≤ `timeout`. 0 `perSegmentTimeout` means `no per-segment 
timeout`. Generally, a standard default should be O(X seconds). A cluster-wide 
default value for this query context can be specified via 
`druid.query.default.context.perSegmentTimeout`.|

Review Comment:
   > Should be ≤ `timeout`
   
   I don't think there's any validation on the query path that checks for this 
invariant right? So this is more of a recommendation?



##########
docs/querying/query-context-reference.md:
##########
@@ -44,6 +44,7 @@ Unless otherwise noted, the following parameters apply to all 
query types, and t
 |Parameter          |Default                                 | Description     
     |
 
|-------------------|----------------------------------------|----------------------|
 |`timeout`          | `druid.server.http.defaultQueryTimeout`| Query timeout 
in millis, beyond which unfinished queries will be cancelled. 0 timeout means 
`no timeout` (up to the server-side maximum query timeout, 
`druid.server.http.maxQueryTimeout`). To set the default timeout and maximum 
timeout, see [Broker configuration](../configuration/index.md#broker) |
+|`perSegmentTimeout`| `null`                                 | Per-segment 
processing timeout in millis, beyond which unfinished queries will be 
cancelled. Should be ≤ `timeout`. 0 `perSegmentTimeout` means `no per-segment 
timeout`. Generally, a standard default should be O(X seconds). A cluster-wide 
default value for this query context can be specified via 
`druid.query.default.context.perSegmentTimeout`.|

Review Comment:
   ```suggestion
   |`perSegmentTimeout`| `null`                                 | Per-segment 
processing timeout in millis, beyond which unfinished queries occupying the 
processing pool will be cancelled. Should be ≤ `timeout`. Setting 
`perSegmentTimeout` to 0 means there's no per-segment timeout (up to the 
server-side maximum per segment timeout 
`druid.query.default.context.perSegmentTimeout`). Generally, a standard default 
should be in the order of a few seconds (e.g., 5 seconds). A cluster-wide 
default value for this query context can be specified via 
`druid.query.default.context.perSegmentTimeout`.|
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@druid.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@druid.apache.org
For additional commands, e-mail: commits-h...@druid.apache.org

Reply via email to