Executor QoS - #4967
Open
belliottsmith wants to merge 1 commit into
Open
Conversation
belliottsmith
force-pushed
the
executor-incr
branch
from
July 28, 2026 11:44
4513899 to
15bede1
Compare
belliottsmith
force-pushed
the
executor-incr
branch
2 times, most recently
from
July 30, 2026 11:42
fda21db to
c4b0257
Compare
belliottsmith
force-pushed
the
executor-incr
branch
4 times, most recently
from
August 22, 2026 16:02
f433bea to
6978525
Compare
belliottsmith
force-pushed
the
executor-incr
branch
10 times, most recently
from
September 7, 2026 11:51
7f74000 to
4cb5305
Compare
QoS: Tasks are categorised so that their relative arrival/service rate can be tracked by 7-bit decaying counters. Work may be assigned by a mixture of highest priority task or least-serviced queue by a deficit round-robin scheme. This prevents e.g. cache flushes from dominating executor threads. Incremental Execution: Implementation fully implements enriched ASYNC/INCR ExecutionContext semantics, so that tasks may be decomposed into multiple steps with optional ATOMIC isolation. This permits sync points in particular to be processed in smaller batches, allowing smaller non-conflicting tasks to interleave. Also Improve: * Continuation tasks allow declaring work that logically continues prior work, and that must execute before treating the initiating task as complete (distinct from notifying any callback); Continuation or partial incremental tasks that fail with ATOMIC visibility mark a key as unavailable to prevent reading inconsistent state. * Consequences of tasks are submitted as part of the task's completion * Consequences of durable tasks that fail are cancelled before they are submitted * Handle partial task failure: propagate failure to counting results instead of silently decrementing, and abandon dependent continuations. * ExclusiveExecutor releases its lock eagerly, opening up tryExecuteImmediately to more executions * Memtables blocking an Accord durability status update will be flushed periodically * NoSpamLogger.NoDuplicateSpamLogStatement: rate-limit per distinct exception * Claude-generated formal specification of execution semantics under formalise/accord/execution * AutoRepair shutdown executors simultaneously, and terminate running sessions * Shutdown UDF and SASI executors * FailureDetector: pass Double.MAX_VALUE on forceConvict to ensure listeners process an explicit shutdown Also Fix: * Data races updating Task.info (between executing thread and executor lock owner) * AccordExecutor/ThreadLocalTaskRunner lock accounting could be corrupted on shutdown * SignalLock incorrectly limited signals to MAX_THREADS not MAX_SIGNAL_COUNT (throwing an exception) * SignalLock invisible bug in tryAcquireAsyncInAwaitLoop * Reject negative histogram values (LogLinearHistogram, LogLinearDecayingHistograms), and ensure callers do not submit * RepairOption.permitNoQuorum() returned repairAccord instead of permitNoQuorum. * FailureDetector: do not convict endpoints already marked down, since Accord may become active while marked !isAlive; patch by Benedict; reviewed by Ariel Weisberg for CASSANDRA-21662
belliottsmith
force-pushed
the
executor-incr
branch
from
September 7, 2026 17:46
82fd1b7 to
f72d4f0
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Thanks for sending a pull request! Here are some tips if you're new here:
Commit messages should follow the following format:
The Cassandra Jira