This is an automated email from the ASF dual-hosted git repository.
belliottsmith pushed a change to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra.git
from 51c5071b6b Merge branch 'cassandra-6.0' into trunk
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 [...]
new c103032107 Merge branch 'cassandra-6.0' into trunk
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
CHANGES.txt | 2 +
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, 31299 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]