Commit Graph

30842 Commits

Author SHA1 Message Date
ci worker 333c748a91 Ninja for CASSANDRA-19305: Disable EphemeralRead by default to get benchmarks stable 2025-04-17 11:59:50 -07:00
Benedict Elliott Smith 7dadc080cb perf improvements 2025-04-17 11:59:50 -07:00
Blake Eggleston 599cd59736 post-trunk rebase fixes 2025-04-17 11:59:50 -07:00
Blake Eggleston 94c2ec3c96 fix MultiElementType pack/unpack accessor api 2025-04-17 11:59:50 -07:00
Blake Eggleston d3deef36d3 CEP-15: (C*) per-table transactional configuration
Patch by Blake Eggleston; Reviewed by Ariel Wesberg for CASSANDRA-19016
2025-04-17 11:59:50 -07:00
Benedict Elliott Smith 763bcf2de5 Fast single-partition "Ephemeral Reads"
Introduce a special kind of non-durable read that provides only per-key linearizable isolation; i.e. strict-serializable isolation for single partition-key reads.
This read creates only a happens-before edge, by collecting dependencies for execution and ensuring that execution happens strictly after these dependencies
have executed, but at no precise time otherwise. So later writes may be witnessed, and if multiple keys are read they may represents different points in time.

patch by Benedict; reviewed by Ariel Weisberg for CASSANDRA-19305

Refactor CommandsForKey for efficiency, and to support transitive dependency elision

patch by Benedict; reviewed by Aleksey Yeshchenko for CASSANDRA-19310
2025-04-17 11:59:50 -07:00
Ariel Weisberg 4088c68d38 Add TODO for TxnQuery using wrong cluster metadata 2025-04-17 11:59:50 -07:00
Benedict Elliott Smith 266986b5a2 Fix (de)serialization of WaitingOn into cache 2025-04-17 11:59:50 -07:00
David Capwell a324003c59 Get simulator working (again)
Co-authored-by: Ariel Weisberg <aweisberg@apple.com>
Co-authored-by: Benedict Elliott Smith <benedict@apache.org>
2025-04-17 11:59:49 -07:00
Benedict Elliott Smith 8de3dfc711 CASSANDRA-18365: Protocol fixes 2025-04-17 11:59:49 -07:00
Aleksey Yeschenko 5385e9c60a Fix LocalPartitioner duplication in *_for_key Accord system tables
patch by Aleksey Yeschenko; reviewed by Marcus Eriksson for
CASSANDRA-19265
2025-04-17 11:59:49 -07:00
Aleksey Yeschenko 20af77031a Pre-requisite changes for CASSANDRA-18888
patch by Aleksey Yeschenko; reviewed by Ariel Weisberg for
CASSANDRA-18888
2025-04-17 11:59:49 -07:00
David Capwell 633bbee1a6 (Accord): Bug fixes from CASSANDRA-18675 to better support adding keyspaces
patch by David Capwell; reviewed by Benedict Elliott Smith, Blake Eggleston for CASSANDRA-18804
2025-04-17 11:59:49 -07:00
David Capwell a95f072e35 (Accord) NPE while trying to serialize FoundKnownMap as value is null half the time but unexpected while serializing
patch by David Capwell; reviewed by Blake Eggleston for CASSANDRA-19253
2025-04-17 11:59:49 -07:00
Blake Eggleston cb1a05c5d4 Schema based accord fast path configuration
Patch by Blake Eggleston; Reviewed by David Capwell and Alex Petrov for CASSANDRA-19009
2025-04-17 11:59:49 -07:00
Blake Eggleston e812127a8b Fix TombstoneCountWarningTest
Don't use ImmediateExectuor in JVM dtests to process messages
Fix GuardrailTablesTest
Instance.receiveMessage should use sync
Fix StorageAttachedIndexDDLTest failing due to background Accord compactions
Add back enforceInvariants=false to shouldCleanup in AccordCommandsPurger
Fix CompactionAccordIteratorsTest
Fix empty row check in command/tfk mutation methods
2025-04-17 11:59:49 -07:00
Ariel Weisberg 1f4675a902 Fix AccordCommandsPurger universal durability check 2025-04-17 11:59:49 -07:00
Ariel Weisberg 021b06639e Fix Mutation serializer
Fix AccordJournal.Type interop entries
2025-04-17 11:59:49 -07:00
Ariel Weisberg a9cb71833a Fix additional live migration/interop merge issues
s fc83325fa9 Fix AccordObjectSizes empty sizes
s 44bce6a08c Fix error handling when there are no column families to repair
s f1459540e5 Fix broken nowInSec deserialization
s 91c1befd1c Fix Mutation serializedSize
s b11467c200 Using simulated clock instead of raw nanoTime
s 6412b35924 Accord repair needs to use sentinel tokens
s d19c01ff01 Enable Accord repair with HappyPathFuzzTest
s 2da87f91b8 Implement abort in AccordRepairJob
s e12877c4fa move barrier to accord spec

Patch by Ariel Weisberg; Reviewed by David Capwell for CASSANDRA-19023
2025-04-17 11:59:49 -07:00
Blake Eggleston d07a36106d Reduce command deps
Patch by Blake Eggleston; Reviewed by Benedict Elliott Smith for CASSANDRA-18784
2025-04-17 11:59:49 -07:00
Benedict Elliott Smith 050688228f Improve validation and address various discovered faults
patch by Benedict; reviewed by Ariel Weisberg for CASSANDRA-19045
2025-04-17 11:59:49 -07:00
Aleksey Yeschenko 0e899532dc Quick fix for AccordCommandStoreTest#commandLoadSave() 2025-04-17 11:59:49 -07:00
Ariel Weisberg 4c575a7e48 Fix Paxos V2 prepare response serialization
Patch by Ariel Weisberg; Reviewed by David Capwell for CASSANDRA-19023
2025-04-17 11:59:49 -07:00
Ariel Weisberg c10c84b9cd Accord/non-Accord interoperability and support for live migration
Patch by Ariel Weisberg; Reviewed by Blake Eggleston for CASSANDRA-18129

Co-authored-by: Blake Eggleston <beggleston@apple.com>
2025-04-17 11:59:49 -07:00
Jon Meredith 9e766f46a3 Several simulator fixes not yet merged to cep-15-accord
s c4bf1533b4 Add more JVM arg checks to the paxos simulation runner
s 1b650a0636 break circular dependency between FileSystemOwnershipCheck and CassandraRelevantProperties
s e0111748dd fix verify with-rng and interrupts
s f8475f2a18 make SimulatedFailureDetector deterministic
s ee77734bbe Deterministic transformation
s 890f23696a Add mechanism forsimulator to intercept password salting
s 5205b99874 Specify Paxos V2 because it is the only linearizable option

Patch by Ariel Weisberg; Reviewed by David Capwell for CASSANDRA-19008
2025-04-17 11:59:49 -07:00
Alex Petrov 169f790cb1 Use pinned Harry version 2025-04-17 11:59:49 -07:00
David Capwell 18d3aa47bc CEP-15: (C*) Implement TopologySorter to prioritise hosts based on DynamicSnitch and/or topology layout
patch by Blake Eggleston, David Capwell; reviewed by Blake Eggleston for CASSANDRA-18929
2025-04-17 11:59:49 -07:00
Jacek Lewandowski dfd1e99fd1 CEP-15: Add Accord configuration stub
Patch by Jacek Lewandowski; reviewed by David Capwell for CASSANDRA-18221
2025-04-17 11:59:49 -07:00
Jacek Lewandowski 27a9313970 CEP-15: Accord metrics
Patch by Jacek Lewandowski, reviewed by Caleb Rackliffe, David Capwell and Henrik Ingo for CASSANDRA-18580
2025-04-17 11:59:49 -07:00
Caleb Rackliffe cffe1cc61a ninja-fix: minor post-TCM-rebase cleanup 2025-04-17 11:59:49 -07:00
Caleb Rackliffe 19fcbcab61 ninja-fix: checkstyle fixes in VirtualTableTest, HistoryValidatorTest, SeedDefiner, RunStartDefiner, and Config 2025-04-17 11:59:48 -07:00
Aleksey Yeschenko c0a63c9164 CEP-15: Minimize transaction state kept in system tables
patch by Aleksey Yeschenko; reviewed by Ariel Weisberg for CASSANDRA-18573
2025-04-17 11:59:48 -07:00
Caleb Rackliffe 08428a2750 - Avoid persisting fragments that do not require completion as Updates in TxnWrite, as they can simply be pulled from PartialTxn when needed in Write#apply()
- Avoid serializing full TxnData instances to Accord state tables

patch by Caleb Rackliffe; reviewed by David Capwell, Benedict Elliot Smith, and Ariel Weisberg for CASSANDRA-18355
2025-04-17 11:59:48 -07:00
David Capwell cfc63edcb4 CEP-15: (C*) accord.messages.BeginRecovery.RecoverNack#supersededBy is nullable but C* serializer doesn't expect null 2025-04-17 11:59:48 -07:00
David Capwell 10e065ffe5 Fix Accord compaction purger tombstone logic
Accord compaction purgers see random slices of Accord state during compaction (based on randomly selected compaction inputs).

For at least the `durability` column in the `commands` table the tombstone being created when truncating was deleting the latest value since we can get enough information to truncate without actuall yhaving the latest `durability` value.

To fix we can wait to emit a tombstone until we are erasing the entire command row when truncating or truncating with outcome and meanwhile we can drop the extra columns that are no longer needed instead of using a tombstone. We don't need to emit cell tombstones we can drop them from the purger when processing each row.

patch by Ariel Weisberg; reviewed by David Capwell for CASSANDRA-18795
2025-04-17 11:59:48 -07:00
Blake Eggleston ba02bd0bc7 Bootstrap/TCM integration test fixes 2025-04-17 11:59:48 -07:00
David Capwell 6167e436c3 CEP-15 (C*): when loading commands that have empty waiting_on, make sure not to loose the partial deps (#3590)
patch by David Capwell; reviewed by Aleksey Yeschenko for CASSANDRA-18783
2025-04-17 11:59:48 -07:00
Ariel Weisberg 82acd3e950 Allow exceptions to be propagated remotely
https://github.com/apache/cassandra-accord/pull/56

Patch by Ariel Weisberg; Reviewed by David Capwell for CASSANDRA-18779
2025-04-17 11:59:48 -07:00
Jacek Lewandowski bfa0e59f7f CASSANDRA-18774: Fix pre-commit hook 2025-04-17 11:59:48 -07:00
David Capwell 76994f8196 CEP-15 (C*) When a host replacement happens don't loose the peer mapping right away (#3575)
patch by David Capwell; reviewed by Blake Eggleston for CASSANDRA-18764
2025-04-17 11:59:48 -07:00
Benedict Elliott Smith a6bb08d926 Support state eviction (i.e. permit the state machine to erase transactions that are known to be applied across the cluster)
patch by Benedict Elliott Smith; reviewed by Ariel Weisberg, Aleksey Yeschenko, and David Capwell for CASSANDRA-18883

Co-authored-by: Benedict Elliott Smith <benedict@apache.org>
Co-authored-by: Ariel Weisberg <aweisberg@apple.com>
Co-authored-by: Aleksey Yeschenko <aleksey@apache.org>
Co-authored-by: David Capwell <dcapwell@gmail.com>
2025-04-17 11:59:48 -07:00
Blake Eggleston 00bbf4ec8e CEP-15: Accord Bootstrap Integration
Patch by Blake Eggleston and Benedict Elliott Smith; Reviewed by David
Capwell for CASSANDRA-17101

CEP-15: Accord TCM integration

Patch by Blake Eggleston; Reviewed by David Capwell for CASSANDRA-18444
2025-04-17 11:59:48 -07:00
Aleksey Yeschenko 145c467c69 CEP-15: Convert AccordStateCache cache from write-through to write-back
patch by Aleksey Yeschenko; reviewed by Blake Eggleston for
CASSANDRA-18563
2025-04-17 11:59:48 -07:00
Aleksey Yeschenko 8f156fc5dc CEP-15: Extend Accord MessageType with a side effect flag
patch by Aleksey Yeschenko; reviewed by Benedic Elliott Smith for
CASSANDRA-18561
2025-04-17 11:59:48 -07:00
David Capwell f76f806de1 CEP-15: (C*) Add notion of CommandsForRanges and make this durable in C*
patch by David Capwell; reviewed by Ariel Weisberg for CASSANDRA-18519
2025-04-17 11:59:48 -07:00
Caleb Rackliffe f54144d1c1 - make sure workspace.xml specifies a storagedir
- removing unnecessary calls to ServerTestUtils.daemonInitialization() in a handful of tests
- minor cleanup in Verb and BTreeSet
2025-04-17 11:59:48 -07:00
Benedict Elliott Smith 537c1f991a (Accord only) Permit nodes to join a cluster without the full transaction history
patch by Benedict; reviewed by Blake Eggleston for CASSANDRA-18523
2025-04-17 11:59:48 -07:00
Aleksey Yeschenko 8dc82a6369 CEP-15: Store PreAccept, Accept, Commit, and Apply messages
in a durable log before processing by CommandStores

patch by Aleksey Yeschenko; reviewed by David Capwell for
CASSANDRA-18344
2025-04-17 11:59:48 -07:00
David Capwell da92eed225 CEP-15: (C*) Enhance in-memory FileSystem to work with mmap and support tests to add custom logic
patch by David Capwell; reviewed by Caleb Rackliffe for CASSANDRA-18485
2025-04-17 11:59:48 -07:00
David Capwell 8633a301f7 CEP-15: (C*) Accord message processing should avoid being passed on to a Stage and run directly in the messageing handler
patch by David Capwell; reviewed by Ariel Weisberg, Benedict Elliott Smith for CASSANDRA-18364
2025-04-17 11:59:48 -07:00