Commit Graph

9247 Commits

Author SHA1 Message Date
Blake Eggleston 19be8aeac2 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>
2026-04-09 16:45:32 -07:00
Caleb Rackliffe 5a94a5a0fd Enable range reads for MultiNodeTableWalkWithMutationTrackingTest and document failure modes for known problematic seeds
patch by Caleb Rackliffe; reviewed by Blake Eggleston for CASSANDRA-20898
2026-04-09 16:45:32 -07:00
Aleksey Yeschenko d34e758e4b Truncate mutation journal as logs get reconciled
patch by Aleksey Yeschenko; reviewed by Alex Petrov for CASSANDRA-20710
2026-04-09 16:45:32 -07:00
Caleb Rackliffe def980e475 Disable mutation tracking by default in CassandraGenerators
patch by Caleb Rackliffe; reviewed by Blake Eggleston for CASSANDRA-20944
2026-04-09 16:45:32 -07:00
Blake Eggleston 4215cfd2aa CEP-45: Support host replacement with tracked keyspaces
Patch by Blake Eggleston; Reviewed by Abe Ratnofsky for CASSANDRA-20891
2026-04-09 16:45:32 -07:00
Alex Petrov a7b431d683 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
2026-04-09 16:45:32 -07:00
Ariel Weisberg 1e036cf620 Initial witness non-serial single partition read/write path
Patch by Ariel Weisberg; Reviewed by Abe Ratnosfky for CASSANDRA-20930
2026-04-09 16:45:32 -07:00
Aleksey Yeschenko 9d856f2c08 Implement Shard and CoordinatorLog metadata durability
patch by Aleksey Yeschenko; reviewed by Abe Ratnofsky for CASSANDRA-20882
2026-04-09 16:42:44 -07:00
Blake Eggleston 9dbafa812d 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
2026-04-09 16:42:44 -07:00
Caleb Rackliffe 416c1292e4 Enable single-partition AST fuzz tests w/ mutation tracking
patch by Caleb Rackliffe; reviewed by ? for CASSANDRA-20830
2026-04-09 16:42:44 -07:00
Aleksey Yeschenko 9676c0eaeb 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>
2026-04-09 16:35:32 -07:00
Caleb Rackliffe c1bb86ab60 Initial round of post-rebase (mostly Accord-related) fixes 2026-04-09 16:34:18 -07:00
Caleb Rackliffe 6c26813c2a Separate TestParams by use-case (Accord vs. Mutation Journal) 2026-04-09 16:34:18 -07:00
Blake Eggleston 14a743f8f7 CEP-45: Fix ALLOW FILTERING queries for mutation tracking
Patch by Blake Eggleston; Reviewed by Aleksey Yeschenko for CASSANDRA-20555
2026-04-09 16:34:18 -07:00
Abe Ratnofsky 65caf3f58b Fully reconciled SSTable promotion
patch by Abe Ratnofsky; reviewed by Ariel Weisberg, Blake Eggleston for CASSANDRA-20381
2026-04-09 16:34:18 -07:00
Abe Ratnofsky 51e63f0ff3 Add mutation tracking summary to SSTables
Patch by Abe Ratnofsky; reviewed by Ariel Weisberg, Blake Eggleston for CASSANDRA-20336
2026-04-09 16:34:18 -07:00
Aleksey Yeschenko fa017c6334 Implement coordinator log offset broadcasting
patch by Aleksey Yeschenko; reviewed by Blake Eggleston for CASSANDRA-20576
2026-04-09 16:34:18 -07:00
Abe Ratnofsky c18ca7afc5 CEP-45: Query forwarding
Patch by Abe Ratnofsky; Reviewed by Blake Eggleston for CASSANDRA-20309
2026-04-09 16:34:18 -07:00
Blake Eggleston c71f976955 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>
2026-04-09 16:34:18 -07:00
Aleksey Yeschenko b824304867 Introduce MutationJournal for coordinator logs
patch by Aleksey Yeschenko; reviewed by Blake Eggleston for
CASSANDRA-20353
2026-04-08 09:30:40 -07:00
Paulo Motta 73063437b6 Merge branch 'cassandra-5.0' into trunk 2026-04-08 11:17:44 -04:00
Paulo Motta 9500eb129b Backport Automated Repair Inside Cassandra (CEP-37)
Includes bug fixes and features:
- Improved observability in AutoRepair (CASSANDRA-20581)
- Stop repair scheduler if two major versions detected (CASSANDRA-20048)
- Safeguard Full repair against disk protection (CASSANDRA-20045)
- Stop AutoRepair monitoring thread upon shutdown (CASSANDRA-20623)
- Fix race condition in auto-repair scheduler (CASSANDRA-20265)
- Minimum repair task duration setting (CASSANDRA-20160)
- Preview_repaired auto-repair type (CASSANDRA-20046)
- Gate auto-repair behind cassandra.autorepair.enable JVM property
- Add cassandra.autorepair.check_min_version to gate minimum version enforcement
- Prevent auto-repair from running if any node is below 5.0.7
- Make system_distributed auto-repair schema conditional on feature being enabled
- Add user-friendly errors for disabled auto-repair and schema incompatibility

patch by Paulo Motta; reviewed by Andy Tolbert, Jaydeepkumar Chovatia for CASSANDRA-21138

Co-Authored-By: Andy Tolbert <andy_tolbert@apple.com>
Co-Authored-By: Chris Lohfink <clohfink@netflix.com>
Co-Authored-By: Francisco Guerrero <frankgh@apache.org>
Co-Authored-By: Himanshu Jindal <himanshj@amazon.com>
Co-Authored-By: Jaydeepkumar Chovatia <jchovati@uber.com>
Co-Authored-By: Kristijonas Zalys <kzalys@uber.com>
Co-Authored-By: jaydeepkumar1984 <chovatia.jaydeep@gmail.com>
2026-04-08 10:53:41 -04:00
mck 300c216aa6
ninja trunk patch for CASSANDRA-21202
this diff was supposed to be included in 5f9de8ca13

Rate limit password changes
Introduces property cassandra.role_password_update_interval_in_ms, with default value of 5000.
Logging added when passwords on roles are changed or are rate-limited.

 patch by Mick Semb Wever; reviewed by Doug Rohrer, Jeremiah Jordan for CASSANDRA-21202
2026-04-08 15:09:58 +02:00
Dmitry Konstantinov 1a9ab95c20 Fix a removed TTLed row re-appearance in a materialized view after a cursor compaction
Add an implementation of isExpired to ReusableLivenessInfo, before the change the method implementation was interited from an interface and always returned false, so livenessInfo().supersedes(...) did not work properly.

patch by Dmitry Konstantinov; reviewed by Branimir Lambov, Nitsan Wakart for CASSANDRA-21152
2026-04-01 18:58:02 +01:00
Sunil Ramchandra Pawar 157e8808f9 Add range delete support to AST-based fuzz tests
patch by Sunil Ramchandra Pawar; reviewed by Caleb Rackliffe and David Capwell for CASSANDRA-20949
2026-04-01 11:45:54 -05:00
Caleb Rackliffe 2184d5cc6b Merge branch 'cassandra-5.0' into trunk
* cassandra-5.0:
  ninja-fix: remove SSTable format and disk access mode randomization
2026-03-27 12:07:39 -05:00
ssekaran 32d541557c ninja-fix: remove SSTable format and disk access mode randomization
patch by Shruti Sekaran; reviewed by Caleb Rackliffe and Francisco Guerrero
2026-03-27 11:50:01 -05:00
Matt Byrd 989901e4e0
Ensure schema created before 2.1 without tableId in folder name can be loaded in SnapshotLoader
Best effort attempt to get tableId from CFS, fallback to null which, still allows snapshot to be loaded
End result is that nodetool clearsnapshot and listsnapshot function for such snapshots on restart.

patch by Matt Byrd; reviewed by Stefan Miklosovic, Brandon Williams and Francisco Guerrero for CASSANDRA-21173
2026-03-24 10:36:30 +01:00
Stefan Miklosovic a54d227c86
Rework ZSTD dictionary compression logic to create a trainer per training
patch by Stefan Miklosovic; reviewed by Yifan Cai for CASSANDRA-21209
2026-03-23 18:11:51 +01:00
mck 6590cb5aaf
Change trunk from 5.1 to 6.0
patch by Mick Semb Wever; reviewed by Dmitry Konstantinov for CASSANDRA-21243
2026-03-21 22:55:40 +01:00
Sam Tunnicliffe 5c07c122be Ninja: increase heap size in LocalRangesAllSettledBench
Follow up to 4454ab8699 (CASSANDRA-21144)
2026-03-19 10:27:57 +00:00
Caleb Rackliffe 0bbddf610b Merge branch 'cassandra-5.0' into trunk
* cassandra-5.0:
  Refactor SAI ANN query execution to use score ordered iterators for correctness and speed
2026-03-17 15:35:08 -05:00
Michael Marshall 23ec1c8a3f Refactor SAI ANN query execution to use score ordered iterators for correctness and speed
Rewrites ANN search query execution logic to more efficiently merge graph search results using
similarity score-ordered (descending) iterators to merge segments efficiently. Allows for reduced memory
consumption during queries, reduced impact of overwrites and tombstones, selective re-querying of
minimally necessary graphs, and reduced shuffling of PrimaryKey objects.

patch by Michael Marshall; reviewed by Caleb Rackliffe and Michael Semb Wever for CASSANDRA-20086
2026-03-17 15:14:13 -05:00
Sam Tunnicliffe 4454ab8699 Improve writePlacementsAllSettled performance in large clusters with many ongoing range movements
Only inflight MSOs which affect the local node need to be
applied to determine the settled local ranges

Patch by Sam Tunnicliffe; reviewed by Marcus Eriksson for
CASSANDRA-21144
2026-03-17 11:11:22 +00:00
mck a2e55684de
Merge branch 'cassandra-4.1' into cassandra-5.0
* cassandra-4.1:
  Rate limit password changes
2026-03-16 22:04:58 +01:00
mck 1cbdef6272
Merge branch 'cassandra-4.0' into cassandra-4.1
* cassandra-4.0:
  Rate limit password changes
2026-03-16 22:04:01 +01:00
mck 17c573f800
Rate limit password changes
Introduces property cassandra.role_password_update_interval_in_ms, with default value of 5000.
Logging added when passwords on roles are changed or are rate-limited.

 patch by Mick Semb Wever; reviewed by Doug Rohrer, Jeremiah Jordan for CASSANDRA-21202
2026-03-16 22:02:41 +01:00
Caleb Rackliffe a78504f541 Revert to making IdentityHashCode#applyAsInt() synchronized for JDK 21
patch by Caleb Rackliffe; reviewed by Dmitry Konstantinov for CASSANDRA-21213
2026-03-16 15:56:47 -05:00
Francisco Guerrero 5bd164477f Merge branch 'cassandra-5.0' into trunk
* cassandra-5.0:
  Disallow binding an identity to a superuser when the user is a regular user
2026-03-16 13:40:31 -07:00
Francisco Guerrero b584a43597 Disallow binding an identity to a superuser when the user is a regular user
patch by Francisco Guerrero; reviewed by Mick Semb Wever for CASSANDRA-21219
2026-03-16 13:32:20 -07:00
Sam Tunnicliffe 50c314eaec Consensus groups for range movements can omit future owners of merging ranges
* Expand affected ranges to include removals
* Don't create waiters for replica groups of future ranges not yet in placements

Patch by Sam Tunnicliffe; reviewed by Marcus Eriksson for
CASSANDRA-21142
2026-03-16 15:15:23 +00:00
samlightfoot ea3d8a3d31 Wire compaction_read_disk_access_mode through cursor-based compaction
Make MemoryUtil.clean() throw for slices/duplicates that cannot be cleaned and fix mmap cleanup
Parameterise main compaction tests for cursor/iterator and buffered/direct combinations

patch by Sam Lightfoot; reviewed by Ariel Weisberg, Dmitry Konstantinov for CASSANDRA-21147
2026-03-16 11:19:05 +00:00
mck 076c6f1136
Merge branch 'cassandra-5.0' into trunk
* cassandra-5.0:
  Fix ConcurrentModificationException in compaction garbagecollect
2026-03-13 22:35:30 +01:00
Joaquin Casares 2b1c8395eb
Fix ConcurrentModificationException in compaction garbagecollect
patch by Joaquin Casares; reviewed by Mick Semb Wever for CASSANDRA-21065
2026-03-13 22:32:06 +01:00
Sunil Ramchandra Pawar 8d325d50ed Allow value/element indexing on frozen collections in SAI
patch by Sunil Ramchandra Pawar; reviewed by Caleb Rackliffe, David Capwell, and Andres de la Peña for CASSANDRA-18492
2026-03-13 11:47:23 -05:00
Abhijeet Dubey 88b373a631 Add tool to offline dump cluster metadata and the log
Patch by Abhijeet Dubey; reviewed by Sam Tunnicliffe and marcuse for CASSANDRA-21129
2026-03-13 15:21:19 +01:00
minal-kyada 9bedf98b6e Send client warnings when writing to a large partition
Patch by Minal Kyada; reviewed by David Capwell and marcuse for CASSANDRA-17258
2026-03-13 12:44:30 +01:00
Caleb Rackliffe 87d79f30a0 Merge branch 'cassandra-5.0' into trunk
* cassandra-5.0:
  Randomize Memtable type/allocation type and SSTable format in Simulator tests
2026-03-11 16:09:47 -05:00
Shruti Sekaran ddfba19f9e Randomize Memtable type/allocation type and SSTable format in Simulator tests
patch by Shruti Sekaran; reviewed by Caleb Rackliffe and Francisco Guerrero for CASSANDRA-21177
2026-03-11 16:05:10 -05:00
Stefan Miklosovic 5519df34cb
Merge branch 'cassandra-5.0' into trunk 2026-03-05 16:13:42 +01:00