[
https://issues.apache.org/jira/browse/CASSANDRA-15277?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16906591#comment-16906591
]
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
concurrency.
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
(v7.6.14#76016)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]