Commit Graph

30225 Commits

Author SHA1 Message Date
Maxwell Guo 8de4c9250e Make Commitlog flush data safely in Direct IO mode
patch by Maxwell Guo; reviewed by Ariel Weisberg for CASSANDRA-20692
2025-06-17 23:24:06 +08:00
Michael Marshall a72dcbc86a Get SAI MemtableIndex refs before SSTableIndex refs at query time
SAI predicate search currently has a bug that could result in missing rows due to a
concurrent flush during a query. The new test created in this PR shows the point of failure.
The problem is that we get the SSTable index references before getting the Memtable index
references. Note that we do it in the correct order in the ANN OF query path, but not
in the WHERE query path.

This commit updates the QueryView object to hold references to the appropriate Memtable indexes.

It also removes the problematic search methods from MemtableIndexManager to prevent future misuse.

patch by Michael Marshall; reviewed by Caleb Rackliffe and Ekaterina Dimitrova for CASSANDRA-20709
2025-06-16 16:00:47 -05:00
samlightfoot 53ccfd58f2 Fix MAX_SEGMENT_SIZE < chunkSize in MmappedRegions::updateState
patch by samlightfoot, Szymon Mi<C4><99><C5><BC>a<C5><82>; reviewed by Ariel Weisberg, Michael Semb Wever for CASSANDRA-20636
2025-06-10 16:32:11 -04:00
Marcus Eriksson f07510a303 CASSANDRA-18119 followup - test fix, create STATS component when using BtiFormat
Patch by marcuse; reviewed by Mick Semb Wever for CASSANDRA-18119
2025-06-05 14:04:42 +02:00
Dmitry Konstantinov 3969de6524
Mark JDK 17 as production ready
patch by Dmitry Konstantinov; reviewed by Michael Semb Wever, Stefan Miklosovic for CASSANDRA-20681
2025-06-02 12:15:59 +02:00
Ariel Weisberg 948e6c9879 Merge branch 'cassandra-4.1' into cassandra-5.0 2025-05-29 17:02:18 -04:00
Ariel Weisberg 88ca4f8d9a Backport CASSANDRA-20469 (Paxos repair interrupts running transactions) to 4.1 and 5.0
patch by Ariel Weisberg; reviewed by Benedict Elliott Smith for CASSANDRA-20585
2025-05-29 17:01:18 -04:00
Brandon Williams f1457e8084 Merge branch 'cassandra-4.1' into cassandra-5.0 2025-05-28 17:28:58 -05:00
Brandon Williams eb4e79500e Merge branch 'cassandra-4.0' into cassandra-4.1 2025-05-28 17:28:51 -05:00
Brandon Williams 00f2b3e9f6 increment version 2025-05-28 17:28:46 -05:00
Caleb Rackliffe e5c101673a Ensure replica filtering protection does not trigger unnecessary short read protection reads
patch by Caleb Rackliffe; reviewed by Blake Eggleston and Zhao Yang for CASSANDRA-20639
2025-05-28 16:40:37 -05:00
Andy Tolbert e90fece187 Merge branch 'cassandra-4.1' into cassandra-5.0
* cassandra-4.1:
  Ensure prepared_statement INSERT timestamp precedes eviction DELETE
2025-05-27 22:29:40 -05:00
Andy Tolbert 9c308ce2f3 Merge branch 'cassandra-4.0' into cassandra-4.1
* cassandra-4.0:
  Ensure prepared_statement INSERT timestamp precedes eviction DELETE
2025-05-27 22:22:41 -05:00
Andy Tolbert d077f69553 Ensure prepared_statement INSERT timestamp precedes eviction DELETE
Updates SystemKeyspace.writePreparedStatement to accept a timestamp
associated with the Prepared creation time. Using this timestamp
will ensure that an INSERT into system.prepared_statements will
always precede the timestamp for the same Prepared in
SystemKeyspace.removePreparedStatement.

This is needed because Caffeine 2.9.2 may evict an entry as soon
as it is inserted if the maximum weight of the cache is exceeded
causing the DELETE to be executed before the INSERT.

Additionally, any clusters currently experiencing a leaky
system.prepared_statements table from this bug may struggle to
bounce into a version with this fix as
SystemKeyspace.loadPreparedPreparedStatements currently does
not paginate the query to system.prepared_statements, causing heap
OOMs.  To fix this this patch adds pagination at 5000 rows and
aborts loading once the cache size is loaded. This should allow
nodes to come up and delete older prepared statements that may no
longer be used as the cache fills up (which should happen immediately).

This patch does not address the issue of Caffeine immediately evicting
a prepared statement, however it will prevent the
system.prepared_statements table from growing unbounded.  For most users
this should be adequate, as the cache should only be filled when there
are erroneously many unique prepared statements. In such a case we can
expect that clients will constantly prepare statements regardless
of whether or not the cache is evicting statements.

patch by Andy Tolbert; reviewed by Berenguer Blasi and Caleb Rackliffe for CASSANDRA-19703
2025-05-27 22:17:15 -05:00
Pranav Shenoy 823f48663e Unified Compaction does not properly validate min and target sizes
patch by Pranav Shenoy; reviewed by Branimir Lambov, Claude Warren, David Capwell for CASSANDRA-20398
2025-05-27 15:22:32 -07:00
Caleb Rackliffe dd0d8c03b9 Avoid lambda usage in TrieMemoryIndex range queries and ensure queue size tracking is per column
patch by Caleb Rackliffe; reviewed by David Capwell for CASSANDRA-20668
2025-05-27 15:44:01 -05:00
mck 1066f6a427
Remove auto-installation of golang when generating native protocol doc pages
patch by Mick Semb Wever; reviewed by Štefan Miklošovič for CASSANDRA-20678
2025-05-26 14:39:58 +02:00
Brad Schoening 49c8122d8f
Avoid CQLSH throwing an exception loading .cqlshrc on non-supported platforms
While we do not support Windows as such (at least on server), reviewers evaluated that this might be fixed
as the gains (Windows users using CQLSH to connect to Cassandra running on supported platforms) are justified.

patch by Brad Schoening; reviewed by Brandon Williams, Josh McKenzie for CASSANDRA-20478
2025-05-23 17:49:28 +02:00
David Capwell ac05c94e6a Merge branch 'cassandra-4.1' into cassandra-5.0 2025-05-22 14:15:37 -07:00
David Capwell 005d3c28e5 Merge branch 'cassandra-4.0' into cassandra-4.1 2025-05-22 14:14:42 -07:00
David Capwell c736d22cf8 Gossip doesn't converge due to race condition when updating EndpointStates multiple fields
patch by David Capwell, Matt Byrd; reviewed by Blake Eggleston, Brandon Williams for CASSANDRA-20659
2025-05-22 14:12:15 -07:00
Brandon Williams 85a659a432 Merge branch 'cassandra-4.1' into cassandra-5.0 2025-05-22 07:12:07 -05:00
Brandon Williams cf528bc99c Merge branch 'cassandra-4.0' into cassandra-4.1 2025-05-22 07:11:57 -05:00
Brandon Williams 422b8a6cbd Prepare debian changelog for 4.0.18 2025-05-22 06:46:18 -05:00
mck e3e405ef75
Merge branch 'cassandra-4.1' into cassandra-5.0
* cassandra-4.1:
  Fix cassandra-cqlsh-tests.sh on python <= 3.8
2025-05-21 23:28:30 +02:00
mck 07e656fe2b
Merge branch 'cassandra-4.0' into cassandra-4.1
* cassandra-4.0:
  Fix cassandra-cqlsh-tests.sh on python <= 3.8
2025-05-21 23:28:08 +02:00
mck fd3f8249d5
Fix cassandra-cqlsh-tests.sh on python <= 3.8
patch by Mick Semb Wever; reviewed by Brandon Williams for CASSANDRA-20669
2025-05-21 23:26:33 +02:00
Brandon Williams aeda9532ae Merge branch 'cassandra-4.1' into cassandra-5.0 2025-05-19 18:51:55 -05:00
Brandon Williams 56b7e90f1f bump build.xml version 2025-05-19 18:51:44 -05:00
Brandon Williams 3bfd82caac Merge branch 'cassandra-4.1' into cassandra-5.0 2025-05-16 07:54:41 -05:00
Dmitry Konstantinov 96b3db90fb Relax validation of snapshot name as a part of SSTable files path validation
Patch by Dmitry Konstantinov; reviewed by Michael Semb Wever for CASSANDRA-20649
2025-05-16 12:50:42 +01:00
Brandon Williams 82fc35b013 Prepare debian changelog for 4.1.9 2025-05-15 10:52:53 -05:00
Marcus Eriksson 29746cffbb Merge branch 'cassandra-4.1' into cassandra-5.0 2025-05-12 13:29:36 +02:00
Marcus Eriksson d4fb51347c Merge branch 'cassandra-4.0' into cassandra-4.1 2025-05-12 13:22:01 +02:00
Josh McKenzie f2e3a0a4fc Handle sstable metadata stats file getting a new mtime after compaction has finished
Patch by Josh McKenzie and marcuse; reviewed by Josh McKenzie and marcuse for CASSANDRA-18119
2025-05-12 13:16:50 +02:00
Brandon Williams 9e1b09f384 Merge branch 'cassandra-4.1' into cassandra-5.0 2025-05-09 06:22:50 -05:00
Brandon Williams b4484968bd Use MAX_PARALLEL_TRANSFERS instead of default
Patch by brandonwilliams, reviewed by mck for CASSANDRA-20532
2025-05-09 06:14:59 -05:00
Brandon Williams aa8daa44e0 Merge branch 'cassandra-4.0' into cassandra-4.1 2025-05-09 06:13:56 -05:00
Brandon Williams 43746c13c2 Use MAX_PARALLEL_TRANSFERS instead of default
Patch by brandonwilliams, reviewed by mck for CASSANDRA-20532
2025-05-09 06:10:46 -05:00
Sunil Ramchandra Pawar 7a8335c273 Optimize initial skipping logic for SAI queries on large partitions
patch by Sunil Ramchandra Pawar; reviewed by Caleb Rackliffe and David Capwell for CASSANDRA-20191
2025-05-08 14:28:07 -05:00
Szymon Miężał 6a81306876 Reading mmapped trie-index exceeding 2GiB results in exception
Memory-mapping is done in buffers of size less than 2GiB.
When these buffers aren't aligned to 4KiB and the trie-index file
spans many buffers then reading it results in going out of buffer
bounds.

This patch fixes it by making sure that the buffers are correctly
aligned.

patch by Szymon Miezal; reviewed by blambov and brandonwilliams for CASSANDRA-20351
2025-05-06 06:38:53 -05:00
David Capwell 4f25e58f26 zero copy streaming allocates direct memory that isn't used, but does help to fragment the memory space
patch by David Capwell; reviewed by Yifan Cai for CASSANDRA-20577
2025-05-02 16:35:38 -07:00
Jon Haddad 80224a9767 Improved UCS docs with migration advice and example workloads.
Patch by Jon Haddad for CASSANDRA-19389
2025-05-02 12:15:36 -07:00
Doug Rohrer 2aeb6a0290 CASSANDRA-20609 - CQLSSTableWriter should support setting the format (5.0) 2025-05-01 13:33:57 -04:00
Jordan West 79c59347be Don't allocate in ThreadLocalReadAheadBuffer#close()
Patch by Jordan West; reviewed by Benedict Elliot Smith for CASSANDRA-20551
2025-04-28 13:26:21 -07:00
Mick Semb Wever ec26d53d6c
In ubuntu2004_test automatically find the latest available patch version for each C* major.minor
Inspired by https://github.com/apache/cassandra-builds/pull/108
Closes https://github.com/apache/cassandra/pull/4025

 patch by Mick Semb Wever; reviewed by Siyao (Jane) He for CASSJAVA-40
2025-04-27 20:18:52 +02:00
Caleb Rackliffe 4bcae8e57e Ensure RowFilter#isMutableIntersection() properly evaluates numeric ranges on a single column
patch by Caleb Rackliffe; reviewed by Ariel Weisberg for CASSANDRA-20566
2025-04-27 09:46:59 -05:00
Dmitry Konstantinov ae82efc013 Add LittleEndianMemoryUtil and NativeEndianMemoryUtil, switch memtable-related off-heap objects and Memory to use them and have Little Endian now.
Add BE offsets detection on Summary loading.
Add test SSTables in an old format with BE offsets in Summary component to LegacySSTableTest.

Patch by Dmitry Konstantinov; reviewed by Branimir Lambov, Michael Semb Wever for CASSANDRA-20190
2025-04-24 11:45:26 +01:00
David Capwell 07831c9cc7 SAI marks an index as non-empty when a partial partition/row modifications is flushed due to repair
patch by David Capwell; reviewed by Caleb Rackliffe for CASSANDRA-20567
2025-04-23 17:58:45 -07:00
Sunil Ramchandra Pawar 97037496f2 SAI fails queries when multiple columns exist and a non-indexed column is a composite with a map
patch by Sunil Ramchandra Pawar; reviewed by Caleb Rackliffe, David Capwell for CASSANDRA-19891
2025-04-23 15:05:54 -07:00