Commit Graph

32119 Commits

Author SHA1 Message Date
Dmitry Konstantinov e6064f11c1 Merge branch 'cassandra-6.0' into trunk
* cassandra-6.0:
  Enable async GC logging for JDK versions which support it to avoid potential hiccups caused by GC log file I/O blocking
2026-05-31 13:27:26 +01:00
Dmitry Konstantinov e2dae5e7a0 Enable async GC logging for JDK versions which support it to avoid potential hiccups caused by GC log file I/O blocking
patch by Dmitry Konstantinov; reviewed by Stefan Miklosovic for CASSANDRA-21372
2026-05-31 12:58:27 +01:00
Stefan Miklosovic c59ae41217
Merge branch 'cassandra-6.0' into trunk 2026-05-31 11:27:44 +02:00
walcp1 bbff4f8d18
Add rowsMutatedPerWriteHistogram metric to track rows mutated per write request
patch by Piotrek Walczak; reviewed by Dmitry Konstantinov, Stefan Miklosovic for CASSANDRA-21320
2026-05-31 11:26:02 +02:00
Dmitry Konstantinov 9c3caa8c95 Merge branch 'cassandra-6.0' into trunk
* cassandra-6.0:
  A test emitting both a failure and error element in the same JUnit XML testcase crashes CI summary generation
2026-05-30 16:54:57 +01:00
Dmitry Konstantinov ae447445b3 Merge branch 'cassandra-5.0' into cassandra-6.0
* cassandra-5.0:
  A test emitting both a failure and error element in the same JUnit XML testcase crashes CI summary generation
2026-05-30 16:45:06 +01:00
Dmitry Konstantinov ffe7f761b8 A test emitting both a failure and error element in the same JUnit XML testcase crashes CI summary generation
patch by Dmitry Konstantinov; reviewed by Michael Semb Wever for CASSANDRA-21396
2026-05-30 16:23:50 +01:00
David Capwell 7456dbc82e ShardDurability.markDefunct() called O(N²) times across topology updates, causing log spam and OOM in tests
patch by David Capwell; reviewed by Benedict Elliott Smith for CASSANDRA-21410
2026-05-29 09:18:54 -07:00
Stefan Miklosovic ad9db90a1f
Merge branch 'cassandra-6.0' into trunk 2026-05-29 16:21:26 +02:00
pwalczak 03450cdea6
Add TotalRowsRead and TotalRowsMutated counters to TableMetrics for accurate per-table row throughput tracking
patch by Piotrek Walczak; reviewed by Dmitry Konstantinov, Stefan Miklosovic for CASSANDRA-21321
2026-05-29 16:20:38 +02:00
Marcus Eriksson 04064783bf
fix cluster metadata upgrade tests - these only make sense when upgrading from a gossip cluster to a cluster metadata one
patch by Marcus Eriksson; reviewed by Francisco Guerrero for CASSANDRA-21326
2026-05-29 11:40:10 +02:00
Stefan Miklosovic 68133fe705
Merge branch 'cassandra-6.0' into trunk 2026-05-29 09:54:56 +02:00
Stefan Miklosovic e21461e4e8
Move exception handling of SPI startup checks when iterating over them
patch by Stefan Miklosovic; reviewed by Caleb Rackliffe for CASSANDRA-21409
2026-05-29 09:35:52 +02:00
Dmitry Konstantinov c588b674bf Merge branch 'cassandra-6.0' into trunk
* cassandra-6.0:
  Avoid type lookup in SerializationHeader#getType if schema and SSTable are aligned
2026-05-28 15:20:11 +01:00
Dmitry Konstantinov 9198058986 Avoid type lookup in SerializationHeader#getType if schema and SSTable are aligned
patch by Dmitry Konstantinov; reviewed by Francisco Guerrero for CASSANDRA-21402
2026-05-28 15:11:03 +01:00
Dmitry Konstantinov 0a6774d35d Merge branch 'cassandra-6.0' into trunk
* cassandra-6.0:
  Replace LongAdder in metric-like logic with ThreadLocalCounter
2026-05-28 14:58:42 +01:00
Dmitry Konstantinov 454f62d45a Replace LongAdder in metric-like logic with ThreadLocalCounter
patch by Dmitry Konstantinov; reviewed by Stefan Miklosovic for CASSANDRA-21400
2026-05-28 14:22:47 +01:00
David Capwell d8de51c654 Merge branch 'cassandra-6.0' into trunk 2026-05-27 15:23:20 -07:00
David Capwell bc6e4a2b63 Fix flaky test DropAccordTableTest
patch by David Capwell; reviewed by Caleb Rackliffe for CASSANDRA-21397
2026-05-27 15:21:07 -07:00
Dmitry Konstantinov fbf1137c80 Merge branch 'cassandra-6.0' into trunk
* cassandra-6.0:
  BTreeRow.hasLiveData: avoid Cell iteration if there are no cell tombstones
2026-05-26 15:48:24 +01:00
Dmitry Konstantinov bf711a0fc1 BTreeRow.hasLiveData: avoid Cell iteration if there are no cell tombstones
patch by Dmitry Konstantinov; reviewed by Francisco Guerrero for CASSANDRA-21363
2026-05-26 15:33:28 +01:00
The Apache Software Foundation c84f3d4d51
Set up default protection ruleset for default and release branches
patch by The Apache Software Foundation; reviewed by Stefan Miklosovic, Michael Semb Wever for CASSANDRA-21404

Co-authored-by: mck <mck@apache.org>
2026-05-25 11:11:43 +02:00
Dmitry Konstantinov 0998495417 Merge branch 'cassandra-6.0' into trunk
* cassandra-6.0:
  Reduce memory allocations in row merge logic
2026-05-21 22:42:22 +01:00
Dmitry Konstantinov 71e8b7c213 Reduce memory allocations in row merge logic
org.apache.cassandra.utils.MergeIterator.Candidate - has Comparator field which is the same for all Candidates under an MergeIterator instance, we can move the field to MergeIterator level. Candidate is 4.8% of all allocations and we can save 20% (~1% of all allocations) of it for JDK 21 with compressed references on.

 switch from ArrayList to array in org.apache.cassandra.db.rows.Row.Merger
The ArrayList iterator costs 0.72% and BulkIterator.Adapter costs 0.35%. So, in total we can save here ~1% of total allocations.

patch by Dmitry Konstantinov; reviewed by Francisco Guerrero for CASSANDRA-21359
2026-05-21 22:28:59 +01:00
Stefan Miklosovic a656b7b556
Merge branch 'cassandra-6.0' into trunk 2026-05-21 22:04:44 +02:00
Stefan Miklosovic b3bc7c019f
Add get/setDataDiskUsageKeyspaceWideProtectionEnabled to GuardrailsConfig
This was forgotten in the original patch.

patch by Stefan Miklosovic; reviewed by Paulo Motta for CASSANDRA-21024
2026-05-21 22:03:41 +02:00
Dmitry Konstantinov e686ab81ca Merge branch 'cassandra-6.0' into trunk
* cassandra-6.0:
  Reduce time to execute microbench-test
2026-05-21 20:52:31 +01:00
Dmitry Konstantinov 1f078c0daf Reduce time to execute microbench-test
Set 1 thread and 1 second for the measurement iteration (note: it is a smoke test only, we do not analyze results from such short measurements)
Exclude some options for heavy benchmarks by default
Shutdown all threads once JMH test is completed to avoid awaiting of a forked JVM till timeout at the end

patch by Dmitry Konstantinov; reviewed by Michael Semb Wever for CASSANDRA-21388
2026-05-21 20:27:42 +01:00
Francisco Guerrero f77189325b Avoid using ObjectUtils.getFirstNonNull in Schema
Patch by Francisco Guerrero; reviewed by Dmitry Konstantinov for CASSANDRA-21394
2026-05-21 10:36:32 -07:00
Maxim Muzafarov 706b71e360
Merge branch 'cassandra-6.0' into trunk
* cassandra-6.0:
  Bump checkstyle version up to 10.26.1
2026-05-21 16:48:47 +02:00
Maxim Muzafarov d1b76b6e9a
Merge branch 'cassandra-5.0' into cassandra-6.0
* cassandra-5.0:
  Bump checkstyle version up to 10.26.1
2026-05-21 16:47:09 +02:00
Dmitry Konstantinov 2ebc3be787 Merge branch 'cassandra-6.0' into trunk
* cassandra-6.0:
  Increase Xmx to 2Gb for Ant executed by check-code.sh to avoid OOM
2026-05-21 15:33:37 +01:00
Dmitry Konstantinov 48aebdac48 Increase Xmx to 2Gb for Ant executed by check-code.sh to avoid OOM
patch by Dmitry Konstantinov; reviewed by Michael Semb Wever for CASSANDRA-21391
2026-05-21 15:32:11 +01:00
Maxim Muzafarov 16c0d1233e
Bump checkstyle version up to 10.26.1
patch by Maxim Muzafarov; reviewd by Dmitry Konstantinov for CASSANDRA-21395
2026-05-21 16:09:59 +02:00
Dmitry Konstantinov 6525296e67 Merge branch 'cassandra-6.0' into trunk
* cassandra-6.0:
  Print class histogram in case of ant failure in check-code.sh
2026-05-21 11:20:24 +01:00
Dmitry Konstantinov 9267874656 Print class histogram in case of ant failure in check-code.sh
patch by Dmitry Konstantinov; reviewed by Stefan Miklosovic,Maxim Muzafarov for CASSANDRA-21391
2026-05-21 11:18:29 +01:00
Sam Tunnicliffe 43a1f51d45 Merge branch 'cassandra-6.0' into trunk 2026-05-20 16:29:24 +01:00
Matt Byrd 7927ac4395 Bring back the ability to Optionally avoid hint transfer during decommission (CASSANDRA-17808)
lost due to merge of ae0842372f

patch by Matt Byrd; reviewed by Stefan Miklosovic and Sam Tunnicliffe for CASSANDRA-21341
2026-05-20 16:20:53 +01:00
Benedict Elliott Smith e28b9bd1f7 Merge branch 'cassandra-6.0' into trunk 2026-05-18 17:59:39 +01:00
Benedict Elliott Smith eabcce910a Accord: Slice PreLoadContext to owned keys in MapReduceCommandStores 2026-05-18 17:57:25 +01:00
Benedict Elliott Smith 8ac59e05a7 Accord: CoordinateTransaction should not abort if LocalExecute fails 2026-05-18 17:54:48 +01:00
Sam Tunnicliffe 254a3482ad Merge branch 'cassandra-6.0' into trunk 2026-05-18 14:33:18 +01:00
Sam Tunnicliffe 6e46e39df8 ninja: replace addtocmstool with cmsofflinetool in rpm/deb packages
Follow up to CASSANDRA-19151
2026-05-18 14:04:33 +01:00
Benedict Elliott Smith 5eba832793 Merge branch 'cassandra-6.0' into trunk 2026-05-18 13:25:59 +01:00
Benedict Elliott Smith 7623a59b31 Accord: Deterministic time integration
- now() functions must be deterministic (and derived from Accord timestamp)
 - tombstone GC and TTL evaluation must be deterministic and based on both Accord timestamp and Accord GC mechanisms (that guarantee completeness of execution)

patch by Benedict; reviewed by Alex Petrov and Ariel Weisberg for CASSANDRA-21376
2026-05-18 13:19:25 +01:00
Benedict Elliott Smith dc7935be80 Merge branch 'cassandra-6.0' into trunk 2026-05-16 21:15:27 +01:00
Benedict Elliott Smith a0dc6f857b Introduce AccordExecutorSignalLoop that aims to reduce lock contention:
- consumer and producer threads wait signal without acquiring the lock first
 - lock owners may prepare more work than they need, moving some dynamically-adjusted portion of the work from the prioritised lock-managed structures onto a non-blocking queue, so that other threads may consume work from there; the portion is continually micro-adjusted to target some available work whenever the lock is acquired.
 - adopts/supports some features of the SEPExecutor:
  - threads may auto-adjust the number of running threads based on how much time is collectively spent waiting, to minimise time spent signalling
  - consumers may (timed-sleep) poll rather than await a signal, reducing the number of kernel interactions needed; relying on the auto-adjustment to bound the time the scheduler spends waking threads with no work to do
Also Fix:
 - Client Result should not be persisted or included in Command object at any time

patch by Benedict; reviewed by Alex Petrov and Ariel Weisberg for CASSANDRA-21375
2026-05-16 21:12:49 +01:00
Sam Tunnicliffe 206485e820 Merge branch 'cassandra-6.0' into trunk 2026-05-15 14:49:01 +01:00
nvharikrishna c9d60a61e3 Offline tool for working with cluster metadata dump files
The following subcommands have been added:

* abortbootstrap        Cancel and undo an inflight bootstrap
* abortmove             Cancel and undo an inflight token move
* abortdecommission     Cancel and undo an inflight decommission
* assassinate           Remove a node from cluster metadata
* resetcms              Redefine the CMS membership
* move                  Modify a node's (single) owned token
* describe              Output a summary of the cluster metadata
* forcejoin             Force a registered or joining node into a JOINED state
* print                 Output a full rendering of cluster metadata
* printdirectory        Output a full rendering of the directory
* printdataplacements   Output the full data placements

Patch by Venkata Harikrishna Nukala; reviewed by Alex Petrov and Sam Tunnicliffe
for CASSANDRA-19151
2026-05-15 14:41:06 +01:00
Benedict Elliott Smith 5634d4e02a Merge branch 'cassandra-6.0' into trunk 2026-05-15 11:08:34 +01:00