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]

Reply via email to