Benedict Elliott Smith created CASSANDRA-21375:
--------------------------------------------------
Summary: Accord: SignalLock and Signal Loop executor
Key: CASSANDRA-21375
URL: https://issues.apache.org/jira/browse/CASSANDRA-21375
Project: Apache Cassandra
Issue Type: Improvement
Components: Accord
Reporter: Benedict Elliott Smith
Introduce AccordExecutorSignalLoop, using SignalLock, that aims to reduce lock
contention:
- consumer and producer threads wait signal without acquiring the lock
first
- lock owners may prepare more work than they need, moving some
dynamically-adjusted portion of the work from the prioritised lock-managed
structures onto a non-blocking queue, so that other threads may consume work
from there; the portion is continually micro-adjusted to target some available
work whenever the lock is acquired.
- adopts/supports some features of the SEPExecutor:
- threads may auto-adjust the number of running threads based on how much
time is collectively spent waiting, to minimise time spent signalling
- consumers may (timed-sleep) poll rather than await a signal, reducing
the number of kernel interactions needed; relying on the auto-adjustment to
bound the time the scheduler spends waking threads with no work to do
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]