Commit Graph

31524 Commits

Author SHA1 Message Date
Benedict Elliott Smith e14816e244 Journal reads must select segments before sstables to avoid compaction races
Also Fix Cassandra:
 - In memory size calculation for CommandsForKey include Unmanaged
 - Accord load out-of-band cleanup should use SafeRedundantBefore
ALso Improve Cassandra:
 - Report replay information on begin replay
 - Improve AccordService shutdown
 - Log command store RedundantBefore on shutdown
 - Segment compaction should wait for readOrder barrier to replace segments, for additional safety
 - Journal segments should share readOrder with sstables
Also Improve Accord:
 - Iterate LocalListeners in order, so can query more effectively on node
 - Refine AbstractReplay.minReplay/shouldReplay

patch by Benedict; reviewed by Alex Petrov for CASSANDRA-21804
2025-12-17 19:34:44 +00:00
Dmitry Konstantinov c295c33a26 Optimize UTF8Validator.validate for ASCII prefixed Strings
Use a plain loop to check if it is ASCII symbol before going into more complicated UTF8 parsing.
Avoid ValueAccessor to get extra boost for the ASCII check, especially in non-monomorphic cases.

Patch by Dmitry Konstantinov; reviewed by Jyothsna Konisa, Stefan Miklosovic for CASSANDRA-21075
2025-12-17 13:01:18 +00:00
Dmitry Konstantinov d7bd75303f Switch LatencyMetrics to use ThreadLocalTimer/ThreadLocalCounter
Patch by Dmitry Konstantinov; reviewed by Benedict Elliott Smith, Jyothsna Konisa for CASSANDRA-21080
2025-12-17 10:38:42 +00:00
Brad Schoening e1699eb3a2 Update and syncronize cql_singlefile.adoc with CQL.textile updates
patch by Brad Schoening; reviewed by Jyothsna Konisa for CASSANDRA-20405
2025-12-15 23:08:12 -05:00
Brad Schoening 756af29b7a Update and syncronize cql_singlefile.adoc with CQL.textile updates.
patch by Brad Schoening; reviewed by Jyothsna Konisa for CASSANDRA-20405
2025-12-15 23:02:53 -05:00
David Capwell 9c8ab8809d Accord: write rejections would be returned to users as server errors rather than INVALID and TxnReferenceOperation didn't handle all collections prperly
patch by David Capwell; reviewed by Benedict Elliott Smith, Caleb Rackliffe, Jyothsna Konisa for CASSANDRA-21061
2025-12-15 16:32:07 -08:00
Rishabh Saraswat 9d89b47c68 Update cassandra-stress default cipher suites to support tls 1.3
patch by Rishabh Saraswat; reviewed by Jyothsna Konisa, Brad Schoening for CASSANDRA-21007
2025-12-15 13:04:54 -08:00
Benedict Elliott Smith e4684a11ec Fix:
- DefaultLocalListeners.ComplexListeners iterator IndexOutOfBoundsException
 - Race condition initialising empty ActiveEpochs, when minimum pending epoch can move backwards
 - SyncPoints must be declared in an epoch containing the ranges, and PENDING_REMOVAL ranges will reject non-syncpoint transactions
 - AccordExecutorMetrics is now registered on startup
 - getRecentValues for non-cumulative histogram should not subtract prior values
Improve:
 - Report ephemeral read, epoch waits and timeout metrics
 - Remove Topologies.SelectNodeOwnership, as no need to SLICE anymore
 - Introduce SystemEventListener for epoch waiting and timeout metrics
 - No-op but log if gcBefore provided to CFK is in the past

patch by Benedict; reviewed by Alex Petrov for CASSANDRA-21076
2025-12-15 20:26:55 +00:00
Dmitry Konstantinov 8a72868066 Use byte[] directly in QueryOptions instead of ByteBuffer and convert them to ArrayCell instead of BufferCell.
Additionally replace List with array for bind values (we know the size in advance during a decoding), so in total: List<List> is replaced with byte[][] QueryOptions classes support both ways to get values now: using an old API with ByteBuffer and a new API with byte[].

Patch by Dmitry Konstantinov; reviewed by Michael Semb Wever for CASSANDRA-20166
2025-12-15 10:58:43 +00:00
Alan Wang 25390eb8d5 Log queries scanning too many SSTables per read
patch by Alan Wang; reviewed by David Capwell, Marcus Eriksson for CASSANDRA-21048
2025-12-12 14:03:41 -08:00
Sunil Ramchandra Pawar a84abe7ba1 Extend nodetool verify to (optionally) validate SAI files
patch by Sunil Ramchandra Pawar; reviewed by Caleb Rackliffe and David Capwell for CASSANDRA-20949
2025-12-12 13:22:06 -06:00
Arra, Praveen R ba9790a6f0 Updated documentation on tombstones with examples
Patch by Arra Praveen; reviewed by Jyothsna Konisa, Brad Schoening for CASSANDRA-20800
2025-12-12 10:04:56 -08:00
Stefan Miklosovic a14406022d
Merge branch 'cassandra-5.0' into trunk 2025-12-11 11:24:51 +01:00
Stefan Miklosovic f894b8440d
Merge branch 'cassandra-4.1' into cassandra-5.0 2025-12-11 11:10:58 +01:00
Stefan Miklosovic efa0ead445
Merge branch 'cassandra-4.0' into cassandra-4.1 2025-12-11 11:02:05 +01:00
Mikołaj Diakowski 4c33f1f2d7
Restrict BytesType compatibility to scalar types only
Converting collections or UDTs to raw bytes is nonsensical - it
allows reading raw serialized bytes which have no meaningful
interpretation.

patch by Mikołaj Diakowski; reviewed by Stefan Miklosovic, Brandon Williams for CASSANDRA-20982
2025-12-11 10:53:29 +01:00
Stefan Miklosovic f7fab8a60a
Merge branch 'cassandra-5.0' into trunk 2025-12-10 12:41:51 +01:00
Stefan Miklosovic bbbf70a9a2
Merge branch 'cassandra-4.1' into cassandra-5.0 2025-12-10 12:39:43 +01:00
ireath c79f176685
Fix disk usage guardrail disablement when failure threshold is reached
patch by Isaac Reath; reviewed by Jyothsna Konisa, Stefan Miklosovic for CASSANDRA-21057
2025-12-10 12:24:22 +01:00
Stefan Miklosovic 39019f005b
Merge branch 'cassandra-5.0' into trunk 2025-12-10 12:00:59 +01:00
Stefan Miklosovic ced50b0b30
Merge branch 'cassandra-4.1' into cassandra-5.0 2025-12-10 11:58:42 +01:00
Stefan Miklosovic 73648c8215
Merge branch 'cassandra-4.0' into cassandra-4.1 2025-12-10 11:56:34 +01:00
Stefan Miklosovic 34c3736c9e
Backport fix to nodetool gcstats output for direct memory
patch by Stefan Miklosovic; reviewed by Brad Schoening for CASSANDRA-21037
2025-12-10 11:21:16 +01:00
Benedict Elliott Smith 13a3ae9297 Fix:
- DurabilityQueue/ShardScheduler deadlock
 - MemtableCleanerThread.Cleanup assumes Boolean parameter is non-null, which is invalid if an exception has been thrown
 - AccordDurableOnFlush may be invoked while Accord is starting up, so should use AccordService.unsafeInstance
 - AccordCache shrink without lock regression
 - Cleanup system_accord compaction leftovers before starting up
 - system_accord_debug.txn order
 - system_accord_debug.txn_blocked_by order
 - system_accord_debug.shard_epochs order
Improve:
 - Set DefaultProgressLog.setMode(Catchup) during Catchup
 - IdentityAccumulators only need to readLast, not readAll
 - Limit number of static segments we compact at once to sstable
 - If too many static segments on startup, wait for them to be compacted

patch by Benedict; reviewed by Alex Petrov for CASSANDRA-21053
2025-12-09 14:01:38 +00:00
Yifan Cai 21382e6874 Fix CompressionDictionary being closed while still in use
Patch by Yifan Cai; Reviewed by Stefan Miklosovic for CASSANDRA-21047
2025-12-08 14:37:13 -08:00
David Capwell c08666567d When updating a multi cell collection element, if the update is rejected then the shared Row.Builder is not freed causing all future mutations to be rejected
patch by David Capwell; reviewed by Bernardo Botella Corbi, Caleb Rackliffe, Dmitry Konstantinov for CASSANDRA-21055
2025-12-05 16:14:40 -08:00
jkonisa c4e1e2c8a8 CASSANDRA-21046 Schema annotations escape validation on CREATE and ALTER DDL statements
Patch by Jyothsna Konisa; Reviewed by Sam Tunnicliffe, Yifan Cai, Stefan Miklosovic for CASSANDRA-21046
2025-12-05 12:00:39 -08:00
Marcus Eriksson 2b5124d3f6 Merge branch 'cassandra-5.0' into trunk 2025-12-05 12:59:23 +01:00
Marcus Eriksson d17e6d1c6a Merge branch 'cassandra-4.1' into cassandra-5.0 2025-12-05 12:57:49 +01:00
Marcus Eriksson cbf974f2f0 Merge branch 'cassandra-4.0' into cassandra-4.1 2025-12-05 12:57:31 +01:00
Marcus Eriksson 76a7e43613 ArrayIndexOutOfBoundsException with repaired data tracking and counters
Patch by marcuse; reviewed by Sam Tunnicliffe for CASSANDRA-20871
2025-12-05 12:55:59 +01:00
Dmitry Konstantinov a7a85c634a Calculate once and cache the result of ModificationStatement#requiresRead as a perf optimization
Patch by Dmitry Konstantinov; reviewed by Stefan Miklosovic for CASSANDRA-21040
2025-12-03 19:14:52 +00:00
Dmitry Konstantinov 241f478ce6 Fix flaky ThreadLocalMeterTest by disabling background triggering of ThreadLocalMeter#tickAll within the test case
Patch by Dmitry Konstantinov; reviewed by Brandon Williams, Stefan Miklosovic for CASSANDRA-21056
2025-12-03 16:55:53 +00:00
Valery Baranov 7ed0dc33d0
Add a test for checking permissions after grant authorize
patch by Valery Baranov; reviewed by Stefan Miklosovic, Brandon Williams for CASSANDRA-21051
2025-12-03 16:17:15 +01:00
Marcus Eriksson b5f8ac2604 Update system schema tables with new distributed keyspace on upgrade
Patch by marcuse; reviewed by Sam Tunnicliffe for CASSANDRA-20872
2025-12-03 14:28:16 +01:00
Marcus Eriksson 7802743460 Fix issue when running cms reconfiguration with paxos repair disabled
Patch by marcuse; reviewed by Sam Tunnicliffe for CASSANDRA-20869
2025-12-03 14:27:21 +01:00
Yifan Cai 0212713750 Fix flaky test CompressionDictionarySchedulerTest.testScheduleSSTableBasedTrainingWithSSTables
Patch by Yifan Cai; Reviewed by Dmitry Konstantinov for CASSANDRA-21054
2025-12-02 16:13:55 -08:00
Alan Wang fd2986b8bc
Added additional parameter to JVM shutdown to allow for logs to be properly shutdown
patch by Alan Wang; reviewed by Abe Ratnofsky, Caleb Rackliffe for CASSANDRA-20978
2025-12-01 19:32:51 +01:00
Marcus Eriksson e1e39b074a Refactor the way we check if a transformation is allowed to be committed during upgrades
Patch by marcuse and Sam Tunnicliffe; reviewed by Sam Tunnicliffe for CASSANDRA-21043

Co-authored-by: Sam Tunnicliffe <samt@apache.org>
2025-12-01 10:39:25 +01:00
Marcus Eriksson 4ed54ecb2a Improve isGossipOnlyMember and location lookup performance
Patch by marcuse; reviewed by Sam Tunnicliffe for CASSANDRA-21039
2025-12-01 10:39:07 +01:00
Mick Semb Wever 53fff0034f
Further Improve debug around paused and disabled compaction
patch by Mick Semb Wever; reviewed by Paulo Motta for CASSANDRA-19728
2025-11-30 21:54:51 +01:00
Mick Semb Wever da31410ac6
Merge branch 'cassandra-5.0' into trunk
* cassandra-5.0:
  Improve jenkinsfile parse perf, and fix parallel xz test result file compressing
2025-11-30 21:46:21 +01:00
mck 5374ff50aa
Improve jenkinsfile parse perf, and fix parallel xz test result file compressing
Only read the supported and default jdks once.  Also add debug when starting the pipeline on the parameters that will be used for building and testing.

 ref: https://the-asf.slack.com/archives/CK23JSY2K/p1763714160975359

 patch by Mick Semb Wever; reviewed by Sam Tunnicliffe for CASSANDRA-21044
2025-11-30 21:43:47 +01:00
Sam Tunnicliffe 973d45f7c8 ninja: fix previous merge commit 2025-11-28 11:30:36 +00:00
Sam Tunnicliffe f2406b1070 Merge branch 'cassandra-5.0' into trunk 2025-11-28 11:12:04 +00:00
Sam Tunnicliffe f8f456f0f6 Fix default max interval calculation in FailureDetector
Patch by Sam Tunnicliffe; reviewed by Maxim Muzafarov and Stefan Miklosovic
for CASSANDRA-21025
2025-11-28 09:28:57 +00:00
ireath ce541b6ddf LegacyStateListener should call onRemove for gossip state listeners
Patch by Isaac Reath; reviewed by Sam Tunnicliffe and Paulo Motta for
CASSANDRA-21033
2025-11-28 07:46:45 +00:00
Benedict Elliott Smith 4b0df8ad6d ninja: fix IndexBuildsAfterStreamingTest regression due to now correctly capturing all uncaught exceptions 2025-11-27 18:23:14 +00:00
Benedict Elliott Smith 11b72f5331 Follow-up to CASSANDRA-21042: fix AccordResult.tryFailure/coordinationFailed.getMessage NPE 2025-11-27 14:45:02 +00:00
Benedict Elliott Smith 4defbb9b1c Make TopologyException a checked exception to ensure they are handled carefully, as they may occur at surprising times
Also Fix:
 - Restore MaxDecidedRX on replay
 - When catchup_on_start_exit_on_failure == false, should startup on any kind of failure, not only timeout
 - lazy vtable LIMIT clause regression
 - DurabilityService.onEpochRetired
 - Command.validate when uniqueHlc differs
 - Avoid unsafe publication of AccordExecutor to scheduledFastTasks
 - AccordCache hitRate metric names
 - use long for return type of DurationSpec.toNanoseconds
 - Repair without all replicas should not request all Accord replicas participate
 - ExecuteAtSerializer
 - SyncPoints should be coordinated in an epoch that contains the ranges
Also Improve:
 - Split Accord startup into local+distributed, ensure we
 - Add logging to FetchDurableBefore on startup
 - Add randomised testing of AbstractLazyVirtualTable
 - Add validation of lazy virtual table key ordering
 - Don't send requests to faulty replicas
 - shrinkOrEvict large objects without holding lock
 - Accord dtest shutdown

patch by Benedict; reviewed by Alex Petrov for CASSANDRA-21042
2025-11-27 13:12:25 +00:00