Jon Meredith commented on CASSANDRA-15277:

Branch: https://github.com/jonmeredith/cassandra/tree/CASSANDRA-15277
Pull request: https://github.com/apache/cassandra/pull/340 Add support for 
resizing the SEPExecutor thread pools used by some of the work stages.

This version has the smallest change to the SEPExecutor itself and introduces a 
new flag to make the workers release and re-acquire work permits while the 
thread setting the size adds/discards work permits to get the desired maximum 

There are two other design choices I could explore.

1) Convert the work permit representation to signed and have worker threads 
return permits while it is non-positive. This allows the resizing thread to 
immediately exit.

2) Save introducing the resizing volatile boolean, by dedicating a bit in 
`permits` to mark when resizing is taking place - it gets checked anyway, but 
would be a slightly larger change and would reduce the maximum number of 
taskwork permits representable.

> Make it possible to resize concurrent read / write thread pools at runtime
> --------------------------------------------------------------------------
>                 Key: CASSANDRA-15277
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-15277
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Local/Other
>            Reporter: Jon Meredith
>            Assignee: Jon Meredith
>            Priority: Normal
>              Labels: pull-request-available
>          Time Spent: 10m
>  Remaining Estimate: 0h
> To better mitigate cluster overload the executor services for various stages 
> should be configurable at runtime (probably as a JMX hot property). 
> Related to CASSANDRA-5044, this would add the capability to resize to 
> multiThreadedLowSignalStage pools based on SEPExecutor.

This message was sent by Atlassian JIRA

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

Reply via email to