Commit Graph

31301 Commits

Author SHA1 Message Date
Aparna Naik a8f2ce44a3 Add support for counters to mutation tracking
patch by Aparna Naik; reviewed by Aleksey Yeschenko for CASSANDRA-20959
2026-01-16 16:28:58 +00:00
Blake Eggleston 33425b64a1 CEP-45: Replication type migration
Patch by Blake Eggleston; Reviewed by Ariel Weisberg for CASSANDRA-20388
2025-12-19 13:00:50 -08:00
Aparna Naik 4ea4d893c4 CEP-45: Add virtual tables for Mutation Tracking
patch by Aparna Naik; reviewed by Abe Ratnofsky and Blake Eggleston for CASSANDRA-20987
2025-12-10 16:21:19 -05:00
Aparna Naik 4b5bed734d CEP-45: Add metrics for Mutation Tracking
patch by Aparna Naik; reviewed by Abe Ratnofsky and Blake Eggleston for CASSANDRA-20986
2025-12-10 14:24:15 -05:00
Abe Ratnofsky a881428327 CEP-45: Bulk transfer
patch by Abe Ratnofsky; reviewed by Caleb Rackliffe and Blake Eggleston for CASSANDRA-20383
2025-12-09 22:55:55 -05:00
Blake Eggleston 6885a966c4 CEP-45: Fix IN queries for mutation tracking
Patch by Blake Eggleston; Reviewed by Abe Ratnofsky for CASSANDRA-20375
2025-12-02 15:09:17 -08:00
Blake Eggleston f31142bc77 CEP-45: Add support for unlogged batches
Patch by Blake Eggleston; Reviewed by Abe Ratnofsky for CASSANDRA-20957
2025-12-02 13:58:16 -08:00
Blake Eggleston 1e039d862e CEP-45: Add mutation tracking support for secondary index reads
This patch enables mutation tracking for queries using secondary indexes (both
legacy 2i and SAI). Key changes include the addition of the MultiStepSearcher
interface, which allows existing index implementations to iterate over matches
and filter augmented data, proper Memtable snapshotting, and the integration of
these in PartialTrackedIndexRead.

patch by Blake Eggleston; reviewed by Aleksey Yeschenko and Caleb Rackliffe for CASSANDRA-20374

Co-authored-by: Blake Eggleston <blake@ultrablake.com>
Co-authored-by: Caleb Rackliffe <calebrackliffe@gmail.com>
Co-authored-by: Aleksey Yeschenko <aleksey@apache.org>
2025-11-19 13:10:33 -06:00
Caleb Rackliffe 567e93ba3b ninja-fix: Make sure the MutationJournal starts before trying to create tracked keyspaces in unit-level tests that call SchemaLoader.schemaDefinition() 2025-10-27 15:40:24 -05:00
Caleb Rackliffe 78466146f8 Enable range reads for MultiNodeTableWalkWithMutationTrackingTest and document failure modes for known problematic seeds
patch by Caleb Rackliffe; reviewed by Blake Eggleston for CASSANDRA-20898
2025-10-22 15:48:38 -05:00
Aleksey Yeschenko 1bf039709e Truncate mutation journal as logs get reconciled
patch by Aleksey Yeschenko; reviewed by Alex Petrov for CASSANDRA-20710
2025-10-08 14:02:22 +01:00
Caleb Rackliffe b67f4e2c2a Disable mutation tracking by default in CassandraGenerators
patch by Caleb Rackliffe; reviewed by Blake Eggleston for CASSANDRA-20944
2025-10-06 20:11:32 -05:00
Abe Ratnofsky 7f4bac3efb Fix failing test: org.apache.cassandra.replication.CoordinatorLogOffsetsTest#reconciledBounds 2025-10-01 18:13:25 -04:00
Blake Eggleston 6067fb62a7 CEP-45: Support host replacement with tracked keyspaces
Patch by Blake Eggleston; Reviewed by Abe Ratnofsky for CASSANDRA-20891
2025-09-29 15:26:41 -07:00
Ariel Weisberg 698ea0cf74 Fix failing unit tests from witness merge
Patch by Ariel Weisberg; Reviewed by Blake Eggleston for CASSANDRA-20934

Co-authored-by: Blake Eggleston <blake@ultrablake.com>
2025-09-29 12:49:04 -07:00
Alex Petrov 31f81c0b2c CEP-45: Integrate Mutation Journal with Memtable flush tracking
* Tracking of Memtable -> SSTable flushes in Mutation Journal segments
  * Replay of Mutation Journal segments that were not fully flushed to SSTables
  * Distinguish between CommitLog and MutationJournal offsets
  * Effectively adds support for node bounces

Patch by Alex Petrov; reviewed by Aleksey Yeschenko for CASSANDRA-20919
2025-09-29 20:59:58 +02:00
Ariel Weisberg 2403bfcaac Initial witness non-serial single partition read/write path
Patch by Ariel Weisberg; Reviewed by Abe Ratnosfky for CASSANDRA-20930
2025-09-26 13:03:19 -07:00
Aleksey Yeschenko 942fa5a3f3 Fix CoordinatorLogOffsetsLifecycleTest 2025-09-25 14:34:44 +01:00
Aleksey Yeschenko bd5a657548 Implement Shard and CoordinatorLog metadata durability
patch by Aleksey Yeschenko; reviewed by Abe Ratnofsky for CASSANDRA-20882
2025-09-19 15:55:11 +01:00
Abe Ratnofsky 4bbb14c179 Fix loss of isRepaired StatsMetadata on compaction race
Found via MultiNodeTableWalkWithMutationTrackingTest after ~hundreds of
seeds.

java.lang.IllegalArgumentException: Cannot compact repaired and unrepaired sstables
    at com.google.common.base.Preconditions.checkArgument(Preconditions.java:143)
    at org.apache.cassandra.db.compaction.AbstractCompactionTask.validateSSTables(AbstractCompactionTask.java:84)
    at org.apache.cassandra.db.compaction.AbstractCompactionTask.<init>(AbstractCompactionTask.java:60)
    at org.apache.cassandra.db.compaction.CompactionTask.<init>(CompactionTask.java:79)
    at org.apache.cassandra.db.compaction.CompactionTask.<init>(CompactionTask.java:74)
    at org.apache.cassandra.db.compaction.LeveledCompactionTask.<init>(LeveledCompactionTask.java:39)
    at org.apache.cassandra.db.compaction.LeveledCompactionStrategy.getMaximalTasks(LeveledCompactionStrategy.java:192)
    at org.apache.cassandra.db.compaction.CompactionStrategyHolder.getMaximalTasks(CompactionStrategyHolder.java:121)

patch by Abe Ratnofsky; reviewed by Caleb Rackliffe for CASSANDRA-20830
2025-09-05 17:46:15 -05:00
Blake Eggleston 8b7753f7ec Single-partition read fixes:
- filter augmenting mutations and add comment explaining why we don't exclude reconciled mutations when augmenting
- propagate exceptions during acknowledgeReconcile
- fix UnreconciledMutations handling of single key bounds
- fix single offset remove bug

patch by Blake Eggleston; reviewed by Caleb Rackliffe for CASSANDRA-20830
2025-09-05 17:46:15 -05:00
Caleb Rackliffe 4bc014434a Enable single-partition AST fuzz tests w/ mutation tracking
patch by Caleb Rackliffe; reviewed by ? for CASSANDRA-20830
2025-09-05 17:46:15 -05:00
Aleksey Yeschenko c342b8dd07 Fix failing repair tests 2025-08-28 12:18:58 +01:00
Aleksey Yeschenko 418a19dc31 Implement unified log reconciliation
patch by Aleksey Yeschenko; reviewed by Blake Eggleston for
CASSANDRA-20729

Co-authored-by: Aleksey Yeschenko <aleksey@apache.org>
Co-authored-by: Blake Eggleston <blake@ultrablake.com>
2025-08-26 17:35:16 +01:00
Caleb Rackliffe 6430d497bb Fixed LegacySSTableTest to reflect thew new be_index_summary table type 2025-08-14 12:41:08 -05:00
Caleb Rackliffe d8f67d77cf Fixed output format expectations in DescribeStatementTest 2025-08-14 11:48:53 -05:00
Caleb Rackliffe a99663c197 Separate TestParams by use-case (Accord vs. Mutation Journal) 2025-08-14 11:31:24 -05:00
Caleb Rackliffe f9c9fe63b4 Initial round of post-rebase (mostly Accord-related) fixes 2025-08-14 00:19:26 -05:00
Blake Eggleston 83cc3212ee CEP-45: Fix ALLOW FILTERING queries for mutation tracking
Patch by Blake Eggleston; Reviewed by Aleksey Yeschenko for CASSANDRA-20555
2025-08-13 23:31:22 -05:00
Abe Ratnofsky b004207b32 Fully reconciled SSTable promotion
patch by Abe Ratnofsky; reviewed by Ariel Weisberg, Blake Eggleston for CASSANDRA-20381
2025-08-13 23:24:24 -05:00
Abe Ratnofsky 822c5d572a Add mutation tracking summary to SSTables
Patch by Abe Ratnofsky; reviewed by Ariel Weisberg, Blake Eggleston for CASSANDRA-20336
2025-08-13 22:59:26 -05:00
Aleksey Yeschenko ea9e041345 Fix-up offset broadcasting logic
patch by Aleksey Yeschenko; reviewed by Abe Ratnofsky for CASSANDRA-20576
2025-08-13 22:21:42 -05:00
Abe Ratnofsky 88c2c769b4 Fixup inter-DC forwarding of writes from a coordinator-replica (fixup)
Patch by Abe Ratnofsky; Reviewed by Aleksey Yeshchenko for CASSANDRA-20336
2025-08-13 22:21:42 -05:00
Aleksey Yeschenko 59922b9f5d Implement coordinator log offset broadcasting
patch by Aleksey Yeschenko; reviewed by Blake Eggleston for CASSANDRA-20576
2025-08-13 22:21:42 -05:00
Abe Ratnofsky 985aaa5ca8 CEP-45: Query forwarding
Patch by Abe Ratnofsky; Reviewed by Blake Eggleston for CASSANDRA-20309
2025-08-13 22:21:38 -05:00
Blake Eggleston 85667da4ae Fix mutation tracking startup
Patch by Blake Eggleston; Reviewed by Abe Ratnofsky for CASSANDRA-20540
2025-08-13 16:19:18 -05:00
Abe Ratnofsky 599dc7a025 Fix test failure: cqlshlib.test.test_cqlsh_output.TestCqlshOutput::test_describe_schema_output 2025-08-13 16:19:15 -05:00
Blake Eggleston 217753c3d0 Mutation tracking journal integration, read, and write path
Patch by Blake Eggleston & Aleksey Yeshchenko
Reviewed by Blake Eggleston, Aleksey Yeshchenko, & Abe Ratnofsky
 for CASSANDRA-20304, CASSANDRA-20305, & CASSANDRA-20308, CASSANDRA-20373

Co-authored-by: Blake Eggleston <blake@ultrablake.com>
Co-authored-by: Aleksey Yeschenko <aleksey@apache.org>
2025-08-13 16:18:11 -05:00
Aleksey Yeschenko 9ac462ba55 Introduce MutationJournal for coordinator logs
patch by Aleksey Yeschenko; reviewed by Blake Eggleston for
CASSANDRA-20353
2025-08-12 16:28:32 -05:00
maoling cdfe2c3dac ninja: remove unused imports in MessagingService to pass checkstyle 2025-08-11 16:32:12 +01:00
Dmitry Konstantinov 7546d9e895 Optimize MessagingService.getVersionOrdinal
The map lookup (with an implicit auto-boxing) can be replaced with a plain arithmetic operation.
A unit test is used to ensure that the assumption about serialization version incrementing for new versions is still correct.
greaterThanOrEqual method is removed as unused.

Patch by Dmitry Konstantinov; reviewed by Stefan Miklosovic for CASSANDRA-20816
2025-08-08 14:20:13 +01:00
Dmitry Konstantinov 19118a6cff Optimize TrieMemtable#getFlushSet
A flushing range is a combination of partial and full shards, for full shards we use write time captured values for count and total size of partition keys, for partial shards we iterate over keys
When we iterate over partial shards we count key bytes only instead of reading them and also try to skip tokens full parsing

Patch by Dmitry Konstantinov; reviewed by Branimir Lambov for CASSANDRA-20760
2025-08-08 13:34:34 +01:00
Stefan Miklosovic 429b2f8be4
Merge branch 'cassandra-5.0' into trunk 2025-08-08 09:16:21 +02:00
Isaac Reath 170bf57eac
Fix ThreadLocalReadAheadBufferTest to avoid FileNotFoundException when -Djava.io.tmpdir set to /tmp
patch by Isaac Reath; reviewed by Paulo Motta, Stefan Miklosovic for CASSANDRA-20819
2025-08-08 09:00:57 +02:00
maulin-vasavada 2d7f0567a0
Improve sstableloader documentation for SSL configuration
patch by Maulin Vasavada; reviewed by Andrew Tolbert, Stefan Miklosovic for CASSANDRA-20779

Co-authored-by: Andrew Tolbert <6889771+tolbertam@users.noreply.github.com>
2025-08-08 08:45:58 +02:00
Stefan Miklosovic 223f6d47ff
Merge branch 'cassandra-5.0' into trunk 2025-08-08 08:41:18 +02:00
Stefan Miklosovic 902ef57fa3
Merge branch 'cassandra-4.1' into cassandra-5.0 2025-08-08 08:39:05 +02:00
Stefan Miklosovic 62150b08d5
Merge branch 'cassandra-4.0' into cassandra-4.1 2025-08-08 08:36:37 +02:00
Serban Teodorescu f4eb55097e
Add documentation for tombstone threshold metrics
patch by Serban Teodorescu; reviewed by Stefan Miklosovic for CASSANDRA-20803
2025-08-08 08:33:51 +02:00
Stefan Miklosovic ad5a8865dd
Merge branch 'cassandra-5.0' into trunk 2025-08-08 08:27:38 +02:00