This is an automated email from the ASF dual-hosted git repository.
belliottsmith pushed a change to branch cassandra-6.0
in repository https://gitbox.apache.org/repos/asf/cassandra.git
from 8cfc3a67be Upgrade async-profiler to 4.5
add f890bd55a8 Accord executor QoS and incremental execution 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 b [...]
No new revisions were added by this update.
Summary of changes:
CHANGES.txt | 1 +
build.xml | 8 +-
.../pages/architecture/accord-architecture.adoc | 6 +-
formalise/accord/execution/INVARIANTS.md | 371 ++++
formalise/accord/execution/README.md | 454 ++++
formalise/accord/execution/lean/AccordAcyclic.lean | 619 ++++++
formalise/accord/execution/tla/AccordExec.tla | 644 ++++++
formalise/accord/execution/tla/AccordNotify.tla | 688 ++++++
.../accord/execution/tla/examples/Baseline.cfg | 48 +
.../accord/execution/tla/examples/Baseline.tla | 23 +
formalise/accord/execution/tla/examples/Notify.cfg | 53 +
formalise/accord/execution/tla/examples/Notify.tla | 26 +
formalise/accord/execution/tla/examples/README.md | 14 +
formalise/accord/execution/tla/matrix.py | 577 +++++
formalise/accord/execution/tla/notify.py | 449 ++++
modules/accord | 2 +-
.../cassandra/concurrent/CassandraThread.java | 74 +-
.../org/apache/cassandra/concurrent/Stage.java | 2 +-
.../org/apache/cassandra/config/AccordConfig.java | 94 +-
.../cassandra/config/DatabaseDescriptor.java | 23 +
.../cql3/functions/JavaBasedUDFunction.java | 8 +
.../cassandra/db/memtable/AbstractMemtable.java | 17 +-
.../org/apache/cassandra/db/memtable/Memtable.java | 2 +
.../cassandra/db/virtual/AccordDebugKeyspace.java | 35 +-
.../apache/cassandra/db/virtual/QueriesTable.java | 2 +-
.../org/apache/cassandra/gms/FailureDetector.java | 7 +-
.../index/sasi/disk/PerSSTableIndexWriter.java | 7 +
.../org/apache/cassandra/io/util/PathUtils.java | 1 -
.../cassandra/metrics/AccordCacheMetrics.java | 4 +-
.../cassandra/metrics/AccordExecutorMetrics.java | 4 +-
.../cassandra/metrics/AccordReplicaMetrics.java | 6 +-
.../metrics/LogLinearDecayingHistograms.java | 12 +
.../cassandra/metrics/LogLinearHistogram.java | 9 +
.../cassandra/repair/autorepair/AutoRepair.java | 36 +-
.../cassandra/repair/messages/RepairOption.java | 2 +-
.../cassandra/service/ActiveRepairService.java | 2 +
.../apache/cassandra/service/StorageService.java | 6 +-
.../cassandra/service/accord/AccordCacheEntry.java | 764 -------
.../service/accord/AccordCommandStore.java | 321 ++-
.../service/accord/AccordCommandStores.java | 71 +-
.../cassandra/service/accord/AccordDataStore.java | 2 +-
.../service/accord/AccordDurableOnFlush.java | 48 +-
.../cassandra/service/accord/AccordExecutor.java | 2150 -------------------
.../service/accord/AccordExecutorSignalLoop.java | 472 -----
.../service/accord/AccordFetchCoordinator.java | 4 +-
.../cassandra/service/accord/AccordKeyspace.java | 12 +-
.../service/accord/AccordSafeCommand.java | 151 --
.../service/accord/AccordSafeCommandsForKey.java | 158 --
.../cassandra/service/accord/AccordSafeState.java | 57 -
.../cassandra/service/accord/AccordService.java | 31 +-
.../cassandra/service/accord/AccordTask.java | 1179 ----------
.../cassandra/service/accord/IAccordService.java | 1 +
.../service/accord/InMemoryRangeIndex.java | 4 +-
.../cassandra/service/accord/RangeIndex.java | 22 +-
.../cassandra/service/accord/api/AccordAgent.java | 27 +-
.../service/accord/debug/DebugBlockedTxns.java | 10 +-
.../service/accord/debug/DebugExecution.java | 86 +-
.../service/accord/debug/DebugTxnGraph.java | 8 +-
.../AbstractLockLoop.java} | 227 +-
.../AbstractLoop.java} | 61 +-
.../AbstractSemiSyncSubmit.java} | 14 +-
.../accord/{ => execution}/AccordCache.java | 371 ++--
.../service/accord/execution/AccordCacheEntry.java | 1366 ++++++++++++
.../execution/AccordCacheEntryMiniQueue.java} | 29 +-
.../accord/execution/AccordCacheEntryQueue.java | 891 ++++++++
.../service/accord/execution/AccordExecutor.java | 848 ++++++++
.../{ => execution}/AccordExecutorAsyncSubmit.java | 12 +-
.../AccordExecutorSemiSyncSubmit.java | 29 +-
.../accord/execution/AccordExecutorSignalLoop.java | 571 +++++
.../{ => execution}/AccordExecutorSimple.java | 39 +-
.../{ => execution}/AccordExecutorSyncSubmit.java | 25 +-
.../service/accord/execution/CancelTask.java | 66 +
.../accord/execution/ExclusiveExecutor.java | 452 ++++
.../accord/execution/IOTask.java} | 22 +-
.../service/accord/execution/IOTaskLoad.java | 85 +
.../service/accord/execution/IOTaskSave.java | 72 +
.../accord/execution/IOTaskWrapper.java} | 49 +-
.../execution/InconsistentEntryException.java} | 16 +-
.../Loops.java} | 19 +-
.../cassandra/service/accord/execution/Plain.java | 105 +
.../service/accord/execution/PlainChain.java | 92 +
.../accord/execution/PlainChainDebuggable.java} | 31 +-
.../service/accord/execution/PlainRunnable.java | 88 +
.../service/accord/execution/SafeTask.java | 2242 ++++++++++++++++++++
.../service/accord/execution/SaferCommand.java | 111 +
.../SaferCommandStore.java} | 171 +-
.../accord/execution/SaferCommandsForKey.java | 107 +
.../service/accord/execution/SaferState.java | 47 +
.../cassandra/service/accord/execution/Task.java | 1073 ++++++++++
.../service/accord/execution/TaskInfo.java | 100 +
.../service/accord/execution/TaskQueue.java | 111 +
.../service/accord/execution/TaskQueueMulti.java | 549 +++++
.../accord/execution/TaskQueueRunnable.java | 95 +
.../accord/execution/TaskQueueStandalone.java} | 52 +-
.../service/accord/execution/TaskRunner.java | 143 ++
.../service/accord/execution/Tranches.java | 268 +++
.../accord/execution/Unstoppable.java} | 14 +-
.../accord/execution/Unterminatable.java} | 6 +-
.../accord/interop/AccordInteropAdapter.java | 10 +-
.../accord/interop/AccordInteropExecution.java | 6 +-
.../accord/interop/AccordInteropPersist.java | 4 +-
.../service/accord/journal/JournalRangeIndex.java | 16 +-
.../cassandra/service/accord/txn/TxnNamedRead.java | 5 +-
.../cassandra/service/accord/txn/TxnRead.java | 2 +-
.../cassandra/service/accord/txn/TxnWrite.java | 4 +-
.../tcm/transformations/AccordMarkHardRemoved.java | 2 +-
.../org/apache/cassandra/utils/NoSpamLogger.java | 169 +-
.../cassandra/utils/concurrent/SignalLock.java | 74 +-
.../service/accord/AccordExecutorBurnTest.java | 1 +
test/conf/cassandra.yaml | 3 +
.../distributed/impl/AbstractCluster.java | 9 +
.../cassandra/distributed/impl/Instance.java | 120 +-
.../distributed/test/ClearSnapshotTest.java | 162 +-
.../distributed/test/DecommissionTest.java | 2 +-
.../cassandra/distributed/test/ReadRepairTest.java | 2 +
.../distributed/test/ReadSpeculationTest.java | 2 +-
.../cassandra/distributed/test/TestBaseImpl.java | 2 +-
.../test/accord/AccordBootstrapTest.java | 4 +-
.../distributed/test/accord/AccordCQLTestBase.java | 110 +-
.../test/accord/AccordDropTableBase.java | 20 +-
.../test/accord/AccordIncrementalRepairTest.java | 4 +-
.../distributed/test/accord/AccordLoadTest.java | 24 +-
.../distributed/test/accord/AccordMetricsTest.java | 2 +-
.../distributed/test/accord/AccordMoveTest.java | 4 +-
.../AccordRecoverFromAvailabilityLossTest.java | 4 +-
.../test/accord/AccordRegainRangesTest.java | 4 +-
.../AccordJournalConsistentExpungeTest.java | 5 +-
.../test/sai/IndexStreamingFailureTest.java | 4 +-
.../test/topology/DecommissionAvoidTimeouts.java | 2 +-
.../fuzz/topology/AccordRebootstrapTest.java | 2 +-
.../apache/cassandra/simulator/ActionSchedule.java | 5 +-
.../execution/AccordCommandStoreExecutorTest.java | 1869 ++++++++++++++++
...AbstractPairOfSequencesPaxosSimulationTest.java | 8 +-
.../simulator/test/AccordExecutorTest.java | 321 ++-
test/unit/org/apache/cassandra/cql3/CQLTester.java | 2 +-
.../compaction/CompactionAccordIteratorsTest.java | 22 +-
.../service/accord/AccordCacheEntryTest.java | 117 -
.../service/accord/AccordCommandStoreTest.java | 29 +-
.../service/accord/AccordCommandTest.java | 10 +-
.../service/accord/AccordDurabilityStallTest.java | 150 ++
.../service/accord/AccordExpungeTest.java | 3 +-
.../service/accord/AccordFailedKeyTestHarness.java | 151 ++
.../service/accord/AccordKeyspaceTest.java | 11 +-
.../cassandra/service/accord/AccordTestUtils.java | 83 +-
.../service/accord/ControllableRangeIndex.java | 216 ++
.../{AccordTaskTest.java => SafeTaskTest.java} | 53 +-
.../SimpleSimulatedAccordCommandStoreTest.java | 4 +-
.../accord/SimulatedAccordCommandStore.java | 14 +-
.../service/accord/SimulatedAccordTaskTest.java | 33 +-
.../execution/AccordCacheEntryCycleTest.java | 1107 ++++++++++
.../execution/AccordCacheEntryQueueTest.java | 1155 ++++++++++
.../execution/AccordCacheEntryReentrancyTest.java | 836 ++++++++
.../AccordCacheEntrySafeTaskCycleTest.java | 1247 +++++++++++
.../accord/execution/AccordCacheEntryTest.java | 499 +++++
.../accord/{ => execution}/AccordCacheTest.java | 284 ++-
.../accord/execution/AccordExecutionTestUtils.java | 172 ++
.../AccordExecutorCancelledConsequenceTest.java | 238 +++
...AccordExecutorContinuationCancellationTest.java | 345 +++
.../execution/AccordExecutorIncrDeadlockTest.java | 275 +++
.../AccordExecutorIncrRequeueRevocationTest.java | 312 +++
.../execution/AccordExecutorKeyAdoptionTest.java | 1050 +++++++++
.../execution/AccordExecutorLoadFailureTest.java | 514 +++++
.../execution/AccordExecutorLoopFailureTest.java | 457 ++++
.../AccordExecutorPresetupLoadingTest.java | 226 ++
.../execution/AccordExecutorRangeScanTest.java | 384 ++++
.../execution/AccordFailedKeyAbandonTest.java | 291 +++
.../accord/execution/AccordFailedKeyBatchTest.java | 373 ++++
.../accord/execution/AccordFailedKeyTest.java | 2113 ++++++++++++++++++
.../accord/execution/QueueCycleDetector.java | 378 ++++
.../accord/execution/TaskLifecycleTest.java | 542 +++++
.../serializers/CommandsForKeySerializerTest.java | 63 +-
.../accord/serializers/KeySerializersTest.java | 6 +-
.../apache/cassandra/utils/AccordGenerators.java | 15 +-
.../apache/cassandra/utils/NoSpamLoggerTest.java | 146 ++
.../cassandra/utils/concurrent/SignalLockTest.java | 203 ++
175 files changed, 31298 insertions(+), 6401 deletions(-)
create mode 100644 formalise/accord/execution/INVARIANTS.md
create mode 100644 formalise/accord/execution/README.md
create mode 100644 formalise/accord/execution/lean/AccordAcyclic.lean
create mode 100644 formalise/accord/execution/tla/AccordExec.tla
create mode 100644 formalise/accord/execution/tla/AccordNotify.tla
create mode 100644 formalise/accord/execution/tla/examples/Baseline.cfg
create mode 100644 formalise/accord/execution/tla/examples/Baseline.tla
create mode 100644 formalise/accord/execution/tla/examples/Notify.cfg
create mode 100644 formalise/accord/execution/tla/examples/Notify.tla
create mode 100644 formalise/accord/execution/tla/examples/README.md
create mode 100755 formalise/accord/execution/tla/matrix.py
create mode 100755 formalise/accord/execution/tla/notify.py
delete mode 100644
src/java/org/apache/cassandra/service/accord/AccordCacheEntry.java
delete mode 100644
src/java/org/apache/cassandra/service/accord/AccordExecutor.java
delete mode 100644
src/java/org/apache/cassandra/service/accord/AccordExecutorSignalLoop.java
delete mode 100644
src/java/org/apache/cassandra/service/accord/AccordSafeCommand.java
delete mode 100644
src/java/org/apache/cassandra/service/accord/AccordSafeCommandsForKey.java
delete mode 100644
src/java/org/apache/cassandra/service/accord/AccordSafeState.java
delete mode 100644 src/java/org/apache/cassandra/service/accord/AccordTask.java
rename
src/java/org/apache/cassandra/service/accord/{AccordExecutorAbstractLockLoop.java
=> execution/AbstractLockLoop.java} (52%)
rename
src/java/org/apache/cassandra/service/accord/{AccordExecutorAbstractLoop.java
=> execution/AbstractLoop.java} (64%)
rename
src/java/org/apache/cassandra/service/accord/{AccordExecutorAbstractSemiSyncSubmit.java
=> execution/AbstractSemiSyncSubmit.java} (65%)
rename src/java/org/apache/cassandra/service/accord/{ =>
execution}/AccordCache.java (73%)
create mode 100644
src/java/org/apache/cassandra/service/accord/execution/AccordCacheEntry.java
copy src/java/org/apache/cassandra/{cache/CacheKey.java =>
service/accord/execution/AccordCacheEntryMiniQueue.java} (51%)
create mode 100644
src/java/org/apache/cassandra/service/accord/execution/AccordCacheEntryQueue.java
create mode 100644
src/java/org/apache/cassandra/service/accord/execution/AccordExecutor.java
rename src/java/org/apache/cassandra/service/accord/{ =>
execution}/AccordExecutorAsyncSubmit.java (88%)
rename src/java/org/apache/cassandra/service/accord/{ =>
execution}/AccordExecutorSemiSyncSubmit.java (78%)
create mode 100644
src/java/org/apache/cassandra/service/accord/execution/AccordExecutorSignalLoop.java
rename src/java/org/apache/cassandra/service/accord/{ =>
execution}/AccordExecutorSimple.java (81%)
rename src/java/org/apache/cassandra/service/accord/{ =>
execution}/AccordExecutorSyncSubmit.java (79%)
create mode 100644
src/java/org/apache/cassandra/service/accord/execution/CancelTask.java
create mode 100644
src/java/org/apache/cassandra/service/accord/execution/ExclusiveExecutor.java
copy src/java/org/apache/cassandra/{db/marshal/StringType.java =>
service/accord/execution/IOTask.java} (65%)
create mode 100644
src/java/org/apache/cassandra/service/accord/execution/IOTaskLoad.java
create mode 100644
src/java/org/apache/cassandra/service/accord/execution/IOTaskSave.java
copy src/java/org/apache/cassandra/{security/JREProvider.java =>
service/accord/execution/IOTaskWrapper.java} (52%)
copy src/java/org/apache/cassandra/{net/ConnectionCategory.java =>
service/accord/execution/InconsistentEntryException.java} (74%)
rename src/java/org/apache/cassandra/service/accord/{AccordExecutorLoops.java
=> execution/Loops.java} (85%)
create mode 100644
src/java/org/apache/cassandra/service/accord/execution/Plain.java
create mode 100644
src/java/org/apache/cassandra/service/accord/execution/PlainChain.java
copy src/java/org/apache/cassandra/{utils/FailingBiConsumer.java =>
service/accord/execution/PlainChainDebuggable.java} (55%)
create mode 100644
src/java/org/apache/cassandra/service/accord/execution/PlainRunnable.java
create mode 100644
src/java/org/apache/cassandra/service/accord/execution/SafeTask.java
create mode 100644
src/java/org/apache/cassandra/service/accord/execution/SaferCommand.java
rename
src/java/org/apache/cassandra/service/accord/{AccordSafeCommandStore.java =>
execution/SaferCommandStore.java} (50%)
create mode 100644
src/java/org/apache/cassandra/service/accord/execution/SaferCommandsForKey.java
create mode 100644
src/java/org/apache/cassandra/service/accord/execution/SaferState.java
create mode 100644
src/java/org/apache/cassandra/service/accord/execution/Task.java
create mode 100644
src/java/org/apache/cassandra/service/accord/execution/TaskInfo.java
create mode 100644
src/java/org/apache/cassandra/service/accord/execution/TaskQueue.java
create mode 100644
src/java/org/apache/cassandra/service/accord/execution/TaskQueueMulti.java
create mode 100644
src/java/org/apache/cassandra/service/accord/execution/TaskQueueRunnable.java
copy src/java/org/apache/cassandra/{io/util/EmptyRebufferer.java =>
service/accord/execution/TaskQueueStandalone.java} (55%)
create mode 100644
src/java/org/apache/cassandra/service/accord/execution/TaskRunner.java
create mode 100644
src/java/org/apache/cassandra/service/accord/execution/Tranches.java
copy src/java/org/apache/cassandra/{io/util/BytesReadTracker.java =>
service/accord/execution/Unstoppable.java} (80%)
copy src/java/org/apache/cassandra/{db/compaction/ICompactionManager.java =>
service/accord/execution/Unterminatable.java} (83%)
create mode 100644
test/simulator/test/org/apache/cassandra/service/accord/execution/AccordCommandStoreExecutorTest.java
delete mode 100644
test/unit/org/apache/cassandra/service/accord/AccordCacheEntryTest.java
create mode 100644
test/unit/org/apache/cassandra/service/accord/AccordDurabilityStallTest.java
create mode 100644
test/unit/org/apache/cassandra/service/accord/AccordFailedKeyTestHarness.java
create mode 100644
test/unit/org/apache/cassandra/service/accord/ControllableRangeIndex.java
rename test/unit/org/apache/cassandra/service/accord/{AccordTaskTest.java =>
SafeTaskTest.java} (90%)
create mode 100644
test/unit/org/apache/cassandra/service/accord/execution/AccordCacheEntryCycleTest.java
create mode 100644
test/unit/org/apache/cassandra/service/accord/execution/AccordCacheEntryQueueTest.java
create mode 100644
test/unit/org/apache/cassandra/service/accord/execution/AccordCacheEntryReentrancyTest.java
create mode 100644
test/unit/org/apache/cassandra/service/accord/execution/AccordCacheEntrySafeTaskCycleTest.java
create mode 100644
test/unit/org/apache/cassandra/service/accord/execution/AccordCacheEntryTest.java
rename test/unit/org/apache/cassandra/service/accord/{ =>
execution}/AccordCacheTest.java (58%)
create mode 100644
test/unit/org/apache/cassandra/service/accord/execution/AccordExecutionTestUtils.java
create mode 100644
test/unit/org/apache/cassandra/service/accord/execution/AccordExecutorCancelledConsequenceTest.java
create mode 100644
test/unit/org/apache/cassandra/service/accord/execution/AccordExecutorContinuationCancellationTest.java
create mode 100644
test/unit/org/apache/cassandra/service/accord/execution/AccordExecutorIncrDeadlockTest.java
create mode 100644
test/unit/org/apache/cassandra/service/accord/execution/AccordExecutorIncrRequeueRevocationTest.java
create mode 100644
test/unit/org/apache/cassandra/service/accord/execution/AccordExecutorKeyAdoptionTest.java
create mode 100644
test/unit/org/apache/cassandra/service/accord/execution/AccordExecutorLoadFailureTest.java
create mode 100644
test/unit/org/apache/cassandra/service/accord/execution/AccordExecutorLoopFailureTest.java
create mode 100644
test/unit/org/apache/cassandra/service/accord/execution/AccordExecutorPresetupLoadingTest.java
create mode 100644
test/unit/org/apache/cassandra/service/accord/execution/AccordExecutorRangeScanTest.java
create mode 100644
test/unit/org/apache/cassandra/service/accord/execution/AccordFailedKeyAbandonTest.java
create mode 100644
test/unit/org/apache/cassandra/service/accord/execution/AccordFailedKeyBatchTest.java
create mode 100644
test/unit/org/apache/cassandra/service/accord/execution/AccordFailedKeyTest.java
create mode 100644
test/unit/org/apache/cassandra/service/accord/execution/QueueCycleDetector.java
create mode 100644
test/unit/org/apache/cassandra/service/accord/execution/TaskLifecycleTest.java
create mode 100644
test/unit/org/apache/cassandra/utils/concurrent/SignalLockTest.java
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]