(cassandra-java-driver) branch 4.x updated: ninja-fix CASSANDRA-19568: fixing mangled Groovy

2024-05-08 Thread absurdfarce
This is an automated email from the ASF dual-hosted git repository.

absurdfarce pushed a commit to branch 4.x
in repository https://gitbox.apache.org/repos/asf/cassandra-java-driver.git


The following commit(s) were added to refs/heads/4.x by this push:
 new 4bc346885 ninja-fix CASSANDRA-19568: fixing mangled Groovy
4bc346885 is described below

commit 4bc346885fd373906ed6106b76df6d494cb51b67
Author: absurdfarce 
AuthorDate: Wed May 8 21:37:02 2024 -0500

ninja-fix CASSANDRA-19568: fixing mangled Groovy
---
 Jenkinsfile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Jenkinsfile b/Jenkinsfile
index 69ee0a294..d38b7c638 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -103,7 +103,7 @@ def buildDriver(jabbaVersion) {
 . ${JABBA_SHELL}
 jabba use '''+jabbaVersion+'''
 
-echo "Building with Java version '''+jabbaVersion+'''
+echo "Building with Java version '''+jabbaVersion+'''"
 
 mvn -B -V install -DskipTests -Dmaven.javadoc.skip=true
   '''


-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



(cassandra-java-driver) branch 4.x updated: CASSANDRA-19568: Use Jabba to specify Java 1.8 for building the driver

2024-05-08 Thread absurdfarce
This is an automated email from the ASF dual-hosted git repository.

absurdfarce pushed a commit to branch 4.x
in repository https://gitbox.apache.org/repos/asf/cassandra-java-driver.git


The following commit(s) were added to refs/heads/4.x by this push:
 new 3a6873774 CASSANDRA-19568: Use Jabba to specify Java 1.8 for building 
the driver
3a6873774 is described below

commit 3a687377449f736ba1ed28bfcff824982b3138c4
Author: janehe 
AuthorDate: Wed Apr 17 14:59:59 2024 -0700

CASSANDRA-19568: Use Jabba to specify Java 1.8 for building the driver

patch by Jane He and Bret McGuire; reviewed by Bret McGuire for 
CASSANDRA-19568
---
 Jenkinsfile | 21 +++--
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/Jenkinsfile b/Jenkinsfile
index 0bfa4ca7f..69ee0a294 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -98,14 +98,16 @@ ENVIRONMENT_EOF
 }
 
 def buildDriver(jabbaVersion) {
-  withEnv(["BUILD_JABBA_VERSION=${jabbaVersion}"]) {
-sh label: 'Build driver', script: '''#!/bin/bash -le
-  . ${JABBA_SHELL}
-  jabba use ${BUILD_JABBA_VERSION}
+  def buildDriverScript = '''#!/bin/bash -le
 
-  mvn -B -V install -DskipTests -Dmaven.javadoc.skip=true
-'''
-  }
+. ${JABBA_SHELL}
+jabba use '''+jabbaVersion+'''
+
+echo "Building with Java version '''+jabbaVersion+'''
+
+mvn -B -V install -DskipTests -Dmaven.javadoc.skip=true
+  '''
+  sh label: 'Build driver', script: buildDriverScript
 }
 
 def executeTests() {
@@ -484,7 +486,7 @@ pipeline {
   }
   stage('Build-Driver') {
 steps {
-  buildDriver('default')
+  buildDriver('1.8')
 }
   }
   stage('Execute-Tests') {
@@ -600,8 +602,7 @@ pipeline {
   }
   stage('Build-Driver') {
 steps {
-  // Jabba default should be a JDK8 for now
-  buildDriver('default')
+  buildDriver('1.8')
 }
   }
   stage('Execute-Tests') {


-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



Re: [PR] CASSANDRA-19568: Use Jabba to specify Java 1.8 for building the driver [cassandra-java-driver]

2024-05-08 Thread via GitHub


absurdfarce merged PR #1932:
URL: https://github.com/apache/cassandra-java-driver/pull/1932


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-18108) Data loss after a system restart/upgrade (3.11.17)

2024-05-08 Thread Ke Han (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-18108?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ke Han updated CASSANDRA-18108:
---
Description: 
When we upgrade Cassandra from 3.11.17 to 4.0.12, we found a data loss during 
the upgrade process. This bug can also be triggered if simply performing a 
system restart for 3.11.17, 4.0.12 or 4.1.4.
h1. Steps to reproduce

Start a 3.11.15 or 4.1.4 Cassandra node using default configurations. Execute 
the following cqlsh commands.
{code:java}
CREATE KEYSPACE  ks WITH REPLICATION = { 'class' : 'SimpleStrategy', 
'replication_factor' : 1 };
CREATE TABLE IF NOT EXISTS ks.tb (c1 INT,c3 INT,c2 TEXT, PRIMARY KEY (c1 )) 
WITH speculative_retry = 'ALWAYS';
INSERT INTO ks.tb (c1, c2) VALUES (2,'val');
ALTER TABLE ks.tb DROP c2 ;
ALTER TABLE ks.tb RENAME c1 TO c2; {code}
Then execute a SELECT command, we get the correct data
{code:java}
cqlsh> SELECT *  FROM ks.tb;
 c2 | c3
+--
  2 | null

(1 rows){code}
Flush and stop the Cassandra daemon.
{code:java}
bin/nodetool flush
bin/nodetool stopdaemon{code}
Then restart the node.
{code:java}
bin/cassandra{code}
Start cqlsh, and execute the same SELECT command. The data in ks.tb is lost.
{code:java}
cqlsh> SELECT *  FROM ks.tb;

 c2 | c3
+

(0 rows){code}
During the node restart, we found an error log about initializing the table, 
but it didn't prevent the system from starting up.
{code:java}
INFO  [main] 2022-12-09 21:37:54,234 ColumnFamilyStore.java:432 - Initializing 
ks.tb
ERROR [SSTableBatchOpen:1] 2022-12-09 21:37:54,237 CassandraDaemon.java:244 - 
Exception in thread Thread[SSTableBatchOpen:1,5,main]
java.lang.AssertionError: null
at 
org.apache.cassandra.db.PartitionColumns$Builder.add(PartitionColumns.java:161)
at 
org.apache.cassandra.db.SerializationHeader$Component.toHeader(SerializationHeader.java:340)
at 
org.apache.cassandra.io.sstable.format.SSTableReader.open(SSTableReader.java:522)
at 
org.apache.cassandra.io.sstable.format.SSTableReader.open(SSTableReader.java:385)
at 
org.apache.cassandra.io.sstable.format.SSTableReader$3.run(SSTableReader.java:570)
at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at 
org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:84)
at java.lang.Thread.run(Thread.java:750) {code}
This bug can also be triggered if we perform an upgrade from 3.11.15 to 4.0.12 
or 4.1.4 and execute the SELECT command in the new version.

  was:
When we upgrade Cassandra from 3.11.15 to 4.0.7, we found a data loss during 
the upgrade process. This bug can also be triggered if simply performing a 
system restart. 
h1. Steps to reproduce

Start a 3.11.15 or 4.0.7 Cassandra node using default configurations. Execute 
the following cqlsh commands.
{code:java}
CREATE KEYSPACE  ks WITH REPLICATION = { 'class' : 'SimpleStrategy', 
'replication_factor' : 1 };
CREATE TABLE IF NOT EXISTS ks.tb (c1 INT,c3 INT,c2 TEXT, PRIMARY KEY (c1 )) 
WITH speculative_retry = 'ALWAYS';
INSERT INTO ks.tb (c1, c2) VALUES (2,'val');
ALTER TABLE ks.tb DROP c2 ;
ALTER TABLE ks.tb RENAME c1 TO c2; {code}
Then execute a SELECT command, we get the correct data
{code:java}
cqlsh> SELECT *  FROM ks.tb;
 c2 | c3
+--
  2 | null

(1 rows){code}
Flush and stop the Cassandra daemon.
{code:java}
bin/nodetool flush
bin/nodetool stopdaemon{code}
Then restart the node.
{code:java}
bin/cassandra{code}
Start cqlsh, and execute the same SELECT command. The data in ks.tb is lost.
{code:java}
cqlsh> SELECT *  FROM ks.tb;
 c2 | c3
+

(0 rows){code}
 

During the node restart, we found an error log about initializing the table, 
but it didn't prevent the system from starting up.
{code:java}
INFO  [main] 2022-12-09 21:37:54,234 ColumnFamilyStore.java:432 - Initializing 
ks.tb
ERROR [SSTableBatchOpen:1] 2022-12-09 21:37:54,237 CassandraDaemon.java:244 - 
Exception in thread Thread[SSTableBatchOpen:1,5,main]
java.lang.AssertionError: null
at 
org.apache.cassandra.db.PartitionColumns$Builder.add(PartitionColumns.java:161)
at 
org.apache.cassandra.db.SerializationHeader$Component.toHeader(SerializationHeader.java:340)
at 
org.apache.cassandra.io.sstable.format.SSTableReader.open(SSTableReader.java:522)
at 
org.apache.cassandra.io.sstable.format.SSTableReader.open(SSTableReader.java:385)
at 
org.apache.cassandra.io.sstable.format.SSTableReader$3.run(SSTableReader.java:570)
at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at 

[jira] [Updated] (CASSANDRA-18108) Data loss after a system restart/upgrade (3.11.17)

2024-05-08 Thread Ke Han (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-18108?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ke Han updated CASSANDRA-18108:
---
Description: 
When we upgrade Cassandra from 3.11.17 to 4.0.12, we found a data loss during 
the upgrade process. This bug can also be triggered if simply performing a 
system restart for 3.11.17, 4.0.12 or 4.1.4.
h1. Steps to reproduce

Start a 3.11.15 or 4.1.4 Cassandra node using default configurations. Execute 
the following cqlsh commands.
{code:java}
CREATE KEYSPACE  ks WITH REPLICATION = { 'class' : 'SimpleStrategy', 
'replication_factor' : 1 };
CREATE TABLE IF NOT EXISTS ks.tb (c1 INT,c3 INT,c2 TEXT, PRIMARY KEY (c1 )) 
WITH speculative_retry = 'ALWAYS';
INSERT INTO ks.tb (c1, c2) VALUES (2,'val');
ALTER TABLE ks.tb DROP c2 ;
ALTER TABLE ks.tb RENAME c1 TO c2; {code}
Then execute a SELECT command, we get the correct data
{code:java}
cqlsh> SELECT *  FROM ks.tb;
 c2 | c3
+--
  2 | null

(1 rows){code}
Flush and stop the Cassandra daemon.
{code:java}
bin/nodetool flush
bin/nodetool stopdaemon{code}
Then restart the node.
{code:java}
bin/cassandra{code}
Start cqlsh, and execute the same SELECT command. The data in ks.tb is lost.
{code:java}
cqlsh> SELECT *  FROM ks.tb;

 c2 | c3
+

(0 rows){code}
During the node restart, we found an error log about initializing the table, 
but it didn't prevent the system from starting up.
{code:java}
INFO  [main] 2022-12-09 21:37:54,234 ColumnFamilyStore.java:432 - Initializing 
ks.tb
ERROR [SSTableBatchOpen:1] 2022-12-09 21:37:54,237 CassandraDaemon.java:244 - 
Exception in thread Thread[SSTableBatchOpen:1,5,main]
java.lang.AssertionError: null
at 
org.apache.cassandra.db.PartitionColumns$Builder.add(PartitionColumns.java:161)
at 
org.apache.cassandra.db.SerializationHeader$Component.toHeader(SerializationHeader.java:340)
at 
org.apache.cassandra.io.sstable.format.SSTableReader.open(SSTableReader.java:522)
at 
org.apache.cassandra.io.sstable.format.SSTableReader.open(SSTableReader.java:385)
at 
org.apache.cassandra.io.sstable.format.SSTableReader$3.run(SSTableReader.java:570)
at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at 
org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:84)
at java.lang.Thread.run(Thread.java:750) {code}
This bug can also be triggered if we perform an upgrade (with drain) from 
3.11.17 to 4.0.12 or 4.1.4 and execute the SELECT command in the new version.

  was:
When we upgrade Cassandra from 3.11.17 to 4.0.12, we found a data loss during 
the upgrade process. This bug can also be triggered if simply performing a 
system restart for 3.11.17, 4.0.12 or 4.1.4.
h1. Steps to reproduce

Start a 3.11.15 or 4.1.4 Cassandra node using default configurations. Execute 
the following cqlsh commands.
{code:java}
CREATE KEYSPACE  ks WITH REPLICATION = { 'class' : 'SimpleStrategy', 
'replication_factor' : 1 };
CREATE TABLE IF NOT EXISTS ks.tb (c1 INT,c3 INT,c2 TEXT, PRIMARY KEY (c1 )) 
WITH speculative_retry = 'ALWAYS';
INSERT INTO ks.tb (c1, c2) VALUES (2,'val');
ALTER TABLE ks.tb DROP c2 ;
ALTER TABLE ks.tb RENAME c1 TO c2; {code}
Then execute a SELECT command, we get the correct data
{code:java}
cqlsh> SELECT *  FROM ks.tb;
 c2 | c3
+--
  2 | null

(1 rows){code}
Flush and stop the Cassandra daemon.
{code:java}
bin/nodetool flush
bin/nodetool stopdaemon{code}
Then restart the node.
{code:java}
bin/cassandra{code}
Start cqlsh, and execute the same SELECT command. The data in ks.tb is lost.
{code:java}
cqlsh> SELECT *  FROM ks.tb;

 c2 | c3
+

(0 rows){code}
During the node restart, we found an error log about initializing the table, 
but it didn't prevent the system from starting up.
{code:java}
INFO  [main] 2022-12-09 21:37:54,234 ColumnFamilyStore.java:432 - Initializing 
ks.tb
ERROR [SSTableBatchOpen:1] 2022-12-09 21:37:54,237 CassandraDaemon.java:244 - 
Exception in thread Thread[SSTableBatchOpen:1,5,main]
java.lang.AssertionError: null
at 
org.apache.cassandra.db.PartitionColumns$Builder.add(PartitionColumns.java:161)
at 
org.apache.cassandra.db.SerializationHeader$Component.toHeader(SerializationHeader.java:340)
at 
org.apache.cassandra.io.sstable.format.SSTableReader.open(SSTableReader.java:522)
at 
org.apache.cassandra.io.sstable.format.SSTableReader.open(SSTableReader.java:385)
at 
org.apache.cassandra.io.sstable.format.SSTableReader$3.run(SSTableReader.java:570)
at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureT

[jira] [Updated] (CASSANDRA-18108) Data loss after a system restart/upgrade (3.11.17)

2024-05-08 Thread Klay (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-18108?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Klay updated CASSANDRA-18108:
-
Summary: Data loss after a system restart/upgrade (3.11.17)  (was: Data 
loss after a system restart/upgrade (3.11.15))

> Data loss after a system restart/upgrade (3.11.17)
> --
>
> Key: CASSANDRA-18108
> URL: https://issues.apache.org/jira/browse/CASSANDRA-18108
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Ke Han
>Priority: Normal
>
> When we upgrade Cassandra from 3.11.15 to 4.0.7, we found a data loss during 
> the upgrade process. This bug can also be triggered if simply performing a 
> system restart. 
> h1. Steps to reproduce
> Start a 3.11.15 or 4.0.7 Cassandra node using default configurations. Execute 
> the following cqlsh commands.
> {code:java}
> CREATE KEYSPACE  ks WITH REPLICATION = { 'class' : 'SimpleStrategy', 
> 'replication_factor' : 1 };
> CREATE TABLE IF NOT EXISTS ks.tb (c1 INT,c3 INT,c2 TEXT, PRIMARY KEY (c1 )) 
> WITH speculative_retry = 'ALWAYS';
> INSERT INTO ks.tb (c1, c2) VALUES (2,'val');
> ALTER TABLE ks.tb DROP c2 ;
> ALTER TABLE ks.tb RENAME c1 TO c2; {code}
> Then execute a SELECT command, we get the correct data
> {code:java}
> cqlsh> SELECT *  FROM ks.tb;
>  c2 | c3
> +--
>   2 | null
> (1 rows){code}
> Flush and stop the Cassandra daemon.
> {code:java}
> bin/nodetool flush
> bin/nodetool stopdaemon{code}
> Then restart the node.
> {code:java}
> bin/cassandra{code}
> Start cqlsh, and execute the same SELECT command. The data in ks.tb is lost.
> {code:java}
> cqlsh> SELECT *  FROM ks.tb;
>  c2 | c3
> +
> (0 rows){code}
>  
> During the node restart, we found an error log about initializing the table, 
> but it didn't prevent the system from starting up.
> {code:java}
> INFO  [main] 2022-12-09 21:37:54,234 ColumnFamilyStore.java:432 - 
> Initializing ks.tb
> ERROR [SSTableBatchOpen:1] 2022-12-09 21:37:54,237 CassandraDaemon.java:244 - 
> Exception in thread Thread[SSTableBatchOpen:1,5,main]
> java.lang.AssertionError: null
>   at 
> org.apache.cassandra.db.PartitionColumns$Builder.add(PartitionColumns.java:161)
>   at 
> org.apache.cassandra.db.SerializationHeader$Component.toHeader(SerializationHeader.java:340)
>   at 
> org.apache.cassandra.io.sstable.format.SSTableReader.open(SSTableReader.java:522)
>   at 
> org.apache.cassandra.io.sstable.format.SSTableReader.open(SSTableReader.java:385)
>   at 
> org.apache.cassandra.io.sstable.format.SSTableReader$3.run(SSTableReader.java:570)
>   at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>   at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>   at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>   at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>   at 
> org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:84)
>   at java.lang.Thread.run(Thread.java:750) {code}
>  
> This bug can also be triggered if we perform an upgrade from 3.11.15 to 4.0.7 
> and execute the SELECT command in the new version. (*The token_num 
> configuration in 4.0.7 is modified to 16 for upgrade compatibility purposes, 
> all the other configurations are using default values)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Comment Edited] (CASSANDRA-15452) Improve disk access patterns during compaction and streaming

2024-05-08 Thread Jon Haddad (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-15452?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17844835#comment-17844835
 ] 

Jon Haddad edited comment on CASSANDRA-15452 at 5/9/24 1:43 AM:


I should share some additional information and point out some things that might 
not be immediately obvious in the graphs about the EBS test.
 * The GP3 EBS volume was configured at 3K IOPs with 256MB throughput.  
 * All tests were run with an empty page cache by doing {{echo 3 | sudo tee 
/proc/sys/vm/drop_caches}} then a nodetool compact.
 * Compaction was not throttled.
 * Read ahead was set to 4KB.
 * The EBS volume was, as expected, completely limited by IOPS, as it peaks 
right at 3K, with read throughput on the drive around 18-20MB/s.  
 * The spikes in writes, presumably from fsync, cause the dip in read perf.
 * The patched version had a significant reduction in IOPS usage, using only 
~500 IOPS to achieve around 65MB/s, *more than a 3x* improvement in throughput 
and a {*}6x improvement in IOPS usage{*}.  In a production environment this 
would lead to more predictable read latencies, as compaction I/O competes with 
reads for disk resources.
 * Multiple compaction threads should be able to achieve an even more 
impressive improvement since we haven't yet reached the resource limit of the 
underlying device.
 * This patch should significantly improve node density when using EBS as 
compaction is a significant bottleneck.

Some other general information:
 * The patch does not yet take advantage of the fadvise call, which should help 
a production environment significantly by preventing compaction from polluting 
the page cache with pages that are about to be removed from the filesystem.

Overall I am very excited by the results we're seeing here and will follow up 
with additional testing.


was (Author: rustyrazorblade):
I should share some additional information and point out some things that might 
not be immediately obvious in the graphs about the EBS test.
 * The GP3 EBS volume was configured at 3K IOPs with 256MB throughput.  
 * All tests were run with an empty page cache by doing {{
echo 3 | sudo tee /proc/sys/vm/drop_caches}}then a nodetool compact.
 * Compaction was not throttled.
 * Read ahead was set to 4KB.
 * The EBS volume was, as expected, completely limited by IOPS, as it peaks 
right at 3K, with read throughput on the drive around 18-20MB/s.  
 * The spikes in writes, presumably from fsync, cause the dip in read perf.
 * The patched version had a significant reduction in IOPS usage, using only 
~500 IOPS to achieve around 65MB/s, *more than a 3x* improvement in throughput 
and a {*}6x improvement in IOPS usage{*}.  In a production environment this 
would lead to more predictable read latencies, as compaction I/O competes with 
reads for disk resources.
 * Multiple compaction threads should be able to achieve an even more 
impressive improvement since we haven't yet reached the resource limit of the 
underlying device.
 * This patch should significantly improve node density when using EBS as 
compaction is a significant bottleneck.

Some other general information:
 * The patch does not yet take advantage of the fadvise call, which should help 
a production environment significantly by preventing compaction from polluting 
the page cache with pages that are about to be removed from the filesystem.

Overall I am very excited by the results we're seeing here and will follow up 
with additional testing.

> Improve disk access patterns during compaction and streaming
> 
>
> Key: CASSANDRA-15452
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15452
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Local Write-Read Paths, Local/Compaction
>Reporter: Jon Haddad
>Assignee: Jordan West
>Priority: Normal
> Attachments: everyfs.txt, iostat-5.0-head.output, 
> iostat-5.0-patched.output, iostat-ebs-15452.png, iostat-ebs-head.png, 
> iostat-instance-15452.png, iostat-instance-head.png, results.txt, 
> sequential.fio
>
>
> On read heavy workloads Cassandra performs much better when using a low read 
> ahead setting.   In my tests I've seen an 5x improvement in throughput and 
> more than a 50% reduction in latency.  However, I've also observed that it 
> can have a negative impact on compaction and streaming throughput. It 
> especially negatively impacts cloud environments where small reads incur high 
> costs in IOPS due to tiny requests.
>  # We should investigate using POSIX_FADV_DONTNEED on files we're compacting 
> to see if we can improve performance and reduce page faults. 
>  # This should be combined with an internal read ahead style buffer that 
> Cassandra manages, similar to a BufferedInput

[jira] [Comment Edited] (CASSANDRA-15452) Improve disk access patterns during compaction and streaming

2024-05-08 Thread Jon Haddad (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-15452?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17844835#comment-17844835
 ] 

Jon Haddad edited comment on CASSANDRA-15452 at 5/9/24 1:42 AM:


I should share some additional information and point out some things that might 
not be immediately obvious in the graphs about the EBS test.
 * The GP3 EBS volume was configured at 3K IOPs with 256MB throughput.  
 * All tests were run with an empty page cache by doing {{
echo 3 | sudo tee /proc/sys/vm/drop_caches}}then a nodetool compact.
 * Compaction was not throttled.
 * Read ahead was set to 4KB.
 * The EBS volume was, as expected, completely limited by IOPS, as it peaks 
right at 3K, with read throughput on the drive around 18-20MB/s.  
 * The spikes in writes, presumably from fsync, cause the dip in read perf.
 * The patched version had a significant reduction in IOPS usage, using only 
~500 IOPS to achieve around 65MB/s, *more than a 3x* improvement in throughput 
and a {*}6x improvement in IOPS usage{*}.  In a production environment this 
would lead to more predictable read latencies, as compaction I/O competes with 
reads for disk resources.
 * Multiple compaction threads should be able to achieve an even more 
impressive improvement since we haven't yet reached the resource limit of the 
underlying device.
 * This patch should significantly improve node density when using EBS as 
compaction is a significant bottleneck.

Some other general information:
 * The patch does not yet take advantage of the fadvise call, which should help 
a production environment significantly by preventing compaction from polluting 
the page cache with pages that are about to be removed from the filesystem.

Overall I am very excited by the results we're seeing here and will follow up 
with additional testing.


was (Author: rustyrazorblade):
I should share some additional information and point out some things that might 
not be immediately obvious in the graphs about the EBS test.
 * The GP3 EBS volume was configured at 3K IOPs with 256MB throughput.  
 * All tests were run with an empty page cache by doing the following, then a 
nodetool compact.
 * Compaction was not throttled.
 * Read ahead was set to 4KB.
 * The EBS volume was, as expected, completely limited by IOPS, as it peaks 
right at 3K, with read throughput on the drive around 18-20MB/s.  
 * The spikes in writes, presumably from fsync, cause the dip in read perf.
 * The patched version had a significant reduction in IOPS usage, using only 
~500 IOPS to achieve around 65MB/s, *more than a 3x* improvement in throughput 
and a {*}6x improvement in IOPS usage{*}.  In a production environment this 
would lead to more predictable read latencies, as compaction I/O competes with 
reads for disk resources.
 * Multiple compaction threads should be able to achieve an even more 
impressive improvement since we haven't yet reached the resource limit of the 
underlying device.
 * This patch should significantly improve node density when using EBS as 
compaction is a significant bottleneck.

Some other general information:
 * The patch does not yet take advantage of the fadvise call, which should help 
a production environment significantly by preventing compaction from polluting 
the page cache with pages that are about to be removed from the filesystem.

Overall I am very excited by the results we're seeing here and will follow up 
with additional testing.

> Improve disk access patterns during compaction and streaming
> 
>
> Key: CASSANDRA-15452
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15452
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Local Write-Read Paths, Local/Compaction
>Reporter: Jon Haddad
>Assignee: Jordan West
>Priority: Normal
> Attachments: everyfs.txt, iostat-5.0-head.output, 
> iostat-5.0-patched.output, iostat-ebs-15452.png, iostat-ebs-head.png, 
> iostat-instance-15452.png, iostat-instance-head.png, results.txt, 
> sequential.fio
>
>
> On read heavy workloads Cassandra performs much better when using a low read 
> ahead setting.   In my tests I've seen an 5x improvement in throughput and 
> more than a 50% reduction in latency.  However, I've also observed that it 
> can have a negative impact on compaction and streaming throughput. It 
> especially negatively impacts cloud environments where small reads incur high 
> costs in IOPS due to tiny requests.
>  # We should investigate using POSIX_FADV_DONTNEED on files we're compacting 
> to see if we can improve performance and reduce page faults. 
>  # This should be combined with an internal read ahead style buffer that 
> Cassandra manages, similar to a BufferedInputStream but with our own 
> machi

[jira] [Commented] (CASSANDRA-15452) Improve disk access patterns during compaction and streaming

2024-05-08 Thread Jon Haddad (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-15452?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17844835#comment-17844835
 ] 

Jon Haddad commented on CASSANDRA-15452:


I should share some additional information and point out some things that might 
not be immediately obvious in the graphs about the EBS test.
 * The GP3 EBS volume was configured at 3K IOPs with 256MB throughput.  
 * All tests were run with an empty page cache by doing the following, then a 
nodetool compact.
 * Compaction was not throttled.
 * Read ahead was set to 4KB.
 * The EBS volume was, as expected, completely limited by IOPS, as it peaks 
right at 3K, with read throughput on the drive around 18-20MB/s.  
 * The spikes in writes, presumably from fsync, cause the dip in read perf.
 * The patched version had a significant reduction in IOPS usage, using only 
~500 IOPS to achieve around 65MB/s, *more than a 3x* improvement in throughput 
and a {*}6x improvement in IOPS usage{*}.  In a production environment this 
would lead to more predictable read latencies, as compaction I/O competes with 
reads for disk resources.
 * Multiple compaction threads should be able to achieve an even more 
impressive improvement since we haven't yet reached the resource limit of the 
underlying device.
 * This patch should significantly improve node density when using EBS as 
compaction is a significant bottleneck.

Some other general information:
 * The patch does not yet take advantage of the fadvise call, which should help 
a production environment significantly by preventing compaction from polluting 
the page cache with pages that are about to be removed from the filesystem.

Overall I am very excited by the results we're seeing here and will follow up 
with additional testing.

> Improve disk access patterns during compaction and streaming
> 
>
> Key: CASSANDRA-15452
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15452
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Local Write-Read Paths, Local/Compaction
>Reporter: Jon Haddad
>Assignee: Jordan West
>Priority: Normal
> Attachments: everyfs.txt, iostat-5.0-head.output, 
> iostat-5.0-patched.output, iostat-ebs-15452.png, iostat-ebs-head.png, 
> iostat-instance-15452.png, iostat-instance-head.png, results.txt, 
> sequential.fio
>
>
> On read heavy workloads Cassandra performs much better when using a low read 
> ahead setting.   In my tests I've seen an 5x improvement in throughput and 
> more than a 50% reduction in latency.  However, I've also observed that it 
> can have a negative impact on compaction and streaming throughput. It 
> especially negatively impacts cloud environments where small reads incur high 
> costs in IOPS due to tiny requests.
>  # We should investigate using POSIX_FADV_DONTNEED on files we're compacting 
> to see if we can improve performance and reduce page faults. 
>  # This should be combined with an internal read ahead style buffer that 
> Cassandra manages, similar to a BufferedInputStream but with our own 
> machinery.  This buffer should read fairly large blocks of data off disk at 
> at time.  EBS, for example, allows 1 IOP to be up to 256KB.  A considerable 
> amount of time is spent in blocking I/O during compaction and streaming. 
> Reducing the frequency we read from disk should speed up all sequential I/O 
> operations.
>  # We can reduce system calls by buffering writes as well, but I think it 
> will have less of an impact than the reads



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-19626) [Analytics] NullPointerException when reading static column with null values

2024-05-08 Thread Francisco Guerrero (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-19626?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17844830#comment-17844830
 ] 

Francisco Guerrero commented on CASSANDRA-19626:


CI: 
https://app.circleci.com/pipelines/github/frankgh/cassandra-analytics?branch=CASSANDRA-19626

> [Analytics] NullPointerException when reading static column with null values
> 
>
> Key: CASSANDRA-19626
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19626
> Project: Cassandra
>  Issue Type: Bug
>  Components: Analytics Library
>Reporter: Francisco Guerrero
>Assignee: Francisco Guerrero
>Priority: Normal
> Fix For: NA
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> The analytics library fails to read static columns that has null values 
> depending on the type. For example, this problem is exhibited in the 
> Timestamp type, where the deserialized object is null, and the type will 
> attempt to get the time from the field. When that occurs it triggers the 
> NullPointerException.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRASC-129) Remove tableId from list snapshot response

2024-05-08 Thread Francisco Guerrero (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRASC-129?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Francisco Guerrero updated CASSANDRASC-129:
---
Source Control Link: 
https://github.com/apache/cassandra-sidecar/commit/e95786a077e1137dcaae206854986987edc6a71e
 Resolution: Fixed
 Status: Resolved  (was: Ready to Commit)

> Remove tableId from list snapshot response
> --
>
> Key: CASSANDRASC-129
> URL: https://issues.apache.org/jira/browse/CASSANDRASC-129
> Project: Sidecar for Apache Cassandra
>  Issue Type: Bug
>  Components: Rest API
>Reporter: Francisco Guerrero
>Assignee: Francisco Guerrero
>Priority: Normal
>  Labels: pull-request-available
> Fix For: 1.0
>
>
> In CASSANDRASC-94, a new field {{tableId}} was added to the payload of the 
> list snapshots endpoint. Old Sidecar clients are compatible with new fields 
> added from the server side. However, other clients can potentially break and 
> for that reason we should remove the {{tableId}} field from the response and 
> make any potential breaking changes with an API version change instead. As an 
> alternative, we can add the {{tableId}} as part of the {{tableName}} field 
> instead.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRASC-129) Remove tableId from list snapshot response

2024-05-08 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRASC-129?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17844828#comment-17844828
 ] 

ASF subversion and git services commented on CASSANDRASC-129:
-

Commit e95786a077e1137dcaae206854986987edc6a71e in cassandra-sidecar's branch 
refs/heads/trunk from Francisco Guerrero
[ https://gitbox.apache.org/repos/asf?p=cassandra-sidecar.git;h=e95786a ]

CASSANDRASC-129: Remove tableId from list snapshot response (#120)

Patch by Francisco Guerrero; Reviewed by Yifan Cai for CASSANDRASC-129

> Remove tableId from list snapshot response
> --
>
> Key: CASSANDRASC-129
> URL: https://issues.apache.org/jira/browse/CASSANDRASC-129
> Project: Sidecar for Apache Cassandra
>  Issue Type: Bug
>  Components: Rest API
>Reporter: Francisco Guerrero
>Assignee: Francisco Guerrero
>Priority: Normal
>  Labels: pull-request-available
> Fix For: 1.0
>
>
> In CASSANDRASC-94, a new field {{tableId}} was added to the payload of the 
> list snapshots endpoint. Old Sidecar clients are compatible with new fields 
> added from the server side. However, other clients can potentially break and 
> for that reason we should remove the {{tableId}} field from the response and 
> make any potential breaking changes with an API version change instead. As an 
> alternative, we can add the {{tableId}} as part of the {{tableName}} field 
> instead.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRASC-129) Remove tableId from list snapshot response

2024-05-08 Thread Francisco Guerrero (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRASC-129?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Francisco Guerrero updated CASSANDRASC-129:
---
Status: Ready to Commit  (was: Review In Progress)

> Remove tableId from list snapshot response
> --
>
> Key: CASSANDRASC-129
> URL: https://issues.apache.org/jira/browse/CASSANDRASC-129
> Project: Sidecar for Apache Cassandra
>  Issue Type: Bug
>  Components: Rest API
>Reporter: Francisco Guerrero
>Assignee: Francisco Guerrero
>Priority: Normal
>  Labels: pull-request-available
> Fix For: 1.0
>
>
> In CASSANDRASC-94, a new field {{tableId}} was added to the payload of the 
> list snapshots endpoint. Old Sidecar clients are compatible with new fields 
> added from the server side. However, other clients can potentially break and 
> for that reason we should remove the {{tableId}} field from the response and 
> make any potential breaking changes with an API version change instead. As an 
> alternative, we can add the {{tableId}} as part of the {{tableName}} field 
> instead.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRASC-129) Remove tableId from list snapshot response

2024-05-08 Thread Francisco Guerrero (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRASC-129?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17844827#comment-17844827
 ] 

Francisco Guerrero commented on CASSANDRASC-129:


CI is green

> Remove tableId from list snapshot response
> --
>
> Key: CASSANDRASC-129
> URL: https://issues.apache.org/jira/browse/CASSANDRASC-129
> Project: Sidecar for Apache Cassandra
>  Issue Type: Bug
>  Components: Rest API
>Reporter: Francisco Guerrero
>Assignee: Francisco Guerrero
>Priority: Normal
>  Labels: pull-request-available
> Fix For: 1.0
>
>
> In CASSANDRASC-94, a new field {{tableId}} was added to the payload of the 
> list snapshots endpoint. Old Sidecar clients are compatible with new fields 
> added from the server side. However, other clients can potentially break and 
> for that reason we should remove the {{tableId}} field from the response and 
> make any potential breaking changes with an API version change instead. As an 
> alternative, we can add the {{tableId}} as part of the {{tableName}} field 
> instead.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



(cassandra-sidecar) branch trunk updated: CASSANDRASC-129: Remove tableId from list snapshot response (#120)

2024-05-08 Thread frankgh
This is an automated email from the ASF dual-hosted git repository.

frankgh pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra-sidecar.git


The following commit(s) were added to refs/heads/trunk by this push:
 new e95786a  CASSANDRASC-129: Remove tableId from list snapshot response 
(#120)
e95786a is described below

commit e95786a077e1137dcaae206854986987edc6a71e
Author: Francisco Guerrero 
AuthorDate: Wed May 8 18:04:05 2024 -0700

CASSANDRASC-129: Remove tableId from list snapshot response (#120)

Patch by Francisco Guerrero; Reviewed by Yifan Cai for CASSANDRASC-129
---
 .../common/response/ListSnapshotFilesResponse.java |  7 ---
 .../sidecar/client/SidecarClientTest.java  | 56 ++
 src/main/dist/conf/sidecar.yaml| 15 +++---
 .../cluster/instance/InstanceMetadataImpl.java |  8 +++-
 .../routes/snapshots/ListSnapshotHandler.java  |  6 ++-
 .../apache/cassandra/sidecar/utils/FileUtils.java  | 38 +++
 .../routes/snapshots/ListSnapshotHandlerTest.java  | 15 ++
 .../cassandra/sidecar/utils/FileUtilsTest.java | 40 
 8 files changed, 147 insertions(+), 38 deletions(-)

diff --git 
a/client-common/src/main/java/org/apache/cassandra/sidecar/common/response/ListSnapshotFilesResponse.java
 
b/client-common/src/main/java/org/apache/cassandra/sidecar/common/response/ListSnapshotFilesResponse.java
index b418a08..3700d93 100644
--- 
a/client-common/src/main/java/org/apache/cassandra/sidecar/common/response/ListSnapshotFilesResponse.java
+++ 
b/client-common/src/main/java/org/apache/cassandra/sidecar/common/response/ListSnapshotFilesResponse.java
@@ -64,7 +64,6 @@ public class ListSnapshotFilesResponse
 public final String snapshotName;
 public final String keySpaceName;
 public final String tableName;
-public final String tableId;
 public final String fileName;
 private String componentDownloadUrl;
 
@@ -75,7 +74,6 @@ public class ListSnapshotFilesResponse
 @JsonProperty("snapshotName") String snapshotName,
 @JsonProperty("keySpaceName") String keySpaceName,
 @JsonProperty("tableName") String tableName,
-@JsonProperty("tableId") String tableId,
 @JsonProperty("fileName") String fileName)
 {
 this.size = size;
@@ -85,7 +83,6 @@ public class ListSnapshotFilesResponse
 this.snapshotName = snapshotName;
 this.keySpaceName = keySpaceName;
 this.tableName = tableName;
-this.tableId = tableId;
 this.fileName = fileName;
 }
 
@@ -93,10 +90,6 @@ public class ListSnapshotFilesResponse
 {
 if (componentDownloadUrl == null)
 {
-String tableName = this.tableId != null
-   ? this.tableName + "-" + this.tableId
-   : this.tableName;
-
 componentDownloadUrl = ApiEndpointsV1.COMPONENTS_ROUTE

.replaceAll(ApiEndpointsV1.KEYSPACE_PATH_PARAM, keySpaceName)

.replaceAll(ApiEndpointsV1.TABLE_PATH_PARAM, tableName)
diff --git 
a/client/src/testFixtures/java/org/apache/cassandra/sidecar/client/SidecarClientTest.java
 
b/client/src/testFixtures/java/org/apache/cassandra/sidecar/client/SidecarClientTest.java
index 84a5646..69459fe 100644
--- 
a/client/src/testFixtures/java/org/apache/cassandra/sidecar/client/SidecarClientTest.java
+++ 
b/client/src/testFixtures/java/org/apache/cassandra/sidecar/client/SidecarClientTest.java
@@ -498,6 +498,50 @@ abstract class SidecarClientTest
 + 
"?includeSecondaryIndexFiles=true");
 }
 
+/**
+ * CASSANDRASC-94 introduced a new field ({@code tableId}) to the payload 
when listing snapshots. We
+ * need to make sure the client is able to handle the payload with the 
additional field (and ignore it).
+ *
+ * @throws Exception when the test fails
+ */
+@Test
+public void testListSnapshotFilesPayloadWithTableId() throws Exception
+{
+String responseAsString = 
"{\"snapshotFilesInfo\":[{\"size\":15,\"host\":\"localhost1\",\"port\":2020," +
+  
"\"dataDirIndex\":1,\"snapshotName\":\"2023.04.11\",\"keySpaceName\":\"cycling\","
 +
+  
"\"tableName\":\"cyclist_name\",\"tableId\":\"1234\",\"fileName\":" +
+  "\"nb-203-big-TOC.txt\"}]}";
+MockResponse response = new 
MockResponse().setResponseCode(OK.code()).setBody(responseAsString);
+SidecarInstanceImpl sidecarInstance = instances.get(2);
+MockWebServer mockWebServer = servers.get(2);
+mockWebServer.enqueue(response);
+
+ListSnapshotFile

[jira] [Updated] (CASSANDRASC-129) Remove tableId from list snapshot response

2024-05-08 Thread Francisco Guerrero (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRASC-129?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Francisco Guerrero updated CASSANDRASC-129:
---
Reviewers: Yifan Cai, Francisco Guerrero  (was: Yifan Cai)
   Yifan Cai, Francisco Guerrero  (was: Francisco Guerrero, Yifan 
Cai)
   Status: Review In Progress  (was: Patch Available)

> Remove tableId from list snapshot response
> --
>
> Key: CASSANDRASC-129
> URL: https://issues.apache.org/jira/browse/CASSANDRASC-129
> Project: Sidecar for Apache Cassandra
>  Issue Type: Bug
>  Components: Rest API
>Reporter: Francisco Guerrero
>Assignee: Francisco Guerrero
>Priority: Normal
>  Labels: pull-request-available
> Fix For: 1.0
>
>
> In CASSANDRASC-94, a new field {{tableId}} was added to the payload of the 
> list snapshots endpoint. Old Sidecar clients are compatible with new fields 
> added from the server side. However, other clients can potentially break and 
> for that reason we should remove the {{tableId}} field from the response and 
> make any potential breaking changes with an API version change instead. As an 
> alternative, we can add the {{tableId}} as part of the {{tableName}} field 
> instead.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-15452) Improve disk access patterns during compaction and streaming

2024-05-08 Thread Jordan West (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-15452?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17844826#comment-17844826
 ] 

Jordan West commented on CASSANDRA-15452:
-

I wrote a [prototype|https://github.com/jrwest/cassandra/tree/jwest/15452-5.0] 
that uses a 256KB off-heap buffer for non-mmap'd, compressed data files only 
and tested it with [~rustyrazorblade]. The test uses "big" format. We have yet 
to validate with BTI format.

*To summarize our findings when running a single compaction:*
 * *on NVMe: equal throughput with an approx 5x reduction in IOPS*
 * *on EBS: 3x throughput with an approx 5x reduction in IOPS*

Attached are graphs of the iostat data and the raw iostat output from the EBS 
tests. 

 

*EBS (patched):*
!iostat-ebs-15452.png!

 

 

*EBS (5.0-HEAD):*
!iostat-ebs-head.png!

 

*NVMe (patched):*
!iostat-instance-15452.png!

 

 

*NVMe (5.0-HEAD):*
!iostat-instance-head.png!

 

[^iostat-5.0-head.output]

[^iostat-5.0-patched.output]

 

> Improve disk access patterns during compaction and streaming
> 
>
> Key: CASSANDRA-15452
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15452
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Local Write-Read Paths, Local/Compaction
>Reporter: Jon Haddad
>Assignee: Jordan West
>Priority: Normal
> Attachments: everyfs.txt, iostat-5.0-head.output, 
> iostat-5.0-patched.output, iostat-ebs-15452.png, iostat-ebs-head.png, 
> iostat-instance-15452.png, iostat-instance-head.png, results.txt, 
> sequential.fio
>
>
> On read heavy workloads Cassandra performs much better when using a low read 
> ahead setting.   In my tests I've seen an 5x improvement in throughput and 
> more than a 50% reduction in latency.  However, I've also observed that it 
> can have a negative impact on compaction and streaming throughput. It 
> especially negatively impacts cloud environments where small reads incur high 
> costs in IOPS due to tiny requests.
>  # We should investigate using POSIX_FADV_DONTNEED on files we're compacting 
> to see if we can improve performance and reduce page faults. 
>  # This should be combined with an internal read ahead style buffer that 
> Cassandra manages, similar to a BufferedInputStream but with our own 
> machinery.  This buffer should read fairly large blocks of data off disk at 
> at time.  EBS, for example, allows 1 IOP to be up to 256KB.  A considerable 
> amount of time is spent in blocking I/O during compaction and streaming. 
> Reducing the frequency we read from disk should speed up all sequential I/O 
> operations.
>  # We can reduce system calls by buffering writes as well, but I think it 
> will have less of an impact than the reads



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-15452) Improve disk access patterns during compaction and streaming

2024-05-08 Thread Jordan West (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-15452?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jordan West updated CASSANDRA-15452:

Attachment: iostat-5.0-head.output
iostat-5.0-patched.output

> Improve disk access patterns during compaction and streaming
> 
>
> Key: CASSANDRA-15452
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15452
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Local Write-Read Paths, Local/Compaction
>Reporter: Jon Haddad
>Assignee: Jordan West
>Priority: Normal
> Attachments: everyfs.txt, iostat-5.0-head.output, 
> iostat-5.0-patched.output, iostat-ebs-15452.png, iostat-ebs-head.png, 
> iostat-instance-15452.png, iostat-instance-head.png, results.txt, 
> sequential.fio
>
>
> On read heavy workloads Cassandra performs much better when using a low read 
> ahead setting.   In my tests I've seen an 5x improvement in throughput and 
> more than a 50% reduction in latency.  However, I've also observed that it 
> can have a negative impact on compaction and streaming throughput. It 
> especially negatively impacts cloud environments where small reads incur high 
> costs in IOPS due to tiny requests.
>  # We should investigate using POSIX_FADV_DONTNEED on files we're compacting 
> to see if we can improve performance and reduce page faults. 
>  # This should be combined with an internal read ahead style buffer that 
> Cassandra manages, similar to a BufferedInputStream but with our own 
> machinery.  This buffer should read fairly large blocks of data off disk at 
> at time.  EBS, for example, allows 1 IOP to be up to 256KB.  A considerable 
> amount of time is spent in blocking I/O during compaction and streaming. 
> Reducing the frequency we read from disk should speed up all sequential I/O 
> operations.
>  # We can reduce system calls by buffering writes as well, but I think it 
> will have less of an impact than the reads



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-15452) Improve disk access patterns during compaction and streaming

2024-05-08 Thread Jordan West (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-15452?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jordan West updated CASSANDRA-15452:

Attachment: iostat-ebs-15452.png
iostat-ebs-head.png
iostat-instance-15452.png
iostat-instance-head.png

> Improve disk access patterns during compaction and streaming
> 
>
> Key: CASSANDRA-15452
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15452
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Local Write-Read Paths, Local/Compaction
>Reporter: Jon Haddad
>Assignee: Jordan West
>Priority: Normal
> Attachments: everyfs.txt, iostat-ebs-15452.png, iostat-ebs-head.png, 
> iostat-instance-15452.png, iostat-instance-head.png, results.txt, 
> sequential.fio
>
>
> On read heavy workloads Cassandra performs much better when using a low read 
> ahead setting.   In my tests I've seen an 5x improvement in throughput and 
> more than a 50% reduction in latency.  However, I've also observed that it 
> can have a negative impact on compaction and streaming throughput. It 
> especially negatively impacts cloud environments where small reads incur high 
> costs in IOPS due to tiny requests.
>  # We should investigate using POSIX_FADV_DONTNEED on files we're compacting 
> to see if we can improve performance and reduce page faults. 
>  # This should be combined with an internal read ahead style buffer that 
> Cassandra manages, similar to a BufferedInputStream but with our own 
> machinery.  This buffer should read fairly large blocks of data off disk at 
> at time.  EBS, for example, allows 1 IOP to be up to 256KB.  A considerable 
> amount of time is spent in blocking I/O during compaction and streaming. 
> Reducing the frequency we read from disk should speed up all sequential I/O 
> operations.
>  # We can reduce system calls by buffering writes as well, but I think it 
> will have less of an impact than the reads



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRASC-129) Remove tableId from list snapshot response

2024-05-08 Thread Francisco Guerrero (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRASC-129?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17844821#comment-17844821
 ] 

Francisco Guerrero commented on CASSANDRASC-129:


Rerunning: 
https://app.circleci.com/pipelines/github/frankgh/cassandra-sidecar?branch=CASSANDRASC-129

> Remove tableId from list snapshot response
> --
>
> Key: CASSANDRASC-129
> URL: https://issues.apache.org/jira/browse/CASSANDRASC-129
> Project: Sidecar for Apache Cassandra
>  Issue Type: Bug
>  Components: Rest API
>Reporter: Francisco Guerrero
>Assignee: Francisco Guerrero
>Priority: Normal
>  Labels: pull-request-available
> Fix For: 1.0
>
>
> In CASSANDRASC-94, a new field {{tableId}} was added to the payload of the 
> list snapshots endpoint. Old Sidecar clients are compatible with new fields 
> added from the server side. However, other clients can potentially break and 
> for that reason we should remove the {{tableId}} field from the response and 
> make any potential breaking changes with an API version change instead. As an 
> alternative, we can add the {{tableId}} as part of the {{tableName}} field 
> instead.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-19627) Host replacement cannot start when nodes having different ports

2024-05-08 Thread Yifan Cai (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-19627?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Yifan Cai updated CASSANDRA-19627:
--
 Bug Category: Parent values: Availability(12983)Level 1 values: Process 
Crash(12992)
   Complexity: Normal
Discovered By: Unit Test
 Severity: Normal
   Status: Open  (was: Triage Needed)

> Host replacement cannot start when nodes having different ports
> ---
>
> Key: CASSANDRA-19627
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19627
> Project: Cassandra
>  Issue Type: Bug
>  Components: Consistency/Bootstrap and Decommission
>Reporter: Yifan Cai
>Priority: Normal
>
> CASSANDRA-7544 introduces configurable storage port per node. It means 
> operator can pick different ports for nodes. 
> In the case of host replacement, it cannot start if the ports are not the 
> same of the replacing and the replacement nodes. The following is the test 
> (modified from HostReplacementTest#replaceDownedHost) to prove and the 
> failure stack trace. 
> {code:java}
> @Test
> public void replaceDownedHost() throws IOException
> {
> // start with 2 nodes, stop both nodes, start the seed, host replace the 
> down node)
> TokenSupplier even = TokenSupplier.evenlyDistributedTokens(2);
> try (Cluster cluster = Cluster.build(2)
>   .withDynamicPortAllocation(true) // use a 
> different storage port for each new node
>   .withConfig(c -> c.with(Feature.GOSSIP, 
> Feature.NETWORK))
>   .withTokenSupplier(node -> even.token(node 
> == 3 ? 2 : node))
>   .start())
> {
> IInvokableInstance seed = cluster.get(1);
> IInvokableInstance nodeToRemove = cluster.get(2);
> setupCluster(cluster);
> // collect rows to detect issues later on if the state doesn't match
> SimpleQueryResult expectedState = 
> nodeToRemove.coordinator().executeWithResult("SELECT * FROM " + KEYSPACE + 
> ".tbl", ConsistencyLevel.ALL);
> stopUnchecked(nodeToRemove);
> // now create a new node to replace the other node
> IInvokableInstance replacingNode = replaceHostAndStart(cluster, 
> nodeToRemove, props -> {
> // since we have a downed host there might be a schema version 
> which is old show up but
> // can't be fetched since the host is down...
> props.set(BOOTSTRAP_SKIP_SCHEMA_CHECK, true);
> InetSocketAddress removedNodeAddress = 
> nodeToRemove.config().broadcastAddress();
> String removedNode = 
> removedNodeAddress.getAddress().getHostAddress() + ":" + 
> removedNodeAddress.getPort();
> props.setProperty("cassandra.replace_address_first_boot", 
> removedNode);
> });
> // wait till the replacing node is in the ring
> awaitRingJoin(seed, replacingNode);
> awaitRingJoin(replacingNode, seed);
> // make sure all nodes are healthy
> awaitRingHealthy(seed);
> assertRingIs(seed, seed, replacingNode);
> logger.info("Current ring is {}", assertRingIs(replacingNode, seed, 
> replacingNode));
> validateRows(seed.coordinator(), expectedState);
> validateRows(replacingNode.coordinator(), expectedState);
> }
> }
> java.lang.RuntimeException: Node /127.0.0.3:58530 is already replacing 
> /127.0.0.2:58495 but is trying to replace /127.0.0.2:58530.
>   at 
> org.apache.cassandra.service.StorageService.handleStateBootreplacing(StorageService.java:2929)
>   at 
> org.apache.cassandra.service.StorageService.onChange(StorageService.java:2597)
>   at 
> org.apache.cassandra.gms.Gossiper.doOnChangeNotifications(Gossiper.java:1711)
>   at 
> org.apache.cassandra.gms.Gossiper.addLocalApplicationStateInternal(Gossiper.java:2109)
>   at 
> org.apache.cassandra.gms.Gossiper.addLocalApplicationStates(Gossiper.java:2124)
>   at 
> org.apache.cassandra.service.StorageService.bootstrap(StorageService.java:2005)
>   at 
> org.apache.cassandra.service.StorageService.joinTokenRing(StorageService.java:1185)
>   at 
> org.apache.cassandra.service.StorageService.joinTokenRing(StorageService.java:1145)
>   at 
> org.apache.cassandra.service.StorageService.initServer(StorageService.java:936)
>   at 
> org.apache.cassandra.service.StorageService.initServer(StorageService.java:854)
>   at 
> org.apache.cassandra.distributed.impl.Instance.lambda$startup$12(Instance.java:701)
>   at org.apache.cassandra.concurrent.FutureTask$1.call(FutureTask.java:96)
>   at org.apache.cassandra.concurrent.FutureTask.call(FutureTask.java:61)
>   at org.apache.cassandra.concurrent.FutureTask.run(FutureTask.java:71)
>   at 
>

[jira] [Created] (CASSANDRA-19627) Host replacement cannot start when nodes having different ports

2024-05-08 Thread Yifan Cai (Jira)
Yifan Cai created CASSANDRA-19627:
-

 Summary: Host replacement cannot start when nodes having different 
ports
 Key: CASSANDRA-19627
 URL: https://issues.apache.org/jira/browse/CASSANDRA-19627
 Project: Cassandra
  Issue Type: Bug
  Components: Consistency/Bootstrap and Decommission
Reporter: Yifan Cai


CASSANDRA-7544 introduces configurable storage port per node. It means operator 
can pick different ports for nodes. 
In the case of host replacement, it cannot start if the ports are not the same 
of the replacing and the replacement nodes. The following is the test (modified 
from HostReplacementTest#replaceDownedHost) to prove and the failure stack 
trace. 

{code:java}
@Test
public void replaceDownedHost() throws IOException
{
// start with 2 nodes, stop both nodes, start the seed, host replace the 
down node)
TokenSupplier even = TokenSupplier.evenlyDistributedTokens(2);
try (Cluster cluster = Cluster.build(2)
  .withDynamicPortAllocation(true) // use a 
different storage port for each new node
  .withConfig(c -> c.with(Feature.GOSSIP, 
Feature.NETWORK))
  .withTokenSupplier(node -> even.token(node == 
3 ? 2 : node))
  .start())
{
IInvokableInstance seed = cluster.get(1);
IInvokableInstance nodeToRemove = cluster.get(2);

setupCluster(cluster);

// collect rows to detect issues later on if the state doesn't match
SimpleQueryResult expectedState = 
nodeToRemove.coordinator().executeWithResult("SELECT * FROM " + KEYSPACE + 
".tbl", ConsistencyLevel.ALL);

stopUnchecked(nodeToRemove);

// now create a new node to replace the other node
IInvokableInstance replacingNode = replaceHostAndStart(cluster, 
nodeToRemove, props -> {
// since we have a downed host there might be a schema version 
which is old show up but
// can't be fetched since the host is down...
props.set(BOOTSTRAP_SKIP_SCHEMA_CHECK, true);
InetSocketAddress removedNodeAddress = 
nodeToRemove.config().broadcastAddress();
String removedNode = 
removedNodeAddress.getAddress().getHostAddress() + ":" + 
removedNodeAddress.getPort();
props.setProperty("cassandra.replace_address_first_boot", 
removedNode);
});

// wait till the replacing node is in the ring
awaitRingJoin(seed, replacingNode);
awaitRingJoin(replacingNode, seed);

// make sure all nodes are healthy
awaitRingHealthy(seed);

assertRingIs(seed, seed, replacingNode);
logger.info("Current ring is {}", assertRingIs(replacingNode, seed, 
replacingNode));

validateRows(seed.coordinator(), expectedState);
validateRows(replacingNode.coordinator(), expectedState);
}
}

java.lang.RuntimeException: Node /127.0.0.3:58530 is already replacing 
/127.0.0.2:58495 but is trying to replace /127.0.0.2:58530.

at 
org.apache.cassandra.service.StorageService.handleStateBootreplacing(StorageService.java:2929)
at 
org.apache.cassandra.service.StorageService.onChange(StorageService.java:2597)
at 
org.apache.cassandra.gms.Gossiper.doOnChangeNotifications(Gossiper.java:1711)
at 
org.apache.cassandra.gms.Gossiper.addLocalApplicationStateInternal(Gossiper.java:2109)
at 
org.apache.cassandra.gms.Gossiper.addLocalApplicationStates(Gossiper.java:2124)
at 
org.apache.cassandra.service.StorageService.bootstrap(StorageService.java:2005)
at 
org.apache.cassandra.service.StorageService.joinTokenRing(StorageService.java:1185)
at 
org.apache.cassandra.service.StorageService.joinTokenRing(StorageService.java:1145)
at 
org.apache.cassandra.service.StorageService.initServer(StorageService.java:936)
at 
org.apache.cassandra.service.StorageService.initServer(StorageService.java:854)
at 
org.apache.cassandra.distributed.impl.Instance.lambda$startup$12(Instance.java:701)
at org.apache.cassandra.concurrent.FutureTask$1.call(FutureTask.java:96)
at org.apache.cassandra.concurrent.FutureTask.call(FutureTask.java:61)
at org.apache.cassandra.concurrent.FutureTask.run(FutureTask.java:71)
at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at 
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:829)
{code}




--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For a

[jira] [Commented] (CASSANDRASC-129) Remove tableId from list snapshot response

2024-05-08 Thread Francisco Guerrero (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRASC-129?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17844818#comment-17844818
 ] 

Francisco Guerrero commented on CASSANDRASC-129:


CI : 
https://app.circleci.com/pipelines/github/frankgh/cassandra-sidecar/487/workflows/c16708f8-0385-4928-b15a-628a0ae4de97

> Remove tableId from list snapshot response
> --
>
> Key: CASSANDRASC-129
> URL: https://issues.apache.org/jira/browse/CASSANDRASC-129
> Project: Sidecar for Apache Cassandra
>  Issue Type: Bug
>  Components: Rest API
>Reporter: Francisco Guerrero
>Assignee: Francisco Guerrero
>Priority: Normal
>  Labels: pull-request-available
> Fix For: 1.0
>
>
> In CASSANDRASC-94, a new field {{tableId}} was added to the payload of the 
> list snapshots endpoint. Old Sidecar clients are compatible with new fields 
> added from the server side. However, other clients can potentially break and 
> for that reason we should remove the {{tableId}} field from the response and 
> make any potential breaking changes with an API version change instead. As an 
> alternative, we can add the {{tableId}} as part of the {{tableName}} field 
> instead.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRASC-129) Remove tableId from list snapshot response

2024-05-08 Thread Yifan Cai (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRASC-129?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17844815#comment-17844815
 ] 

Yifan Cai commented on CASSANDRASC-129:
---

+1, assume CI is green

> Remove tableId from list snapshot response
> --
>
> Key: CASSANDRASC-129
> URL: https://issues.apache.org/jira/browse/CASSANDRASC-129
> Project: Sidecar for Apache Cassandra
>  Issue Type: Bug
>  Components: Rest API
>Reporter: Francisco Guerrero
>Assignee: Francisco Guerrero
>Priority: Normal
>  Labels: pull-request-available
> Fix For: 1.0
>
>
> In CASSANDRASC-94, a new field {{tableId}} was added to the payload of the 
> list snapshots endpoint. Old Sidecar clients are compatible with new fields 
> added from the server side. However, other clients can potentially break and 
> for that reason we should remove the {{tableId}} field from the response and 
> make any potential breaking changes with an API version change instead. As an 
> alternative, we can add the {{tableId}} as part of the {{tableName}} field 
> instead.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



Re: [PR] JAVA-3142: Ability to optionally specify remote dcs for deterministic failovers when remote dcs are used in query plan [cassandra-java-driver]

2024-05-08 Thread via GitHub


nitinitt commented on PR #1896:
URL: 
https://github.com/apache/cassandra-java-driver/pull/1896#issuecomment-2101687257

   Thanks @absurdfarce! I have addressed the 2 minor documentation comments as 
part of: https://github.com/apache/cassandra-java-driver/pull/1933/files 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-19626) [Analytics] NullPointerException when reading static column with null values

2024-05-08 Thread Francisco Guerrero (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-19626?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Francisco Guerrero updated CASSANDRA-19626:
---
 Bug Category: Parent values: Correctness(12982)Level 1 values: 
Unrecoverable Corruption / Loss(13161)
   Complexity: Normal
Discovered By: User Report
Fix Version/s: NA
 Severity: Normal
   Status: Open  (was: Triage Needed)

> [Analytics] NullPointerException when reading static column with null values
> 
>
> Key: CASSANDRA-19626
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19626
> Project: Cassandra
>  Issue Type: Bug
>  Components: Analytics Library
>Reporter: Francisco Guerrero
>Assignee: Francisco Guerrero
>Priority: Normal
> Fix For: NA
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> The analytics library fails to read static columns that has null values 
> depending on the type. For example, this problem is exhibited in the 
> Timestamp type, where the deserialized object is null, and the type will 
> attempt to get the time from the field. When that occurs it triggers the 
> NullPointerException.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-19626) [Analytics] NullPointerException when reading static column with null values

2024-05-08 Thread Francisco Guerrero (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-19626?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Francisco Guerrero updated CASSANDRA-19626:
---
Test and Documentation Plan: Added tests validating the fix
 Status: Patch Available  (was: In Progress)

> [Analytics] NullPointerException when reading static column with null values
> 
>
> Key: CASSANDRA-19626
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19626
> Project: Cassandra
>  Issue Type: Bug
>  Components: Analytics Library
>Reporter: Francisco Guerrero
>Assignee: Francisco Guerrero
>Priority: Normal
> Fix For: NA
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> The analytics library fails to read static columns that has null values 
> depending on the type. For example, this problem is exhibited in the 
> Timestamp type, where the deserialized object is null, and the type will 
> attempt to get the time from the field. When that occurs it triggers the 
> NullPointerException.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[PR] JAVA-3142: Improving the documentation for remote local dc's feature [cassandra-java-driver]

2024-05-08 Thread via GitHub


nitinitt opened a new pull request, #1933:
URL: https://github.com/apache/cassandra-java-driver/pull/1933

   This PR is to address code review comment in merged 
[PR](https://github.com/apache/cassandra-java-driver/pull/1896)
   - 
https://github.com/apache/cassandra-java-driver/pull/1896#discussion_r1585228162
   - 
https://github.com/apache/cassandra-java-driver/pull/1896#discussion_r1585228162


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[PR] CASSANDRA-19626 Fix NullPointerException when reading static column w… [cassandra-analytics]

2024-05-08 Thread via GitHub


frankgh opened a new pull request, #58:
URL: https://github.com/apache/cassandra-analytics/pull/58

   …ith null values
   
   Patch by Francisco Guerrero; Reviewed by Yifan Cai for CASSANDRA-19626


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Created] (CASSANDRA-19626) [Analytics] NullPointerException when reading static column with null values

2024-05-08 Thread Francisco Guerrero (Jira)
Francisco Guerrero created CASSANDRA-19626:
--

 Summary: [Analytics] NullPointerException when reading static 
column with null values
 Key: CASSANDRA-19626
 URL: https://issues.apache.org/jira/browse/CASSANDRA-19626
 Project: Cassandra
  Issue Type: Bug
  Components: Analytics Library
Reporter: Francisco Guerrero
Assignee: Francisco Guerrero


The analytics library fails to read static columns that has null values 
depending on the type. For example, this problem is exhibited in the Timestamp 
type, where the deserialized object is null, and the type will attempt to get 
the time from the field. When that occurs it triggers the NullPointerException.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRASC-129) Remove tableId from list snapshot response

2024-05-08 Thread Francisco Guerrero (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRASC-129?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Francisco Guerrero updated CASSANDRASC-129:
---
Authors: Francisco Guerrero
Test and Documentation Plan: Added tests for client compatibility. Updated 
existing tests, and tested new utils methods
 Status: Patch Available  (was: In Progress)

> Remove tableId from list snapshot response
> --
>
> Key: CASSANDRASC-129
> URL: https://issues.apache.org/jira/browse/CASSANDRASC-129
> Project: Sidecar for Apache Cassandra
>  Issue Type: Bug
>  Components: Rest API
>Reporter: Francisco Guerrero
>Assignee: Francisco Guerrero
>Priority: Normal
>  Labels: pull-request-available
> Fix For: 1.0
>
>
> In CASSANDRASC-94, a new field {{tableId}} was added to the payload of the 
> list snapshots endpoint. Old Sidecar clients are compatible with new fields 
> added from the server side. However, other clients can potentially break and 
> for that reason we should remove the {{tableId}} field from the response and 
> make any potential breaking changes with an API version change instead. As an 
> alternative, we can add the {{tableId}} as part of the {{tableName}} field 
> instead.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRASC-129) Remove tableId from list snapshot response

2024-05-08 Thread Francisco Guerrero (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRASC-129?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Francisco Guerrero updated CASSANDRASC-129:
---
 Bug Category: Parent values: Correctness(12982)Level 1 values: 
Unrecoverable Corruption / Loss(13161)
   Complexity: Low Hanging Fruit
Discovered By: User Report
Fix Version/s: 1.0
Reviewers: Yifan Cai
 Severity: Normal
   Status: Open  (was: Triage Needed)

> Remove tableId from list snapshot response
> --
>
> Key: CASSANDRASC-129
> URL: https://issues.apache.org/jira/browse/CASSANDRASC-129
> Project: Sidecar for Apache Cassandra
>  Issue Type: Bug
>  Components: Rest API
>Reporter: Francisco Guerrero
>Assignee: Francisco Guerrero
>Priority: Normal
>  Labels: pull-request-available
> Fix For: 1.0
>
>
> In CASSANDRASC-94, a new field {{tableId}} was added to the payload of the 
> list snapshots endpoint. Old Sidecar clients are compatible with new fields 
> added from the server side. However, other clients can potentially break and 
> for that reason we should remove the {{tableId}} field from the response and 
> make any potential breaking changes with an API version change instead. As an 
> alternative, we can add the {{tableId}} as part of the {{tableName}} field 
> instead.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRASC-129) Remove tableId from list snapshot response

2024-05-08 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRASC-129?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated CASSANDRASC-129:
---
Labels: pull-request-available  (was: )

> Remove tableId from list snapshot response
> --
>
> Key: CASSANDRASC-129
> URL: https://issues.apache.org/jira/browse/CASSANDRASC-129
> Project: Sidecar for Apache Cassandra
>  Issue Type: Bug
>  Components: Rest API
>Reporter: Francisco Guerrero
>Assignee: Francisco Guerrero
>Priority: Normal
>  Labels: pull-request-available
>
> In CASSANDRASC-94, a new field {{tableId}} was added to the payload of the 
> list snapshots endpoint. Old Sidecar clients are compatible with new fields 
> added from the server side. However, other clients can potentially break and 
> for that reason we should remove the {{tableId}} field from the response and 
> make any potential breaking changes with an API version change instead. As an 
> alternative, we can add the {{tableId}} as part of the {{tableName}} field 
> instead.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Created] (CASSANDRASC-129) Remove tableId from list snapshot response

2024-05-08 Thread Francisco Guerrero (Jira)
Francisco Guerrero created CASSANDRASC-129:
--

 Summary: Remove tableId from list snapshot response
 Key: CASSANDRASC-129
 URL: https://issues.apache.org/jira/browse/CASSANDRASC-129
 Project: Sidecar for Apache Cassandra
  Issue Type: Bug
  Components: Rest API
Reporter: Francisco Guerrero
Assignee: Francisco Guerrero


In CASSANDRASC-94, a new field {{tableId}} was added to the payload of the list 
snapshots endpoint. Old Sidecar clients are compatible with new fields added 
from the server side. However, other clients can potentially break and for that 
reason we should remove the {{tableId}} field from the response and make any 
potential breaking changes with an API version change instead. As an 
alternative, we can add the {{tableId}} as part of the {{tableName}} field 
instead.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



Re: [PR] Add ExecutionInfo to RequestTracker methods [cassandra-java-driver]

2024-05-08 Thread via GitHub


ajweave commented on PR #1640:
URL: 
https://github.com/apache/cassandra-java-driver/pull/1640#issuecomment-2101654238

   Sorry for the delay. I will get this done tomorrow. I appreciate the 
attention here. 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-19556) Guardrail to block DDL/DCL queries

2024-05-08 Thread Yuqi Yan (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-19556?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17844801#comment-17844801
 ] 

Yuqi Yan commented on CASSANDRA-19556:
--

[~smiklosovic] thanks for posting this in ML and the follow-ups here. Yes that 
sg to me.

> Guardrail to block DDL/DCL queries
> --
>
> Key: CASSANDRA-19556
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19556
> Project: Cassandra
>  Issue Type: New Feature
>  Components: Feature/Guardrails
>Reporter: Yuqi Yan
>Assignee: Yuqi Yan
>Priority: Normal
> Fix For: 5.x
>
>  Time Spent: 1.5h
>  Remaining Estimate: 0h
>
> Sometimes we want to block DDL/DCL queries to stop new schemas being created 
> or roles created. (e.g. when doing live-upgrade)
> For DDL guardrail current implementation won't block the query if it's no-op 
> (e.g. CREATE TABLE...IF NOT EXISTS, but table already exists, etc. The 
> guardrail check is added in apply() right after all the existence check)
> I don't have preference on either block every DDL query or check whether if 
> it's no-op here. Just we have some users always run CREATE..IF NOT EXISTS.. 
> at startup, which is no-op but will be blocked by this guardrail and failed 
> to start.
>  
> 4.1 PR: [https://github.com/apache/cassandra/pull/3248]
> trunk PR: [https://github.com/apache/cassandra/pull/3275]
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



Re: [PR] Add ExecutionInfo to RequestTracker methods [cassandra-java-driver]

2024-05-08 Thread via GitHub


SiyaoIsHiding commented on PR #1640:
URL: 
https://github.com/apache/cassandra-java-driver/pull/1640#issuecomment-2101624573

   May you please merge apache/4.x to your branch?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



Re: [PR] Add ExecutionInfo to RequestTracker methods [cassandra-java-driver]

2024-05-08 Thread via GitHub


SiyaoIsHiding commented on code in PR #1640:
URL: 
https://github.com/apache/cassandra-java-driver/pull/1640#discussion_r1594781483


##
core/src/main/java/com/datastax/dse/driver/internal/core/cql/continuous/ContinuousRequestHandlerBase.java:
##
@@ -1590,18 +1597,20 @@ private void completeResultSetFuture(
 private ExecutionInfo createExecutionInfo(@NonNull Result result, 
@Nullable Frame response) {
   ByteBuffer pagingState =
   result instanceof Rows ? ((Rows) result).getMetadata().pagingState : 
null;
-  return new DefaultExecutionInfo(
-  statement,
-  node,
-  startedSpeculativeExecutionsCount.get(),
-  executionIndex,
-  errors,
-  pagingState,
-  response,
-  true,
-  session,
-  context,
-  executionProfile);
+  this.executionInfo =

Review Comment:
   It's a bit of work to set up. I ran all the tests against this branch, and 
it passed all the tests.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-19625) Integrate Cassandra Analytics with SonarQube

2024-05-08 Thread Yuriy Semchyshyn (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-19625?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Yuriy Semchyshyn updated CASSANDRA-19625:
-
Source Control Link: https://github.com/apache/cassandra-analytics/pull/57

> Integrate Cassandra Analytics with SonarQube
> 
>
> Key: CASSANDRA-19625
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19625
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Analytics Library
>Reporter: Yuriy Semchyshyn
>Priority: Normal
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Introduce the initial Gradle configuration for integration of Cassandra 
> Analytics with SonarCube for code analysis



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRASC-128) Integrate Cassandra Sidecar with SonarQube

2024-05-08 Thread Yuriy Semchyshyn (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRASC-128?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Yuriy Semchyshyn updated CASSANDRASC-128:
-
Source Control Link: https://github.com/apache/cassandra-sidecar/pull/119

> Integrate Cassandra Sidecar with SonarQube
> --
>
> Key: CASSANDRASC-128
> URL: https://issues.apache.org/jira/browse/CASSANDRASC-128
> Project: Sidecar for Apache Cassandra
>  Issue Type: Improvement
>  Components: Configuration
>Reporter: Yuriy Semchyshyn
>Priority: Normal
>  Labels: pull-request-available
>
> Introduce the initial Gradle configuration for integration of Cassandra 
> Sidecar with SonarCube for code analysis



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRASC-128) Integrate Cassandra Sidecar with SonarQube

2024-05-08 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRASC-128?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated CASSANDRASC-128:
---
Labels: pull-request-available  (was: )

> Integrate Cassandra Sidecar with SonarQube
> --
>
> Key: CASSANDRASC-128
> URL: https://issues.apache.org/jira/browse/CASSANDRASC-128
> Project: Sidecar for Apache Cassandra
>  Issue Type: Improvement
>  Components: Configuration
>Reporter: Yuriy Semchyshyn
>Priority: Normal
>  Labels: pull-request-available
>
> Introduce the initial Gradle configuration for integration of Cassandra 
> Sidecar with SonarCube for code analysis



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[PR] [CASSANDRA-19625] Initial Configuration for SonarCube Analysis [cassandra-analytics]

2024-05-08 Thread via GitHub


5 opened a new pull request, #57:
URL: https://github.com/apache/cassandra-analytics/pull/57

   Introduce the initial Gradle configuration for integration of Cassandra 
Analytics with SonarCube for code analysis


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Created] (CASSANDRA-19625) Integrate Cassandra Analytics with SonarQube

2024-05-08 Thread Yuriy Semchyshyn (Jira)
Yuriy Semchyshyn created CASSANDRA-19625:


 Summary: Integrate Cassandra Analytics with SonarQube
 Key: CASSANDRA-19625
 URL: https://issues.apache.org/jira/browse/CASSANDRA-19625
 Project: Cassandra
  Issue Type: Improvement
  Components: Analytics Library
Reporter: Yuriy Semchyshyn


Introduce the initial Gradle configuration for integration of Cassandra 
Analytics with SonarCube for code analysis



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Created] (CASSANDRASC-128) Integrate Cassandra Sidecar with SonarQube

2024-05-08 Thread Yuriy Semchyshyn (Jira)
Yuriy Semchyshyn created CASSANDRASC-128:


 Summary: Integrate Cassandra Sidecar with SonarQube
 Key: CASSANDRASC-128
 URL: https://issues.apache.org/jira/browse/CASSANDRASC-128
 Project: Sidecar for Apache Cassandra
  Issue Type: Improvement
  Components: Configuration
Reporter: Yuriy Semchyshyn


Introduce the initial Gradle configuration for integration of Cassandra Sidecar 
with SonarCube for code analysis



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-19556) Guardrail to block DDL/DCL queries

2024-05-08 Thread Stefan Miklosovic (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-19556?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17844790#comment-17844790
 ] 

Stefan Miklosovic commented on CASSANDRA-19556:
---

[~yukei] I have created a PR against your branch which removes CASSANDRA-17495 
and I refactored the tests little bit.

To speed up things a little bit, I have created 5.0 PR here. Based on the ML 
link above, I think we need to remove CASSANDRA-17495 and incorporate these two 
guardrails into that.

I think that we will work on 5.0 patch for now, I will take it from here if you 
do not mind. Does this sound OK for you? 

(1) https://github.com/Yukei7/cassandra/pull/1/files
(2) https://github.com/apache/cassandra/pull/3298

> Guardrail to block DDL/DCL queries
> --
>
> Key: CASSANDRA-19556
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19556
> Project: Cassandra
>  Issue Type: New Feature
>  Components: Feature/Guardrails
>Reporter: Yuqi Yan
>Assignee: Yuqi Yan
>Priority: Normal
> Fix For: 5.x
>
>  Time Spent: 1.5h
>  Remaining Estimate: 0h
>
> Sometimes we want to block DDL/DCL queries to stop new schemas being created 
> or roles created. (e.g. when doing live-upgrade)
> For DDL guardrail current implementation won't block the query if it's no-op 
> (e.g. CREATE TABLE...IF NOT EXISTS, but table already exists, etc. The 
> guardrail check is added in apply() right after all the existence check)
> I don't have preference on either block every DDL query or check whether if 
> it's no-op here. Just we have some users always run CREATE..IF NOT EXISTS.. 
> at startup, which is no-op but will be blocked by this guardrail and failed 
> to start.
>  
> 4.1 PR: [https://github.com/apache/cassandra/pull/3248]
> trunk PR: [https://github.com/apache/cassandra/pull/3275]
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[PR] An experiment [cassandra-java-driver]

2024-05-08 Thread via GitHub


absurdfarce opened a new pull request, #1932:
URL: https://github.com/apache/cassandra-java-driver/pull/1932

   (no comment)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-15439) Token metadata for bootstrapping nodes is lost under temporary failures

2024-05-08 Thread Raymond Huffman (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-15439?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17844744#comment-17844744
 ] 

Raymond Huffman commented on CASSANDRA-15439:
-

Thank you!

> Token metadata for bootstrapping nodes is lost under temporary failures
> ---
>
> Key: CASSANDRA-15439
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15439
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Membership
>Reporter: Josh Snyder
>Assignee: Raymond Huffman
>Priority: Normal
> Fix For: 4.0.14, 4.1.6, 5.0-beta2, 5.0
>
>  Time Spent: 1h
>  Remaining Estimate: 0h
>
> In CASSANDRA-8838, [~pauloricardomg] asked "hints will not be stored to the 
> bootstrapping node after RING_DELAY, since it will evicted from the TMD 
> pending ranges. Should we create a ticket to address this?"
> CASSANDRA-15264 relates to the most likely cause of such situations, where 
> the Cassandra daemon on the bootstrapping node completely crashes. Based on 
> testing with {{kill -STOP}} on a bootstrapping Cassandra JVM, I believe it 
> also is possible to remove token metadata (and thus pending ranges, and thus 
> hints) for a bootstrapping node, simply by affecting its status in the 
> failure detector. 
> A node in the cluster sees the bootstrapping node this way:
> {noformat}
> INFO  [GossipStage:1] 2019-11-27 20:41:41,101 Gossiper.java: - Node 
> /PUBLIC-IP is now part of the cluster
> INFO  [GossipStage:1] 2019-11-27 20:41:41,199 Gossiper.java:1073 - 
> InetAddress /PUBLIC-IP is now UP
> INFO  [HANDSHAKE-/PRIVATE-IP] 2019-11-27 20:41:41,412 
> OutboundTcpConnection.java:565 - Handshaking version with /PRIVATE-IP
> INFO  [STREAM-INIT-/PRIVATE-IP:21233] 2019-11-27 20:42:10,019 
> StreamResultFuture.java:112 - [Stream #6219a950-1156-11ea-b45d-4d30364576c4 
> ID#0] Creating new streaming plan for Bootstrap
> INFO  [STREAM-INIT-/PRIVATE-IP:21233] 2019-11-27 20:42:10,020 
> StreamResultFuture.java:119 - [Stream #6219a950-1156-11ea-b45d-4d30364576c4, 
> ID#0] Received streaming plan for Bootstrap
> INFO  [STREAM-INIT-/PRIVATE-IP:56003] 2019-11-27 20:42:10,112 
> StreamResultFuture.java:119 - [Stream #6219a950-1156-11ea-b45d-4d30364576c4, 
> ID#0] Received streaming plan for Bootstrap
> INFO  [STREAM-IN-/PUBLIC-IP] 2019-11-27 20:42:10,179 
> StreamResultFuture.java:169 - [Stream #6219a950-1156-11ea-b45d-4d30364576c4 
> ID#0] Prepare completed. Receiving 0 files(0 bytes), sending 833 
> files(139744616815 bytes)
> INFO  [GossipStage:1] 2019-11-27 20:54:47,547 Gossiper.java:1089 - 
> InetAddress /PUBLIC-IP is now DOWN
> INFO  [GossipTasks:1] 2019-11-27 20:54:57,551 Gossiper.java:849 - FatClient 
> /PUBLIC-IP has been silent for 3ms, removing from gossip
> {noformat}
> Since the bootstrapping node has no tokens, it is treated like a fat client, 
> and it is removed from the ring. For correctness purposes, I believe we must 
> keep storing hints for the downed bootstrapping node until it is either 
> assassinated or until a replacement attempts to bootstrap for the same token.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-19619) Enforce contract for internal metrics naming

2024-05-08 Thread Maxim Muzafarov (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-19619?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Maxim Muzafarov updated CASSANDRA-19619:

  Fix Version/s: 5.0-beta2
 5.0
 5.1
 (was: 5.x)
 (was: 5.0.x)
 (was: 5.0-rc)
Source Control Link: 
https://github.com/apache/cassandra/commit/ccdeb12419a70afb00e9aa3958fc05eb4617ee44
 Resolution: Fixed
 Status: Resolved  (was: Ready to Commit)

[~maedhroz] thank you for the review and running CI.

[~mck] thank you for the review either.
Committed to 5.0 and the trunk. 

> Enforce contract for internal metrics naming
> 
>
> Key: CASSANDRA-19619
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19619
> Project: Cassandra
>  Issue Type: Task
>  Components: Observability/Metrics
>Reporter: Maxim Muzafarov
>Assignee: Maxim Muzafarov
>Priority: Normal
> Fix For: 5.0-beta2, 5.0, 5.1
>
> Attachments: ci_summary-1.html, ci_summary.html
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Metrics have their internal representation which uniquely identifies a 
> particular metric name. The name is formed as {{. type>..}}. For some metrics, the scope includes a 
> metric name that is not necessary for uniqueness, this can be simplified.
> For example,
> {code}
> // AS IS
> org.apache.cassandra.metrics.StorageAttachedIndex.BalancedTreeIntersectionEarlyExits.my_keyspace.my_table.ColumnQueryMetrics.BalancedTreeIntersectionEarlyExits
> // TO BE
> org.apache.cassandra.metrics.StorageAttachedIndex.BalancedTreeIntersectionEarlyExits.my_keyspace.my_table.ColumnQueryMetrics
> {code}
> The metrics are filtered based on knowledge of how they are formatted, so 
> having a metric scope without a built-in metric name also simplifies the way 
> we filter metrics.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



(cassandra) 01/01: Merge branch 'cassandra-5.0' into trunk

2024-05-08 Thread mmuzaf
This is an automated email from the ASF dual-hosted git repository.

mmuzaf pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra.git

commit 6bae4f76fb043b4c3a3886178b5650b280e9a50b
Merge: 7f4a0f0c00 ccdeb12419
Author: Maxim Muzafarov 
AuthorDate: Wed May 8 19:49:54 2024 +0200

Merge branch 'cassandra-5.0' into trunk

* cassandra-5.0:
  Enforce metric naming contract if scope is used in a metric name

 CHANGES.txt  | 1 +
 src/java/org/apache/cassandra/index/sai/metrics/AbstractMetrics.java | 2 +-
 src/java/org/apache/cassandra/metrics/CassandraMetricsRegistry.java  | 5 +
 3 files changed, 7 insertions(+), 1 deletion(-)

diff --cc CHANGES.txt
index 6b391cc980,d3400ec57a..7ddd707989
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,45 -1,5 +1,46 @@@
 -5.0-beta2
 +5.1
 + * Refactor Relation and Restriction hierarchies (CASSANDRA-19341)
 + * Raise priority of TCM internode messages during critical operations 
(CASSANDRA-19517)
 + * Add nodetool command to unregister LEFT nodes (CASSANDRA-19581)
 + * Add cluster metadata id to gossip syn messages (CASSANDRA-19613)
 + * Reduce heap usage occupied by the metrics (CASSANDRA-19567)
 + * Improve handling of transient replicas during range movements 
(CASSANDRA-19344)
 + * Enable debounced internode log requests to be cancelled at shutdown 
(CASSANDRA-19514)
 + * Correctly set last modified epoch when combining multistep operations into 
a single step (CASSANDRA-19538)
 + * Add new TriggersPolicy configuration to allow operators to disable 
triggers (CASSANDRA-19532)
 + * Use Transformation.Kind.id in local and distributed log tables 
(CASSANDRA-19516)
 + * Remove period field from ClusterMetadata and metadata log tables 
(CASSANDRA-19482)
 + * Enrich system_views.pending_hints vtable with hints sizes (CASSANDRA-19486)
 + * Expose all dropwizard metrics in virtual tables (CASSANDRA-14572)
 + * Ensured that PropertyFileSnitchTest do not overwrite 
cassandra-toploogy.properties (CASSANDRA-19502)
 + * Add option for MutualTlsAuthenticator to restrict the certificate validity 
period (CASSANDRA-18951)
 + * Fix StorageService::constructRangeToEndpointMap for non-distributed 
keyspaces (CASSANDRA-19255)
 + * Group nodetool cms commands into single command group (CASSANDRA-19393)
 + * Register the measurements of the bootstrap process as Dropwizard metrics 
(CASSANDRA-19447)
 + * Add LIST SUPERUSERS CQL statement (CASSANDRA-19417)
 + * Modernize CQLSH datetime conversions (CASSANDRA-18879)
 + * Harry model and in-JVM tests for partition-restricted 2i queries 
(CASSANDRA-18275)
 + * Refactor cqlshmain global constants (CASSANDRA-19201)
 + * Remove native_transport_port_ssl (CASSANDRA-19397)
 + * Make nodetool reconfigurecms sync by default and add --cancel to be able 
to cancel ongoing reconfigurations (CASSANDRA-19216)
 + * Expose auth mode in system_views.clients, nodetool clientstats, metrics 
(CASSANDRA-19366)
 + * Remove sealed_periods and last_sealed_period tables (CASSANDRA-19189)
 + * Improve setup and initialisation of LocalLog/LogSpec (CASSANDRA-19271)
 + * Refactor structure of caching metrics and expose auth cache metrics via 
JMX (CASSANDRA-17062)
 + * Allow CQL client certificate authentication to work without sending an 
AUTHENTICATE request (CASSANDRA-18857)
 + * Extend nodetool tpstats and system_views.thread_pools with detailed pool 
parameters (CASSANDRA-19289)
 + * Remove dependency on Sigar in favor of OSHI (CASSANDRA-16565)
 + * Simplify the bind marker and Term logic (CASSANDRA-18813)
 + * Limit cassandra startup to supported JDKs, allow higher JDKs by setting 
CASSANDRA_JDK_UNSUPPORTED (CASSANDRA-18688)
 + * Standardize nodetool tablestats formatting of data units (CASSANDRA-19104)
 + * Make nodetool tablestats use number of significant digits for time and 
average values consistently (CASSANDRA-19015)
 + * Upgrade jackson to 2.15.3 and snakeyaml to 2.1 (CASSANDRA-18875)
 + * Transactional Cluster Metadata [CEP-21] (CASSANDRA-18330)
 + * Add ELAPSED command to cqlsh (CASSANDRA-18861)
 + * Add the ability to disable bulk loading of SSTables (CASSANDRA-18781)
 + * Clean up obsolete functions and simplify cql_version handling in cqlsh 
(CASSANDRA-18787)
 +Merged from 5.0:
+  * Enforce metric naming contract if scope is used in a metric name 
(CASSANDRA-19619)
   * Avoid reading of the same IndexInfo from disk many times for a large 
partition (CASSANDRA-19557)
   * Resolve the oldest hints just from descriptors and current writer if 
available (CASSANDRA-19600)
   * Optionally fail writes when SAI refuses to index a term value exceeding 
configured term max size (CASSANDRA-19493)
diff --cc src/java/org/apache/cassandra/index/sai/metrics/AbstractMetrics.java
index 17fd99291c,1bb0a7666a..642cfd24fc
--- a/src/java/org/apache/cassandra/index/sai/metrics/AbstractMetrics.java
+++ b/src/java/org/apache/cassandra/index/sai/metrics/AbstractMetrics.java
@@@ 

(cassandra) branch trunk updated (7f4a0f0c00 -> 6bae4f76fb)

2024-05-08 Thread mmuzaf
This is an automated email from the ASF dual-hosted git repository.

mmuzaf pushed a change to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra.git


from 7f4a0f0c00 Merge branch 'cassandra-5.0' into trunk
 add ccdeb12419 Enforce metric naming contract if scope is used in a metric 
name
 new 6bae4f76fb Merge branch 'cassandra-5.0' into trunk

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 CHANGES.txt  | 1 +
 src/java/org/apache/cassandra/index/sai/metrics/AbstractMetrics.java | 2 +-
 src/java/org/apache/cassandra/metrics/CassandraMetricsRegistry.java  | 5 +
 3 files changed, 7 insertions(+), 1 deletion(-)


-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



(cassandra) branch cassandra-5.0 updated (3b8c48024e -> ccdeb12419)

2024-05-08 Thread mmuzaf
This is an automated email from the ASF dual-hosted git repository.

mmuzaf pushed a change to branch cassandra-5.0
in repository https://gitbox.apache.org/repos/asf/cassandra.git


from 3b8c48024e Merge branch 'cassandra-4.1' into cassandra-5.0
 add ccdeb12419 Enforce metric naming contract if scope is used in a metric 
name

No new revisions were added by this update.

Summary of changes:
 CHANGES.txt  | 1 +
 src/java/org/apache/cassandra/index/sai/metrics/AbstractMetrics.java | 2 +-
 src/java/org/apache/cassandra/metrics/CassandraMetricsRegistry.java  | 5 +
 3 files changed, 7 insertions(+), 1 deletion(-)


-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



(cassandra-java-driver) branch 4.x updated: JAVA-3142: Ability to specify ordering of remote local dc's via new configuration for graceful automatic failovers

2024-05-08 Thread absurdfarce
This is an automated email from the ASF dual-hosted git repository.

absurdfarce pushed a commit to branch 4.x
in repository https://gitbox.apache.org/repos/asf/cassandra-java-driver.git


The following commit(s) were added to refs/heads/4.x by this push:
 new b9760b473 JAVA-3142: Ability to specify ordering of remote local dc's 
via new configuration for graceful automatic failovers
b9760b473 is described below

commit b9760b473b6e6e30f5da5f743e37e02150e13e39
Author: Nitin Chhabra 
AuthorDate: Thu Nov 30 12:38:23 2023 -0800

JAVA-3142: Ability to specify ordering of remote local dc's via new 
configuration for graceful automatic failovers

patch by Nitin Chhabra; reviewed by Alexandre Dutra, Andy Tolbert, and Bret 
McGuire for JAVA-3142
---
 .../api/core/config/DefaultDriverOption.java   |   8 +-
 .../oss/driver/api/core/config/OptionsMap.java |   2 +
 .../driver/api/core/config/TypedDriverOption.java  |  10 ++
 .../loadbalancing/BasicLoadBalancingPolicy.java|  84 +++---
 core/src/main/resources/reference.conf |   5 +
 ...cLoadBalancingPolicyPreferredRemoteDcsTest.java | 184 +
 6 files changed, 271 insertions(+), 22 deletions(-)

diff --git 
a/core/src/main/java/com/datastax/oss/driver/api/core/config/DefaultDriverOption.java
 
b/core/src/main/java/com/datastax/oss/driver/api/core/config/DefaultDriverOption.java
index afe16e968..11f2702c3 100644
--- 
a/core/src/main/java/com/datastax/oss/driver/api/core/config/DefaultDriverOption.java
+++ 
b/core/src/main/java/com/datastax/oss/driver/api/core/config/DefaultDriverOption.java
@@ -982,7 +982,13 @@ public enum DefaultDriverOption implements DriverOption {
* Value-type: {@link java.time.Duration}
*/
   
SSL_KEYSTORE_RELOAD_INTERVAL("advanced.ssl-engine-factory.keystore-reload-interval"),
-  ;
+  /**
+   * Ordered preference list of remote dcs optionally supplied for automatic 
failover.
+   *
+   * Value type: {@link java.util.List List}<{@link String}>
+   */
+  LOAD_BALANCING_DC_FAILOVER_PREFERRED_REMOTE_DCS(
+  "advanced.load-balancing-policy.dc-failover.preferred-remote-dcs");
 
   private final String path;
 
diff --git 
a/core/src/main/java/com/datastax/oss/driver/api/core/config/OptionsMap.java 
b/core/src/main/java/com/datastax/oss/driver/api/core/config/OptionsMap.java
index 8906e1dd3..98faf3e59 100644
--- a/core/src/main/java/com/datastax/oss/driver/api/core/config/OptionsMap.java
+++ b/core/src/main/java/com/datastax/oss/driver/api/core/config/OptionsMap.java
@@ -381,6 +381,8 @@ public class OptionsMap implements Serializable {
 
map.put(TypedDriverOption.LOAD_BALANCING_DC_FAILOVER_MAX_NODES_PER_REMOTE_DC, 
0);
 
map.put(TypedDriverOption.LOAD_BALANCING_DC_FAILOVER_ALLOW_FOR_LOCAL_CONSISTENCY_LEVELS,
 false);
 map.put(TypedDriverOption.METRICS_GENERATE_AGGREGABLE_HISTOGRAMS, true);
+map.put(
+TypedDriverOption.LOAD_BALANCING_DC_FAILOVER_PREFERRED_REMOTE_DCS, 
ImmutableList.of(""));
   }
 
   @Immutable
diff --git 
a/core/src/main/java/com/datastax/oss/driver/api/core/config/TypedDriverOption.java
 
b/core/src/main/java/com/datastax/oss/driver/api/core/config/TypedDriverOption.java
index 88c012fa3..ca60b67f0 100644
--- 
a/core/src/main/java/com/datastax/oss/driver/api/core/config/TypedDriverOption.java
+++ 
b/core/src/main/java/com/datastax/oss/driver/api/core/config/TypedDriverOption.java
@@ -892,6 +892,16 @@ public class TypedDriverOption {
   
DefaultDriverOption.LOAD_BALANCING_DC_FAILOVER_ALLOW_FOR_LOCAL_CONSISTENCY_LEVELS,
   GenericType.BOOLEAN);
 
+  /**
+   * Ordered preference list of remote dcs optionally supplied for automatic 
failover and included
+   * in query plan. This feature is enabled only when max-nodes-per-remote-dc 
is greater than 0.
+   */
+  public static final TypedDriverOption>
+  LOAD_BALANCING_DC_FAILOVER_PREFERRED_REMOTE_DCS =
+  new TypedDriverOption<>(
+  
DefaultDriverOption.LOAD_BALANCING_DC_FAILOVER_PREFERRED_REMOTE_DCS,
+  GenericType.listOf(String.class));
+
   private static Iterable> introspectBuiltInValues() {
 try {
   ImmutableList.Builder> result = 
ImmutableList.builder();
diff --git 
a/core/src/main/java/com/datastax/oss/driver/internal/core/loadbalancing/BasicLoadBalancingPolicy.java
 
b/core/src/main/java/com/datastax/oss/driver/internal/core/loadbalancing/BasicLoadBalancingPolicy.java
index b1adec3f1..587ef4183 100644
--- 
a/core/src/main/java/com/datastax/oss/driver/internal/core/loadbalancing/BasicLoadBalancingPolicy.java
+++ 
b/core/src/main/java/com/datastax/oss/driver/internal/core/loadbalancing/BasicLoadBalancingPolicy.java
@@ -45,10 +45,14 @@ import 
com.datastax.oss.driver.internal.core.util.collection.LazyQueryPlan;
 import com.datastax.oss.driver.internal.core.util.collection.QueryPlan;
 import com.datastax.oss.driver.internal.core.util.collection.SimpleQueryPlan;
 import com.datastax.oss.driver.shaded.guava.common.base.Predica

Re: [PR] JAVA-3142: Ability to optionally specify remote dcs for deterministic failovers when remote dcs are used in query plan [cassandra-java-driver]

2024-05-08 Thread via GitHub


absurdfarce merged PR #1896:
URL: https://github.com/apache/cassandra-java-driver/pull/1896


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



Re: [PR] JAVA-3142: Ability to optionally specify remote dcs for deterministic failovers when remote dcs are used in query plan [cassandra-java-driver]

2024-05-08 Thread via GitHub


absurdfarce commented on PR #1896:
URL: 
https://github.com/apache/cassandra-java-driver/pull/1896#issuecomment-2101007620

   Thanks @nitinitt, this looks great!  I concur that this commit looks like it 
contains all the fixes we've been discussing so we are ready to get this guy 
in!  Big thank you for all your help in making this happen!


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



Re: [PR] JAVA-3142: Ability to optionally specify remote dcs for deterministic failovers when remote dcs are used in query plan [cassandra-java-driver]

2024-05-08 Thread via GitHub


absurdfarce commented on code in PR #1896:
URL: 
https://github.com/apache/cassandra-java-driver/pull/1896#discussion_r1585228162


##
core/src/main/resources/reference.conf:
##
@@ -574,6 +574,11 @@ datastax-java-driver {
   # Modifiable at runtime: no
   # Overridable in a profile: yes
   allow-for-local-consistency-levels = false
+  # Ordered preference list of remote dc's (in order) optionally supplied 
for automatic failover. While building a query plan, the driver uses the DC's 
supplied in order together with max-nodes-per-remote-dc

Review Comment:
   Another nit: might be worth mentioning that users aren't required to specify 
all DCs when listing preferences via this config.



##
core/src/main/resources/reference.conf:
##
@@ -574,6 +574,11 @@ datastax-java-driver {
   # Modifiable at runtime: no
   # Overridable in a profile: yes
   allow-for-local-consistency-levels = false
+  # Ordered preference list of remote dc's (in order) optionally supplied 
for automatic failover. While building a query plan, the driver uses the DC's 
supplied in order together with max-nodes-per-remote-dc

Review Comment:
   Nit: should be a space between this and allow-for-local-consistency-levels 
in order to make it clear we're talking about two distinct configs



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-19623) Read fail with "illegal RT bounds sequence" after migrating data from 2.2.19 to 3.0.30

2024-05-08 Thread Klay (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-19623?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Klay updated CASSANDRA-19623:
-
Description: 
After migrating data from 2.2.19 to 3.0.30, reading the legacy data in 3.0.30 
would fail with the following exception.
{code:java}
INFO  [main] 2024-05-08 00:42:42,397 CassandraDaemon.java:653 - Startup complete
ERROR [SharedPool-Worker-2] 2024-05-08 00:42:49,975 
AbstractLocalAwareExecutorService.java:166 - Uncaught exception on thread 
Thread[SharedPool-Worker-2,10,main]
java.lang.RuntimeException: java.lang.IllegalStateException: SSTABLE 
UnfilteredRowIterator for ks.tb has an illegal RT bounds sequence: unexpected 
end bound or boundary Marker INCL_START_BOUND(1)@1715128933051779/1715128933
        at 
org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2656)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at 
org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:162)
        at 
org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$LocalSessionFutureTask.run(AbstractLocalAwareExecutorService.java:134)
        at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:109)
        at java.lang.Thread.run(Thread.java:750)
Caused by: java.lang.IllegalStateException: SSTABLE UnfilteredRowIterator for 
ks.tb has an illegal RT bounds sequence: unexpected end bound or boundary 
Marker INCL_START_BOUND(1)@1715128933051779/1715128933
        at 
org.apache.cassandra.db.transform.RTBoundValidator$RowsTransformation.ise(RTBoundValidator.java:120)
        at 
org.apache.cassandra.db.transform.RTBoundValidator$RowsTransformation.applyToMarker(RTBoundValidator.java:87)
        at org.apache.cassandra.db.transform.BaseRows.hasNext(BaseRows.java:144)
        at org.apache.cassandra.db.transform.BaseRows.hasNext(BaseRows.java:129)
        at 
org.apache.cassandra.db.rows.UnfilteredRowIteratorSerializer.serialize(UnfilteredRowIteratorSerializer.java:131)
        at 
org.apache.cassandra.db.rows.UnfilteredRowIteratorSerializer.serialize(UnfilteredRowIteratorSerializer.java:87)
        at 
org.apache.cassandra.db.rows.UnfilteredRowIteratorSerializer.serialize(UnfilteredRowIteratorSerializer.java:77)
        at 
org.apache.cassandra.db.partitions.UnfilteredPartitionIterators$Serializer.serialize(UnfilteredPartitionIterators.java:297)
        at 
org.apache.cassandra.db.ReadResponse$LocalDataResponse.build(ReadResponse.java:187)
        at 
org.apache.cassandra.db.ReadResponse$LocalDataResponse.(ReadResponse.java:180)
        at 
org.apache.cassandra.db.ReadResponse$LocalDataResponse.(ReadResponse.java:176)
        at 
org.apache.cassandra.db.ReadResponse.createDataResponse(ReadResponse.java:76)
        at 
org.apache.cassandra.db.ReadCommand.createResponse(ReadCommand.java:347)
        at 
org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:1914)
        at 
org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2652)
        ... 5 common frames omitted {code}
h1. Reproduce

1. Start up cassandra-2.2.19, single node. Set column_index_size_in_kb in 
cassandra.yaml to 1.
{code:java}
// cassandra.yaml
column_index_size_in_kb: 1 {code}
2. Execute the following commands (I masked out all data in the INSERT command 
using a long string of 'A' to make it simpler)
{code:java}
CREATE KEYSPACE  ks WITH REPLICATION = { 'class' : 'SimpleStrategy', 
'replication_factor' : 1 };
CREATE TABLE  ks.tb (c3 INT, c7 INT, c0 TEXT,c6 set, PRIMARY KEY (c3, c7, 
c0));
DELETE FROM ks.tb WHERE c3 = 1 AND c7 = 1;
DELETE FROM ks.tb WHERE c3 = 1 AND c7 = 1 AND c0 = 'e';
INSERT INTO ks.tb (c7, c3, c6, c0) VALUES 
(1,1,{'','','AAA'},'');
 {code}
Perform a read in the old version, it works normally
{code:java}
cqlsh> SELECT c7, c0, c3 FROM ks.tb WHERE c3 = 1 AND c7 = 1 ORDER BY c7 DESC;

 c7 | c0                                               | c3
+--+
  1 |  |  1

(1 rows) {code}
3. Drain and stop 2.2.19.
{code:java}
bin/nodetool -h :::127.0.0.1 drain
bin/nodetool -h

[jira] [Updated] (CASSANDRA-19623) Read fail with "illegal RT bounds sequence" after migrating data from 2.2.19 to 3.0.30

2024-05-08 Thread Klay (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-19623?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Klay updated CASSANDRA-19623:
-
Description: 
After migrating data from 2.2.19 to 3.0.30, reading the legacy data in 3.0.30 
would fail with the following exception.
{code:java}
INFO  [main] 2024-05-08 00:42:42,397 CassandraDaemon.java:653 - Startup complete
ERROR [SharedPool-Worker-2] 2024-05-08 00:42:49,975 
AbstractLocalAwareExecutorService.java:166 - Uncaught exception on thread 
Thread[SharedPool-Worker-2,10,main]
java.lang.RuntimeException: java.lang.IllegalStateException: SSTABLE 
UnfilteredRowIterator for ks.tb has an illegal RT bounds sequence: unexpected 
end bound or boundary Marker INCL_START_BOUND(1)@1715128933051779/1715128933
        at 
org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2656)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at 
org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:162)
        at 
org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$LocalSessionFutureTask.run(AbstractLocalAwareExecutorService.java:134)
        at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:109)
        at java.lang.Thread.run(Thread.java:750)
Caused by: java.lang.IllegalStateException: SSTABLE UnfilteredRowIterator for 
ks.tb has an illegal RT bounds sequence: unexpected end bound or boundary 
Marker INCL_START_BOUND(1)@1715128933051779/1715128933
        at 
org.apache.cassandra.db.transform.RTBoundValidator$RowsTransformation.ise(RTBoundValidator.java:120)
        at 
org.apache.cassandra.db.transform.RTBoundValidator$RowsTransformation.applyToMarker(RTBoundValidator.java:87)
        at org.apache.cassandra.db.transform.BaseRows.hasNext(BaseRows.java:144)
        at org.apache.cassandra.db.transform.BaseRows.hasNext(BaseRows.java:129)
        at 
org.apache.cassandra.db.rows.UnfilteredRowIteratorSerializer.serialize(UnfilteredRowIteratorSerializer.java:131)
        at 
org.apache.cassandra.db.rows.UnfilteredRowIteratorSerializer.serialize(UnfilteredRowIteratorSerializer.java:87)
        at 
org.apache.cassandra.db.rows.UnfilteredRowIteratorSerializer.serialize(UnfilteredRowIteratorSerializer.java:77)
        at 
org.apache.cassandra.db.partitions.UnfilteredPartitionIterators$Serializer.serialize(UnfilteredPartitionIterators.java:297)
        at 
org.apache.cassandra.db.ReadResponse$LocalDataResponse.build(ReadResponse.java:187)
        at 
org.apache.cassandra.db.ReadResponse$LocalDataResponse.(ReadResponse.java:180)
        at 
org.apache.cassandra.db.ReadResponse$LocalDataResponse.(ReadResponse.java:176)
        at 
org.apache.cassandra.db.ReadResponse.createDataResponse(ReadResponse.java:76)
        at 
org.apache.cassandra.db.ReadCommand.createResponse(ReadCommand.java:347)
        at 
org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:1914)
        at 
org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2652)
        ... 5 common frames omitted {code}
h1. Reproduce

1. Start up cassandra-2.2.19, single node. Set column_index_size_in_kb in 
cassandra.yaml to 1.
{code:java}
// cassandra.yaml
column_index_size_in_kb: 1 {code}
2. Execute the following commands (I masked out all data in the INSERT command 
using a long string of 'A' to make it simpler)
{code:java}
CREATE KEYSPACE  ks WITH REPLICATION = { 'class' : 'SimpleStrategy', 
'replication_factor' : 1 };
CREATE TABLE  ks.tb (c3 INT, c7 INT, c0 TEXT,c6 set, PRIMARY KEY (c3, c7, 
c0));
DELETE FROM ks.tb WHERE c3 = 1 AND c7 = 1;
DELETE FROM ks.tb WHERE c3 = 1 AND c7 = 1 AND c0 = 'e';
INSERT INTO ks.tb (c7, c3, c6, c0) VALUES 
(1,1,{'','','AAA'},'');
 {code}
Perform a read in the old version, it works normally
{code:java}
cqlsh> SELECT c7, c0, c3 FROM ks.tb WHERE c3 = 1 AND c7 = 1 ORDER BY c7 DESC;

 c7 | c0                                               | c3
+--+
  1 |  |  1

(1 rows) {code}
3. Drain and stop 2.2.19.
{code:java}
bin/nodetool -h :::127.0.0.1 drain
bin/nodetool -h

[jira] [Updated] (CASSANDRA-19623) Read fail with "illegal RT bounds sequence" after migrating data from 2.2.19 to 3.0.30

2024-05-08 Thread Klay (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-19623?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Klay updated CASSANDRA-19623:
-
Description: 
After migrating data from 2.2.19 to 3.0.30, reading the legacy data in 3.0.30 
would fail with the following exception.
{code:java}
INFO  [main] 2024-05-08 00:42:42,397 CassandraDaemon.java:653 - Startup complete
ERROR [SharedPool-Worker-2] 2024-05-08 00:42:49,975 
AbstractLocalAwareExecutorService.java:166 - Uncaught exception on thread 
Thread[SharedPool-Worker-2,10,main]
java.lang.RuntimeException: java.lang.IllegalStateException: SSTABLE 
UnfilteredRowIterator for ks.tb has an illegal RT bounds sequence: unexpected 
end bound or boundary Marker INCL_START_BOUND(1)@1715128933051779/1715128933
        at 
org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2656)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at 
org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:162)
        at 
org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$LocalSessionFutureTask.run(AbstractLocalAwareExecutorService.java:134)
        at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:109)
        at java.lang.Thread.run(Thread.java:750)
Caused by: java.lang.IllegalStateException: SSTABLE UnfilteredRowIterator for 
ks.tb has an illegal RT bounds sequence: unexpected end bound or boundary 
Marker INCL_START_BOUND(1)@1715128933051779/1715128933
        at 
org.apache.cassandra.db.transform.RTBoundValidator$RowsTransformation.ise(RTBoundValidator.java:120)
        at 
org.apache.cassandra.db.transform.RTBoundValidator$RowsTransformation.applyToMarker(RTBoundValidator.java:87)
        at org.apache.cassandra.db.transform.BaseRows.hasNext(BaseRows.java:144)
        at org.apache.cassandra.db.transform.BaseRows.hasNext(BaseRows.java:129)
        at 
org.apache.cassandra.db.rows.UnfilteredRowIteratorSerializer.serialize(UnfilteredRowIteratorSerializer.java:131)
        at 
org.apache.cassandra.db.rows.UnfilteredRowIteratorSerializer.serialize(UnfilteredRowIteratorSerializer.java:87)
        at 
org.apache.cassandra.db.rows.UnfilteredRowIteratorSerializer.serialize(UnfilteredRowIteratorSerializer.java:77)
        at 
org.apache.cassandra.db.partitions.UnfilteredPartitionIterators$Serializer.serialize(UnfilteredPartitionIterators.java:297)
        at 
org.apache.cassandra.db.ReadResponse$LocalDataResponse.build(ReadResponse.java:187)
        at 
org.apache.cassandra.db.ReadResponse$LocalDataResponse.(ReadResponse.java:180)
        at 
org.apache.cassandra.db.ReadResponse$LocalDataResponse.(ReadResponse.java:176)
        at 
org.apache.cassandra.db.ReadResponse.createDataResponse(ReadResponse.java:76)
        at 
org.apache.cassandra.db.ReadCommand.createResponse(ReadCommand.java:347)
        at 
org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:1914)
        at 
org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2652)
        ... 5 common frames omitted {code}
h1. Reproduce

1. Start up cassandra-2.2.19, single node. Set column_index_size_in_kb in 
cassandra.yaml to 1.
{code:java}
// cassandra.yaml
column_index_size_in_kb: 1 {code}
2. Execute the following commands (I masked out all data in the INSERT command 
using a long string of 'A' to make it simpler)
{code:java}
CREATE KEYSPACE  ks WITH REPLICATION = { 'class' : 'SimpleStrategy', 
'replication_factor' : 1 };
CREATE TABLE  ks.tb (c3 INT, c7 INT, c0 TEXT,c6 set, PRIMARY KEY (c3, c7, 
c0));
DELETE FROM ks.tb WHERE c3 = 1 AND c7 = 1;
DELETE FROM ks.tb WHERE c3 = 1 AND c7 = 1 AND c0 = 'e';
INSERT INTO ks.tb (c7, c3, c6, c0) VALUES 
(1,1,{'','','AAA'},'');
 {code}
Perform a read in the old version, it works normally
{code:java}
cqlsh> SELECT c7, c0, c3 FROM ks.tb WHERE c3 = 1 AND c7 = 1 ORDER BY c7 DESC;

 c7 | c0                                               | c3
+--+
  1 |  |  1(1 rows) {code}
3. Drain and stop 2.2.19.
{code:java}
bin/nodetool -h :::127.0.0.1 drain
bin/nodetool -h :

[jira] [Updated] (CASSANDRA-19624) ModificationStatement#casInternal leaks RowIterator

2024-05-08 Thread Brandon Williams (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-19624?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brandon Williams updated CASSANDRA-19624:
-
 Bug Category: Parent values: Degradation(12984)Level 1 values: Resource 
Management(12995)
   Complexity: Normal
  Component/s: Legacy/Core
Discovered By: User Report
Fix Version/s: 4.0.x
   4.1.x
   5.0.x
   5.x
 Severity: Normal
   Status: Open  (was: Triage Needed)

> ModificationStatement#casInternal leaks RowIterator
> ---
>
> Key: CASSANDRA-19624
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19624
> Project: Cassandra
>  Issue Type: Bug
>  Components: Legacy/Core
>Reporter: Michael Marshall
>Assignee: Michael Marshall
>Priority: Normal
> Fix For: 4.0.x, 4.1.x, 5.0.x, 5.x
>
>  Time Spent: 40m
>  Remaining Estimate: 0h
>
> In the `ModificationStatement` class, the `casInternal` method opens a row 
> iterator without closing it, causing the iterator to leak resources. Here is 
> a link to the relevant code in the `trunk` branch.
> [https://github.com/apache/cassandra/blob/a77a2d10b1d247ed920b75df79f982a3b7c6a431/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java#L680-L684]
>  
> It seems that `cassandra-3.0.30` has the bug, but `cassandra-2.2.19` does not 
> have it. Is it correct to target `cassandra-3.0.30`?
> What is the best practice for testing this kind of bug fix? It seems like a 
> low complexity fix. This is my first contribution to the Cassandra community, 
> so any guidance is appreciated. Thanks!



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-19158) Reuse native transport-driven futures in Debounce

2024-05-08 Thread Sam Tunnicliffe (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-19158?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sam Tunnicliffe updated CASSANDRA-19158:

Status: Changes Suggested  (was: Review In Progress)

Thanks, this is definitely an improvement. I've left a few comments on the PR

> Reuse native transport-driven futures in Debounce
> -
>
> Key: CASSANDRA-19158
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19158
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Transactional Cluster Metadata
>Reporter: Alex Petrov
>Assignee: Alex Petrov
>Priority: Normal
> Attachments: ci_summary.html
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Currently, we create a future in Debounce, then create one more future in 
> RemoteProcessor#sendWithCallback. This is further exacerbated by chaining 
> calls, when we first attempt to catch up from peer, and then from CMS.
> First of all, we should always only use a native transport timeout driven 
> futures returned from sendWithCallback, since they implement reasonable 
> retries under the hood, and are easy to bulk-configure (ie you can simply 
> change timeout in yaml and have all futures change their behaviour).
> Second, we should _chain_ futures and use map or andThen for fallback 
> operations such as trying to catch up from CMS after an unsuccesful attemp to 
> catch up from peer.
> This should significantly simplify the code and number of blocked/waiting 
> threads.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-19621) Test failure: gossip_test.TestGossip::test_2dc_parallel_startup

2024-05-08 Thread Brandon Williams (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-19621?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brandon Williams updated CASSANDRA-19621:
-
Test and Documentation Plan: run CI
 Status: Patch Available  (was: Open)

> Test failure: gossip_test.TestGossip::test_2dc_parallel_startup
> ---
>
> Key: CASSANDRA-19621
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19621
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Gossip
>Reporter: Brandon Williams
>Assignee: Brandon Williams
>Priority: Normal
> Fix For: 5.0.x
>
>
> As seen at 
> https://app.circleci.com/pipelines/github/driftx/cassandra/1625/workflows/d3849d2a-987e-49f8-9f4b-916c7ce85279/jobs/88756/tests:
> {quote}
> failed on teardown with "Unexpected error found in node logs (see stdout for 
> full details). Errors: [[node4] 'ERROR [Messaging-EventLoop-3-3] 2024-05-07 
> 20:10:54,261 NoSpamLogger.java:110 - 
> /127.0.0.4:7004->/127.0.0.1:7001-URGENT_MESSAGES-[no-channel] failed to 
> connect\njava.nio.channels.ClosedChannelException: null\n\tat 
> org.apache.cassandra.net.OutboundConnectionInitiator$Handler.channelInactive(OutboundConnectionInitiator.java:322)\n\tat
>  
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:305)\n\tat
>  
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:281)\n\tat
>  
> io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:274)\n\tat
>  
> io.netty.handler.codec.ByteToMessageDecoder.channelInputClosed(ByteToMessageDecoder.java:411)\n\tat
>  
> io.netty.handler.codec.ByteToMessageDecoder.channelInactive(ByteToMessageDecoder.java:376)\n\tat
>  
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:305)\n\tat
>  
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:281)\n\tat
>  
> io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:274)\n\tat
>  
> io.netty.channel.DefaultChannelPipeline$HeadContext.channelInactive(DefaultChannelPipeline.java:1405)\n\tat
>  
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:301)\n\tat
>  
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:281)\n\tat
>  
> io.netty.channel.DefaultChannelPipeline.fireChannelInactive(DefaultChannelPipeline.java:901)\n\tat
>  
> io.netty.channel.AbstractChannel$AbstractUnsafe$7.run(AbstractChannel.java:813)\n\tat
>  
> io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)\n\tat
>  
> io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)\n\tat
>  
> io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)\n\tat
>  io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:413)\n\tat 
> io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n\tat
>  
> io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n\tat
>  
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n\tat
>  java.base/java.lang.Thread.run(Thread.java:833)']"
> {quote}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-19621) Test failure: gossip_test.TestGossip::test_2dc_parallel_startup

2024-05-08 Thread Brandon Williams (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-19621?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17844700#comment-17844700
 ] 

Brandon Williams commented on CASSANDRA-19621:
--

Patch to ignore this 
[here|https://github.com/driftx/cassandra-dtest/tree/CASSANDRA-19621].  I 
haven't been able to reproduce but this should do the trick and 
[here|https://app.circleci.com/pipelines/github/driftx/cassandra/1627/workflows/270dafe1-230c-4650-977b-a6c0bbaa370f/jobs/89041]
 is multiplexed CI.

> Test failure: gossip_test.TestGossip::test_2dc_parallel_startup
> ---
>
> Key: CASSANDRA-19621
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19621
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Gossip
>Reporter: Brandon Williams
>Assignee: Brandon Williams
>Priority: Normal
> Fix For: 5.0.x
>
>
> As seen at 
> https://app.circleci.com/pipelines/github/driftx/cassandra/1625/workflows/d3849d2a-987e-49f8-9f4b-916c7ce85279/jobs/88756/tests:
> {quote}
> failed on teardown with "Unexpected error found in node logs (see stdout for 
> full details). Errors: [[node4] 'ERROR [Messaging-EventLoop-3-3] 2024-05-07 
> 20:10:54,261 NoSpamLogger.java:110 - 
> /127.0.0.4:7004->/127.0.0.1:7001-URGENT_MESSAGES-[no-channel] failed to 
> connect\njava.nio.channels.ClosedChannelException: null\n\tat 
> org.apache.cassandra.net.OutboundConnectionInitiator$Handler.channelInactive(OutboundConnectionInitiator.java:322)\n\tat
>  
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:305)\n\tat
>  
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:281)\n\tat
>  
> io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:274)\n\tat
>  
> io.netty.handler.codec.ByteToMessageDecoder.channelInputClosed(ByteToMessageDecoder.java:411)\n\tat
>  
> io.netty.handler.codec.ByteToMessageDecoder.channelInactive(ByteToMessageDecoder.java:376)\n\tat
>  
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:305)\n\tat
>  
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:281)\n\tat
>  
> io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:274)\n\tat
>  
> io.netty.channel.DefaultChannelPipeline$HeadContext.channelInactive(DefaultChannelPipeline.java:1405)\n\tat
>  
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:301)\n\tat
>  
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:281)\n\tat
>  
> io.netty.channel.DefaultChannelPipeline.fireChannelInactive(DefaultChannelPipeline.java:901)\n\tat
>  
> io.netty.channel.AbstractChannel$AbstractUnsafe$7.run(AbstractChannel.java:813)\n\tat
>  
> io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)\n\tat
>  
> io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)\n\tat
>  
> io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)\n\tat
>  io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:413)\n\tat 
> io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n\tat
>  
> io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n\tat
>  
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n\tat
>  java.base/java.lang.Thread.run(Thread.java:833)']"
> {quote}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-15439) Token metadata for bootstrapping nodes is lost under temporary failures

2024-05-08 Thread Brandon Williams (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-15439?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brandon Williams updated CASSANDRA-15439:
-
  Fix Version/s: 4.0.14
 4.1.6
 5.0-beta2
 5.0
 (was: 4.0.x)
 (was: 4.1.x)
 (was: 5.0.x)
  Since Version: NA
Source Control Link: 
https://github.com/apache/cassandra/commit/057d082e00f7d10b8e9b127cfabd9b8cd228da3d
 Resolution: Fixed
 Status: Resolved  (was: Ready to Commit)

Committed, thanks all!

> Token metadata for bootstrapping nodes is lost under temporary failures
> ---
>
> Key: CASSANDRA-15439
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15439
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Membership
>Reporter: Josh Snyder
>Assignee: Raymond Huffman
>Priority: Normal
> Fix For: 4.0.14, 4.1.6, 5.0-beta2, 5.0
>
>  Time Spent: 1h
>  Remaining Estimate: 0h
>
> In CASSANDRA-8838, [~pauloricardomg] asked "hints will not be stored to the 
> bootstrapping node after RING_DELAY, since it will evicted from the TMD 
> pending ranges. Should we create a ticket to address this?"
> CASSANDRA-15264 relates to the most likely cause of such situations, where 
> the Cassandra daemon on the bootstrapping node completely crashes. Based on 
> testing with {{kill -STOP}} on a bootstrapping Cassandra JVM, I believe it 
> also is possible to remove token metadata (and thus pending ranges, and thus 
> hints) for a bootstrapping node, simply by affecting its status in the 
> failure detector. 
> A node in the cluster sees the bootstrapping node this way:
> {noformat}
> INFO  [GossipStage:1] 2019-11-27 20:41:41,101 Gossiper.java: - Node 
> /PUBLIC-IP is now part of the cluster
> INFO  [GossipStage:1] 2019-11-27 20:41:41,199 Gossiper.java:1073 - 
> InetAddress /PUBLIC-IP is now UP
> INFO  [HANDSHAKE-/PRIVATE-IP] 2019-11-27 20:41:41,412 
> OutboundTcpConnection.java:565 - Handshaking version with /PRIVATE-IP
> INFO  [STREAM-INIT-/PRIVATE-IP:21233] 2019-11-27 20:42:10,019 
> StreamResultFuture.java:112 - [Stream #6219a950-1156-11ea-b45d-4d30364576c4 
> ID#0] Creating new streaming plan for Bootstrap
> INFO  [STREAM-INIT-/PRIVATE-IP:21233] 2019-11-27 20:42:10,020 
> StreamResultFuture.java:119 - [Stream #6219a950-1156-11ea-b45d-4d30364576c4, 
> ID#0] Received streaming plan for Bootstrap
> INFO  [STREAM-INIT-/PRIVATE-IP:56003] 2019-11-27 20:42:10,112 
> StreamResultFuture.java:119 - [Stream #6219a950-1156-11ea-b45d-4d30364576c4, 
> ID#0] Received streaming plan for Bootstrap
> INFO  [STREAM-IN-/PUBLIC-IP] 2019-11-27 20:42:10,179 
> StreamResultFuture.java:169 - [Stream #6219a950-1156-11ea-b45d-4d30364576c4 
> ID#0] Prepare completed. Receiving 0 files(0 bytes), sending 833 
> files(139744616815 bytes)
> INFO  [GossipStage:1] 2019-11-27 20:54:47,547 Gossiper.java:1089 - 
> InetAddress /PUBLIC-IP is now DOWN
> INFO  [GossipTasks:1] 2019-11-27 20:54:57,551 Gossiper.java:849 - FatClient 
> /PUBLIC-IP has been silent for 3ms, removing from gossip
> {noformat}
> Since the bootstrapping node has no tokens, it is treated like a fat client, 
> and it is removed from the ring. For correctness purposes, I believe we must 
> keep storing hints for the downed bootstrapping node until it is either 
> assassinated or until a replacement attempts to bootstrap for the same token.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



(cassandra) 01/01: Merge branch 'cassandra-4.0' into cassandra-4.1

2024-05-08 Thread brandonwilliams
This is an automated email from the ASF dual-hosted git repository.

brandonwilliams pushed a commit to branch cassandra-4.1
in repository https://gitbox.apache.org/repos/asf/cassandra.git

commit c6017aca778df72e1944b1855c902027b8abad7f
Merge: 103e9cca1a 057d082e00
Author: Brandon Williams 
AuthorDate: Wed May 8 10:22:07 2024 -0500

Merge branch 'cassandra-4.0' into cassandra-4.1

 CHANGES.txt|  1 +
 conf/jvm-server.options|  4 ++
 .../config/CassandraRelevantProperties.java|  2 +
 src/java/org/apache/cassandra/gms/Gossiper.java| 46 --
 .../org/apache/cassandra/gms/VersionedValue.java   |  2 +
 5 files changed, 52 insertions(+), 3 deletions(-)

diff --cc CHANGES.txt
index 0095e2d078,2d56a56c61..2f31f4a2e2
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,5 -1,5 +1,6 @@@
 -4.0.14
 +4.1.6
 +Merged from 4.0:
+  * Add timeout specifically for bootstrapping nodes (CASSANDRA-15439)
   * Bring Redhat packge dirs/ownership/perms in line with Debian package 
(CASSANDRA-19565)
  
  
diff --cc src/java/org/apache/cassandra/gms/Gossiper.java
index 9be48f96bb,009e6b255f..ff1264d6fa
--- a/src/java/org/apache/cassandra/gms/Gossiper.java
+++ b/src/java/org/apache/cassandra/gms/Gossiper.java
@@@ -272,9 -258,28 +276,28 @@@ public class Gossiper implements IFailu
  return 259200 * 1000; // 3 days
  }
  
+ private static long getFailedBootstrapTimeout()
+ {
+ String newtimeout = 
CassandraRelevantProperties.FAILED_BOOTSTRAP_TIMEOUT.getString();
+ if (newtimeout != null)
+ {
+ long longValue = Long.parseLong(newtimeout);
+ if (longValue == -1)
+ {
+ longValue = Long.MAX_VALUE;
+ }
+ logger.info("Overriding FAILED_BOOTSTRAP_TIMEOUT to {}ms", 
longValue);
+ return longValue;
+ }
+ else
+ {
+ return FAT_CLIENT_TIMEOUT * 2;
+ }
+ }
+ 
  private static boolean isInGossipStage()
  {
 -return ((JMXEnabledSingleThreadExecutor) 
Stage.GOSSIP.executor()).isExecutedBy(Thread.currentThread());
 +return Stage.GOSSIP.executor().inExecutor();
  }
  
  private static void checkProperThreadForStateMutation()


-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



(cassandra) branch cassandra-5.0 updated (049160e70a -> 3b8c48024e)

2024-05-08 Thread brandonwilliams
This is an automated email from the ASF dual-hosted git repository.

brandonwilliams pushed a change to branch cassandra-5.0
in repository https://gitbox.apache.org/repos/asf/cassandra.git


from 049160e70a Avoid reading of the same IndexInfo from disk many times 
for a large partition when ShallowIndexedEntry is used
 new 057d082e00 Add option to override the FatClient timeout for 
Bootstrapping nodes
 new c6017aca77 Merge branch 'cassandra-4.0' into cassandra-4.1
 new 3b8c48024e Merge branch 'cassandra-4.1' into cassandra-5.0

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 CHANGES.txt|  1 +
 conf/jvm-server.options|  4 ++
 .../config/CassandraRelevantProperties.java|  2 +
 src/java/org/apache/cassandra/gms/Gossiper.java| 46 --
 .../org/apache/cassandra/gms/VersionedValue.java   |  2 +-
 5 files changed, 51 insertions(+), 4 deletions(-)


-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



(cassandra) 01/01: Merge branch 'cassandra-4.1' into cassandra-5.0

2024-05-08 Thread brandonwilliams
This is an automated email from the ASF dual-hosted git repository.

brandonwilliams pushed a commit to branch cassandra-5.0
in repository https://gitbox.apache.org/repos/asf/cassandra.git

commit 3b8c48024ed07a30bb8ccd338f0eee0f83eb89dc
Merge: 049160e70a c6017aca77
Author: Brandon Williams 
AuthorDate: Wed May 8 10:28:21 2024 -0500

Merge branch 'cassandra-4.1' into cassandra-5.0

 CHANGES.txt|  1 +
 conf/jvm-server.options|  4 ++
 .../config/CassandraRelevantProperties.java|  2 +
 src/java/org/apache/cassandra/gms/Gossiper.java| 46 --
 .../org/apache/cassandra/gms/VersionedValue.java   |  2 +-
 5 files changed, 51 insertions(+), 4 deletions(-)

diff --cc CHANGES.txt
index 8af3d01ac9,2f31f4a2e2..370971fcea
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -40,10 -10,7 +40,11 @@@ Merged from 4.1
   * Fix hints delivery for a node going down repeatedly (CASSANDRA-19495)
   * Do not go to disk for reading hints file sizes (CASSANDRA-19477)
   * Fix system_views.settings to handle array types (CASSANDRA-19475)
 + * Memoize Cassandra verion and add a backoff interval for failed schema 
pulls (CASSANDRA-18902)
 + * Fix StackOverflowError on ALTER after many previous schema changes 
(CASSANDRA-19166)
  Merged from 4.0:
++ * Add timeout specifically for bootstrapping nodes (CASSANDRA-15439)
 + * Bring Redhat packge dirs/ownership/perms in line with Debian package 
(CASSANDRA-19565)
   * Make nodetool import congruent with the documentation by not relying on 
the folder structure of the imported SSTable files (CASSANDRA-19401)
   * IR may leak SSTables with pending repair when coming from streaming 
(CASSANDRA-19182)
   * Streaming exception race creates corrupt transaction log files that 
prevent restart (CASSANDRA-18736)
diff --cc conf/jvm-server.options
index c50f3631f5,d529a2b9e2..c9a9336683
--- a/conf/jvm-server.options
+++ b/conf/jvm-server.options
@@@ -71,6 -74,10 +71,10 @@@
  # before joining the ring.
  #-Dcassandra.ring_delay_ms=ms
  
+ # Allows overriding the timeout after which an unresponsive bootstrapping 
node is considered failed
 -# and is removed from gossip state and bootstrapTokens. (Default: 
cassandra.ring_delay * 2)
++# and is removed from gossip state and bootstrapTokens. (Default: 
cassandra.ring_delay * 10)
+ #-Dcassandra.failed_bootstrap_timeout_ms=ms
+ 
  # Set the SSL port for encrypted communication. (Default: 7001)
  #-Dcassandra.ssl_storage_port=port
  
diff --cc src/java/org/apache/cassandra/config/CassandraRelevantProperties.java
index e0dfeb19ff,4ee11ec591..336f68838f
--- a/src/java/org/apache/cassandra/config/CassandraRelevantProperties.java
+++ b/src/java/org/apache/cassandra/config/CassandraRelevantProperties.java
@@@ -145,191 -107,92 +145,193 @@@ public enum CassandraRelevantPropertie
   * if there is no port specified, if the port does not have the correct 
numeric format,
   * or if the specified name is empty or null.
   */
 -COM_SUN_MANAGEMENT_JMXREMOTE_RMI_PORT 
("com.sun.management.jmxremote.rmi.port", "0"),
 -
 -/** Cassandra jmx remote and local port */
 -CASSANDRA_JMX_REMOTE_PORT("cassandra.jmx.remote.port"),
 -CASSANDRA_JMX_LOCAL_PORT("cassandra.jmx.local.port"),
 -
 +
COM_SUN_MANAGEMENT_JMXREMOTE_RMI_PORT("com.sun.management.jmxremote.rmi.port", 
"0"),
  /** This property  indicates whether SSL is enabled for monitoring 
remotely. Default is set to false. */
 -COM_SUN_MANAGEMENT_JMXREMOTE_SSL ("com.sun.management.jmxremote.ssl"),
 -
 +COM_SUN_MANAGEMENT_JMXREMOTE_SSL("com.sun.management.jmxremote.ssl"),
  /**
 - * This property indicates whether SSL client authentication is enabled - 
com.sun.management.jmxremote.ssl.need.client.auth.
 - * Default is set to false.
 - */
 -COM_SUN_MANAGEMENT_JMXREMOTE_SSL_NEED_CLIENT_AUTH 
("com.sun.management.jmxremote.ssl.need.client.auth"),
 -
 -/**
 - * This property indicates the location for the access file. If 
com.sun.management.jmxremote.authenticate is false,
 - * then this property and the password and access files, are ignored. 
Otherwise, the access file must exist and
 - * be in the valid format. If the access file is empty or nonexistent, 
then no access is allowed.
 + * A comma-delimited list of SSL/TLS cipher suites to enable.
 + * Used in conjunction with com.sun.management.jmxremote.ssl - 
com.sun.management.jmxremote.ssl.enabled.cipher.suites
   */
 -COM_SUN_MANAGEMENT_JMXREMOTE_ACCESS_FILE 
("com.sun.management.jmxremote.access.file"),
 -
 -/** This property indicates the path to the password file - 
com.sun.management.jmxremote.password.file */
 -COM_SUN_MANAGEMENT_JMXREMOTE_PASSWORD_FILE 
("com.sun.management.jmxremote.password.file"),
 -
 -/** Port number to enable JMX RMI connections - 
com.sun.management.jmxremote.port */
 -COM_SUN_MANAGEMENT_JMXREMOTE_PORT ("com.sun.management.jmxremote.port"),
 +
CO

(cassandra) branch cassandra-4.1 updated (103e9cca1a -> c6017aca77)

2024-05-08 Thread brandonwilliams
This is an automated email from the ASF dual-hosted git repository.

brandonwilliams pushed a change to branch cassandra-4.1
in repository https://gitbox.apache.org/repos/asf/cassandra.git


from 103e9cca1a Merge branch 'cassandra-4.0' into cassandra-4.1
 new 057d082e00 Add option to override the FatClient timeout for 
Bootstrapping nodes
 new c6017aca77 Merge branch 'cassandra-4.0' into cassandra-4.1

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 CHANGES.txt|  1 +
 conf/jvm-server.options|  4 ++
 .../config/CassandraRelevantProperties.java|  2 +
 src/java/org/apache/cassandra/gms/Gossiper.java| 46 --
 .../org/apache/cassandra/gms/VersionedValue.java   |  2 +
 5 files changed, 52 insertions(+), 3 deletions(-)


-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



(cassandra) branch trunk updated (534da538d2 -> 7f4a0f0c00)

2024-05-08 Thread brandonwilliams
This is an automated email from the ASF dual-hosted git repository.

brandonwilliams pushed a change to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra.git


from 534da538d2 Refactor Relation and Restrictions hierachies
 new 057d082e00 Add option to override the FatClient timeout for 
Bootstrapping nodes
 new c6017aca77 Merge branch 'cassandra-4.0' into cassandra-4.1
 new 3b8c48024e Merge branch 'cassandra-4.1' into cassandra-5.0
 new 7f4a0f0c00 Merge branch 'cassandra-5.0' into trunk

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:


-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



(cassandra) 01/01: Merge branch 'cassandra-5.0' into trunk

2024-05-08 Thread brandonwilliams
This is an automated email from the ASF dual-hosted git repository.

brandonwilliams pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra.git

commit 7f4a0f0c00e193018a590a8fc158ded51b411027
Merge: 534da538d2 3b8c48024e
Author: Brandon Williams 
AuthorDate: Wed May 8 10:29:02 2024 -0500

Merge branch 'cassandra-5.0' into trunk



-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



(cassandra) branch cassandra-4.0 updated: Add option to override the FatClient timeout for Bootstrapping nodes

2024-05-08 Thread brandonwilliams
This is an automated email from the ASF dual-hosted git repository.

brandonwilliams pushed a commit to branch cassandra-4.0
in repository https://gitbox.apache.org/repos/asf/cassandra.git


The following commit(s) were added to refs/heads/cassandra-4.0 by this push:
 new 057d082e00 Add option to override the FatClient timeout for 
Bootstrapping nodes
057d082e00 is described below

commit 057d082e00f7d10b8e9b127cfabd9b8cd228da3d
Author: Raymond Huffman 
AuthorDate: Tue Apr 23 16:41:12 2024 -0400

Add option to override the FatClient timeout for Bootstrapping nodes

Patch by Raymond Huffman; reviewed by brandonwilliams and dcapwell for
CASSANDRA-15439
---
 CHANGES.txt|  1 +
 conf/jvm-server.options|  4 ++
 .../config/CassandraRelevantProperties.java|  4 ++
 src/java/org/apache/cassandra/gms/Gossiper.java| 46 --
 .../org/apache/cassandra/gms/VersionedValue.java   |  2 +
 5 files changed, 54 insertions(+), 3 deletions(-)

diff --git a/CHANGES.txt b/CHANGES.txt
index a506c9e9e0..2d56a56c61 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 4.0.14
+ * Add timeout specifically for bootstrapping nodes (CASSANDRA-15439)
  * Bring Redhat packge dirs/ownership/perms in line with Debian package 
(CASSANDRA-19565)
 
 
diff --git a/conf/jvm-server.options b/conf/jvm-server.options
index e89cf7343a..d529a2b9e2 100644
--- a/conf/jvm-server.options
+++ b/conf/jvm-server.options
@@ -74,6 +74,10 @@
 # before joining the ring.
 #-Dcassandra.ring_delay_ms=ms
 
+# Allows overriding the timeout after which an unresponsive bootstrapping node 
is considered failed
+# and is removed from gossip state and bootstrapTokens. (Default: 
cassandra.ring_delay * 2)
+#-Dcassandra.failed_bootstrap_timeout_ms=ms
+
 # Set the SSL port for encrypted communication. (Default: 7001)
 #-Dcassandra.ssl_storage_port=port
 
diff --git 
a/src/java/org/apache/cassandra/config/CassandraRelevantProperties.java 
b/src/java/org/apache/cassandra/config/CassandraRelevantProperties.java
index 4de333e101..0377bc40e2 100644
--- a/src/java/org/apache/cassandra/config/CassandraRelevantProperties.java
+++ b/src/java/org/apache/cassandra/config/CassandraRelevantProperties.java
@@ -151,6 +151,10 @@ public enum CassandraRelevantProperties
 /** mx4jport */
 MX4JPORT ("mx4jport"),
 
+RING_DELAY("cassandra.ring_delay_ms"),
+
+FAILED_BOOTSTRAP_TIMEOUT("cassandra.failed_bootstrap_timeout_ms"),
+
 /**
  * When bootstraping we wait for all schema versions found in gossip to be 
seen, and if not seen in time we fail
  * the bootstrap; this property will avoid failing and allow bootstrap to 
continue if set to true.
diff --git a/src/java/org/apache/cassandra/gms/Gossiper.java 
b/src/java/org/apache/cassandra/gms/Gossiper.java
index 63ff5150a7..009e6b255f 100644
--- a/src/java/org/apache/cassandra/gms/Gossiper.java
+++ b/src/java/org/apache/cassandra/gms/Gossiper.java
@@ -107,6 +107,7 @@ public class Gossiper implements 
IFailureDetectionEventListener, GossiperMBean
 SILENT_SHUTDOWN_STATES.add(VersionedValue.STATUS_BOOTSTRAPPING);
 
SILENT_SHUTDOWN_STATES.add(VersionedValue.STATUS_BOOTSTRAPPING_REPLACE);
 }
+
 private static final List ADMINISTRATIVELY_INACTIVE_STATES = 
Arrays.asList(VersionedValue.HIBERNATE,

VersionedValue.REMOVED_TOKEN,

VersionedValue.STATUS_LEFT);
@@ -126,7 +127,10 @@ public class Gossiper implements 
IFailureDetectionEventListener, GossiperMBean
 
 // Maximimum difference between generation value and local time we are 
willing to accept about a peer
 static final int MAX_GENERATION_DIFFERENCE = 86400 * 365;
-private final long fatClientTimeout;
+
+// half of QUARATINE_DELAY, to ensure justRemovedEndpoints has enough 
leeway to prevent re-gossip
+private static final long FAT_CLIENT_TIMEOUT = (QUARANTINE_DELAY / 2);
+private static final long FAILED_BOOTSTRAP_TIMEOUT = 
getFailedBootstrapTimeout();
 private final Random random = new Random();
 
 /* subscribers for interest in EndpointState change */
@@ -254,6 +258,25 @@ public class Gossiper implements 
IFailureDetectionEventListener, GossiperMBean
 return 259200 * 1000; // 3 days
 }
 
+private static long getFailedBootstrapTimeout()
+{
+String newtimeout = 
CassandraRelevantProperties.FAILED_BOOTSTRAP_TIMEOUT.getString();
+if (newtimeout != null)
+{
+long longValue = Long.parseLong(newtimeout);
+if (longValue == -1)
+{
+longValue = Long.MAX_VALUE;
+}
+logger.info("Overriding FAILED_BOOTSTRAP_TIMEOUT to {}ms", 
longValue);
+return longValue;
+}
+else
+{
+ret

(cassandra-website) branch asf-staging updated (51600acf3 -> ea32cb4df)

2024-05-08 Thread git-site-role
This is an automated email from the ASF dual-hosted git repository.

git-site-role pushed a change to branch asf-staging
in repository https://gitbox.apache.org/repos/asf/cassandra-website.git


omit 51600acf3 generate docs for 96fc3baf
 new ea32cb4df generate docs for 96fc3baf

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (51600acf3)
\
 N -- N -- N   refs/heads/asf-staging (ea32cb4df)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 site-ui/build/ui-bundle.zip | Bin 4883646 -> 4883646 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)


-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-19624) ModificationStatement#casInternal leaks RowIterator

2024-05-08 Thread Michael Marshall (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-19624?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17844683#comment-17844683
 ] 

Michael Marshall commented on CASSANDRA-19624:
--

The bug is as early as 3.0, but I am targeting 4.0. Please let me know if we 
should change that.

> ModificationStatement#casInternal leaks RowIterator
> ---
>
> Key: CASSANDRA-19624
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19624
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Michael Marshall
>Assignee: Michael Marshall
>Priority: Normal
>  Time Spent: 40m
>  Remaining Estimate: 0h
>
> In the `ModificationStatement` class, the `casInternal` method opens a row 
> iterator without closing it, causing the iterator to leak resources. Here is 
> a link to the relevant code in the `trunk` branch.
> [https://github.com/apache/cassandra/blob/a77a2d10b1d247ed920b75df79f982a3b7c6a431/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java#L680-L684]
>  
> It seems that `cassandra-3.0.30` has the bug, but `cassandra-2.2.19` does not 
> have it. Is it correct to target `cassandra-3.0.30`?
> What is the best practice for testing this kind of bug fix? It seems like a 
> low complexity fix. This is my first contribution to the Cassandra community, 
> so any guidance is appreciated. Thanks!



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-19624) ModificationStatement#casInternal leaks RowIterator

2024-05-08 Thread Jacek Lewandowski (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-19624?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jacek Lewandowski updated CASSANDRA-19624:
--
Reviewers: Jacek Lewandowski

> ModificationStatement#casInternal leaks RowIterator
> ---
>
> Key: CASSANDRA-19624
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19624
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Michael Marshall
>Assignee: Michael Marshall
>Priority: Normal
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> In the `ModificationStatement` class, the `casInternal` method opens a row 
> iterator without closing it, causing the iterator to leak resources. Here is 
> a link to the relevant code in the `trunk` branch.
> [https://github.com/apache/cassandra/blob/a77a2d10b1d247ed920b75df79f982a3b7c6a431/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java#L680-L684]
>  
> It seems that `cassandra-3.0.30` has the bug, but `cassandra-2.2.19` does not 
> have it. Is it correct to target `cassandra-3.0.30`?
> What is the best practice for testing this kind of bug fix? It seems like a 
> low complexity fix. This is my first contribution to the Cassandra community, 
> so any guidance is appreciated. Thanks!



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Created] (CASSANDRA-19624) ModificationStatement#casInternal leaks RowIterator

2024-05-08 Thread Michael Marshall (Jira)
Michael Marshall created CASSANDRA-19624:


 Summary: ModificationStatement#casInternal leaks RowIterator
 Key: CASSANDRA-19624
 URL: https://issues.apache.org/jira/browse/CASSANDRA-19624
 Project: Cassandra
  Issue Type: Bug
Reporter: Michael Marshall
Assignee: Michael Marshall


In the `ModificationStatement` class, the `casInternal` method opens a row 
iterator without closing it, causing the iterator to leak resources. Here is a 
link to the relevant code in the `trunk` branch.

[https://github.com/apache/cassandra/blob/a77a2d10b1d247ed920b75df79f982a3b7c6a431/src/java/org/apache/cassandra/cql3/statements/ModificationStatement.java#L680-L684]

 

It seems that `cassandra-3.0.30` has the bug, but `cassandra-2.2.19` does not 
have it. Is it correct to target `cassandra-3.0.30`?

What is the best practice for testing this kind of bug fix? It seems like a low 
complexity fix. This is my first contribution to the Cassandra community, so 
any guidance is appreciated. Thanks!



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



(cassandra-website) branch asf-site updated (690a3a5d6 -> 51600acf3)

2024-05-08 Thread mck
This is an automated email from the ASF dual-hosted git repository.

mck pushed a change to branch asf-site
in repository https://gitbox.apache.org/repos/asf/cassandra-website.git


 discard 690a3a5d6 generate docs for cc1c7113
 add 3b8cf04d9 fix: remove the paragraph tag from "ecosystem.adoc"
 add 96fc3bafa Add the link to the KEYS file on the downloads page, per ASF 
policy
 add 51600acf3 generate docs for 96fc3baf

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (690a3a5d6)
\
 N -- N -- N   refs/heads/asf-site (51600acf3)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

No new revisions were added by this update.

Summary of changes:
 content/_/download.html|   1 +
 content/_/ecosystem.html   |   2 +-
 .../managing/tools/nodetool/bootstrap.html |   6 +-
 .../5.1/cassandra/managing/tools/nodetool/cms.html |  59 +++-
 .../managing/tools/nodetool/nodetool.html  |   8 +--
 .../managing/tools/nodetool/repair_admin.html  |  62 ++---
 .../managing/tools/nodetool/bootstrap.html |   6 +-
 .../cassandra/managing/tools/nodetool/cms.html |  59 +++-
 .../managing/tools/nodetool/nodetool.html  |   8 +--
 .../managing/tools/nodetool/repair_admin.html  |  62 ++---
 content/search-index.js|   2 +-
 .../source/modules/ROOT/pages/download.adoc|   2 +
 .../source/modules/ROOT/pages/ecosystem.adoc   |   2 +-
 site-ui/build/ui-bundle.zip| Bin 4883646 -> 4883646 
bytes
 14 files changed, 146 insertions(+), 133 deletions(-)


-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-19158) Reuse native transport-driven futures in Debounce

2024-05-08 Thread Sam Tunnicliffe (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-19158?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sam Tunnicliffe updated CASSANDRA-19158:

Status: Review In Progress  (was: Patch Available)

> Reuse native transport-driven futures in Debounce
> -
>
> Key: CASSANDRA-19158
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19158
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Transactional Cluster Metadata
>Reporter: Alex Petrov
>Assignee: Alex Petrov
>Priority: Normal
> Attachments: ci_summary.html
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Currently, we create a future in Debounce, then create one more future in 
> RemoteProcessor#sendWithCallback. This is further exacerbated by chaining 
> calls, when we first attempt to catch up from peer, and then from CMS.
> First of all, we should always only use a native transport timeout driven 
> futures returned from sendWithCallback, since they implement reasonable 
> retries under the hood, and are easy to bulk-configure (ie you can simply 
> change timeout in yaml and have all futures change their behaviour).
> Second, we should _chain_ futures and use map or andThen for fallback 
> operations such as trying to catch up from CMS after an unsuccesful attemp to 
> catch up from peer.
> This should significantly simplify the code and number of blocked/waiting 
> threads.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-19158) Reuse native transport-driven futures in Debounce

2024-05-08 Thread Sam Tunnicliffe (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-19158?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sam Tunnicliffe updated CASSANDRA-19158:

Test and Documentation Plan: Refactoring, CI tests
 Status: Patch Available  (was: Open)

> Reuse native transport-driven futures in Debounce
> -
>
> Key: CASSANDRA-19158
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19158
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Transactional Cluster Metadata
>Reporter: Alex Petrov
>Assignee: Alex Petrov
>Priority: Normal
> Attachments: ci_summary.html
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Currently, we create a future in Debounce, then create one more future in 
> RemoteProcessor#sendWithCallback. This is further exacerbated by chaining 
> calls, when we first attempt to catch up from peer, and then from CMS.
> First of all, we should always only use a native transport timeout driven 
> futures returned from sendWithCallback, since they implement reasonable 
> retries under the hood, and are easy to bulk-configure (ie you can simply 
> change timeout in yaml and have all futures change their behaviour).
> Second, we should _chain_ futures and use map or andThen for fallback 
> operations such as trying to catch up from CMS after an unsuccesful attemp to 
> catch up from peer.
> This should significantly simplify the code and number of blocked/waiting 
> threads.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



(cassandra-website) branch asf-staging updated (fe1482063 -> 51600acf3)

2024-05-08 Thread git-site-role
This is an automated email from the ASF dual-hosted git repository.

git-site-role pushed a change to branch asf-staging
in repository https://gitbox.apache.org/repos/asf/cassandra-website.git


 discard fe1482063 generate docs for 3b8cf04d
 add 96fc3bafa Add the link to the KEYS file on the downloads page, per ASF 
policy
 new 51600acf3 generate docs for 96fc3baf

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (fe1482063)
\
 N -- N -- N   refs/heads/asf-staging (51600acf3)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 content/_/download.html|   1 +
 content/search-index.js|   2 +-
 .../source/modules/ROOT/pages/download.adoc|   2 ++
 site-ui/build/ui-bundle.zip| Bin 4883646 -> 4883646 
bytes
 4 files changed, 4 insertions(+), 1 deletion(-)


-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-19158) Reuse native transport-driven futures in Debounce

2024-05-08 Thread Sam Tunnicliffe (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-19158?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sam Tunnicliffe updated CASSANDRA-19158:

Change Category: Code Clarity
 Complexity: Normal
Component/s: Transactional Cluster Metadata
  Reviewers: Sam Tunnicliffe
 Status: Open  (was: Triage Needed)

> Reuse native transport-driven futures in Debounce
> -
>
> Key: CASSANDRA-19158
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19158
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Transactional Cluster Metadata
>Reporter: Alex Petrov
>Assignee: Alex Petrov
>Priority: Normal
> Attachments: ci_summary.html
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Currently, we create a future in Debounce, then create one more future in 
> RemoteProcessor#sendWithCallback. This is further exacerbated by chaining 
> calls, when we first attempt to catch up from peer, and then from CMS.
> First of all, we should always only use a native transport timeout driven 
> futures returned from sendWithCallback, since they implement reasonable 
> retries under the hood, and are easy to bulk-configure (ie you can simply 
> change timeout in yaml and have all futures change their behaviour).
> Second, we should _chain_ futures and use map or andThen for fallback 
> operations such as trying to catch up from CMS after an unsuccesful attemp to 
> catch up from peer.
> This should significantly simplify the code and number of blocked/waiting 
> threads.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



Re: [PR] JAVA-3118: Add support for vector data type in Schema Builder, QueryBuilder [cassandra-java-driver]

2024-05-08 Thread via GitHub


michaelsembwever commented on PR #1931:
URL: 
https://github.com/apache/cassandra-java-driver/pull/1931#issuecomment-2100603793

   what's the CASSANDRA ticket for this ? 
   
   i will test this downstream here: 
- 
https://github.com/spring-projects/spring-ai/blob/main/vector-stores/spring-ai-cassandra/src/main/java/org/springframework/ai/vectorstore/CassandraVectorStoreConfig.java#L551-L568
- 
https://github.com/spring-projects/spring-ai/blob/main/vector-stores/spring-ai-cassandra/src/main/java/org/springframework/ai/vectorstore/CassandraVectorStoreConfig.java#L502-L512
- 
https://github.com/spring-projects/spring-ai/blob/main/vector-stores/spring-ai-cassandra/src/main/java/org/springframework/ai/vectorstore/CassandraVectorStore.java#L342-L345


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



(cassandra-website) branch trunk updated: Add the link to the KEYS file on the downloads page, per ASF policy

2024-05-08 Thread mck
This is an automated email from the ASF dual-hosted git repository.

mck pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra-website.git


The following commit(s) were added to refs/heads/trunk by this push:
 new 96fc3bafa Add the link to the KEYS file on the downloads page, per ASF 
policy
96fc3bafa is described below

commit 96fc3bafa2ee23a248e2904859a1a9554f0ffb01
Author: mck 
AuthorDate: Wed May 8 15:26:23 2024 +0200

Add the link to the KEYS file on the downloads page, per ASF policy

https://infra.apache.org/release-download-pages.html
---
 site-content/source/modules/ROOT/pages/download.adoc | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/site-content/source/modules/ROOT/pages/download.adoc 
b/site-content/source/modules/ROOT/pages/download.adoc
index 613d3f27e..79385f7c3 100644
--- a/site-content/source/modules/ROOT/pages/download.adoc
+++ b/site-content/source/modules/ROOT/pages/download.adoc
@@ -120,6 +120,8 @@ 
https://www.apache.org/dyn/closer.lua/cassandra/3.0.30/apache-cassandra-3.0.30-b
  Unmaintained older versions of Cassandra are archived 
https://archive.apache.org/dist/cassandra/[here,window=_blank].
 [discrete]
  CVE fixes may be applied to unmaintained versions as decided on a 
case-by-case basis.
+[discrete]
+ The PGP keys used to sign releases are available in this 
https://downloads.apache.org/cassandra/KEYS[KEYS,window=_blank] file.
 --
 
 


-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-19621) Test failure: gossip_test.TestGossip::test_2dc_parallel_startup

2024-05-08 Thread Brandon Williams (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-19621?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brandon Williams updated CASSANDRA-19621:
-
Description: 
As seen at 
https://app.circleci.com/pipelines/github/driftx/cassandra/1625/workflows/d3849d2a-987e-49f8-9f4b-916c7ce85279/jobs/88756/tests:

{quote}
failed on teardown with "Unexpected error found in node logs (see stdout for 
full details). Errors: [[node4] 'ERROR [Messaging-EventLoop-3-3] 2024-05-07 
20:10:54,261 NoSpamLogger.java:110 - 
/127.0.0.4:7004->/127.0.0.1:7001-URGENT_MESSAGES-[no-channel] failed to 
connect\njava.nio.channels.ClosedChannelException: null\n\tat 
org.apache.cassandra.net.OutboundConnectionInitiator$Handler.channelInactive(OutboundConnectionInitiator.java:322)\n\tat
 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:305)\n\tat
 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:281)\n\tat
 
io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:274)\n\tat
 
io.netty.handler.codec.ByteToMessageDecoder.channelInputClosed(ByteToMessageDecoder.java:411)\n\tat
 
io.netty.handler.codec.ByteToMessageDecoder.channelInactive(ByteToMessageDecoder.java:376)\n\tat
 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:305)\n\tat
 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:281)\n\tat
 
io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:274)\n\tat
 
io.netty.channel.DefaultChannelPipeline$HeadContext.channelInactive(DefaultChannelPipeline.java:1405)\n\tat
 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:301)\n\tat
 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:281)\n\tat
 
io.netty.channel.DefaultChannelPipeline.fireChannelInactive(DefaultChannelPipeline.java:901)\n\tat
 
io.netty.channel.AbstractChannel$AbstractUnsafe$7.run(AbstractChannel.java:813)\n\tat
 
io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)\n\tat
 
io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)\n\tat
 
io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)\n\tat
 io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:413)\n\tat 
io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n\tat
 
io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n\tat 
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)\n\tat
 java.base/java.lang.Thread.run(Thread.java:833)']"
{quote}

  was:
As seen at 
https://app.circleci.com/pipelines/github/driftx/cassandra/1625/workflows/d3849d2a-987e-49f8-9f4b-916c7ce85279/jobs/88756/tests:

{noformat}
failed on teardown with "Unexpected error found in node logs (see stdout for 
full details). Errors: [[node4] 'ERROR [Messaging-EventLoop-3-3] 2024-05-07 
20:10:54,261 NoSpamLogger.java:110 - 
/127.0.0.4:7004->/127.0.0.1:7001-URGENT_MESSAGES-[no-channel] failed to 
connect\njava.nio.channels.ClosedChannelException: null\n\tat 
org.apache.cassandra.net.OutboundConnectionInitiator$Handler.channelInactive(OutboundConnectionInitiator.java:322)\n\tat
 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:305)\n\tat
 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:281)\n\tat
 
io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:274)\n\tat
 
io.netty.handler.codec.ByteToMessageDecoder.channelInputClosed(ByteToMessageDecoder.java:411)\n\tat
 
io.netty.handler.codec.ByteToMessageDecoder.channelInactive(ByteToMessageDecoder.java:376)\n\tat
 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:305)\n\tat
 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:281)\n\tat
 
io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:274)\n\tat
 
io.netty.channel.DefaultChannelPipeline$HeadContext.channelInactive(DefaultChannelPipeline.java:1405)\n\tat
 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:301)\n\tat
 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:281)\n\tat
 
io.netty.channel.DefaultChannelPipeline.fireChannelInactive(DefaultChannelPipeline.java:901)\n\tat
 
io.netty.channel.AbstractChannel$AbstractUnsafe$7.run(AbstractCh

[jira] [Updated] (CASSANDRA-19623) Read fail with "illegal RT bounds sequence" after migrating data from 2.2.19 to 3.0.30

2024-05-08 Thread Brandon Williams (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-19623?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brandon Williams updated CASSANDRA-19623:
-
 Bug Category: Parent values: Availability(12983)Level 1 values: 
Unavailable(12994)
   Complexity: Normal
Discovered By: User Report
Fix Version/s: 3.0.x
 Severity: Normal
   Status: Open  (was: Triage Needed)

> Read fail with "illegal RT bounds sequence" after migrating data from 2.2.19 
> to 3.0.30
> --
>
> Key: CASSANDRA-19623
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19623
> Project: Cassandra
>  Issue Type: Bug
>  Components: Legacy/Local Write-Read Paths
>Reporter: Klay
>Priority: Normal
> Fix For: 3.0.x
>
> Attachments: cassandra.yaml, data.tar.gz, system.log
>
>
> After migrating data from 2.2.19 to 3.0.30, reading the legacy data in 3.0.30 
> would fail with the following exception.
> {code:java}
> INFO  [main] 2024-05-08 00:42:42,397 CassandraDaemon.java:653 - Startup 
> complete
> ERROR [SharedPool-Worker-2] 2024-05-08 00:42:49,975 
> AbstractLocalAwareExecutorService.java:166 - Uncaught exception on thread 
> Thread[SharedPool-Worker-2,10,main]
> java.lang.RuntimeException: java.lang.IllegalStateException: SSTABLE 
> UnfilteredRowIterator for ks.tb has an illegal RT bounds sequence: unexpected 
> end bound or boundary Marker INCL_START_BOUND(1)@1715128933051779/1715128933
>         at 
> org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2656)
>         at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>         at 
> org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:162)
>         at 
> org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$LocalSessionFutureTask.run(AbstractLocalAwareExecutorService.java:134)
>         at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:109)
>         at java.lang.Thread.run(Thread.java:750)
> Caused by: java.lang.IllegalStateException: SSTABLE UnfilteredRowIterator for 
> ks.tb has an illegal RT bounds sequence: unexpected end bound or boundary 
> Marker INCL_START_BOUND(1)@1715128933051779/1715128933
>         at 
> org.apache.cassandra.db.transform.RTBoundValidator$RowsTransformation.ise(RTBoundValidator.java:120)
>         at 
> org.apache.cassandra.db.transform.RTBoundValidator$RowsTransformation.applyToMarker(RTBoundValidator.java:87)
>         at 
> org.apache.cassandra.db.transform.BaseRows.hasNext(BaseRows.java:144)
>         at 
> org.apache.cassandra.db.transform.BaseRows.hasNext(BaseRows.java:129)
>         at 
> org.apache.cassandra.db.rows.UnfilteredRowIteratorSerializer.serialize(UnfilteredRowIteratorSerializer.java:131)
>         at 
> org.apache.cassandra.db.rows.UnfilteredRowIteratorSerializer.serialize(UnfilteredRowIteratorSerializer.java:87)
>         at 
> org.apache.cassandra.db.rows.UnfilteredRowIteratorSerializer.serialize(UnfilteredRowIteratorSerializer.java:77)
>         at 
> org.apache.cassandra.db.partitions.UnfilteredPartitionIterators$Serializer.serialize(UnfilteredPartitionIterators.java:297)
>         at 
> org.apache.cassandra.db.ReadResponse$LocalDataResponse.build(ReadResponse.java:187)
>         at 
> org.apache.cassandra.db.ReadResponse$LocalDataResponse.(ReadResponse.java:180)
>         at 
> org.apache.cassandra.db.ReadResponse$LocalDataResponse.(ReadResponse.java:176)
>         at 
> org.apache.cassandra.db.ReadResponse.createDataResponse(ReadResponse.java:76)
>         at 
> org.apache.cassandra.db.ReadCommand.createResponse(ReadCommand.java:347)
>         at 
> org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:1914)
>         at 
> org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2652)
>         ... 5 common frames omitted {code}
> h1. Reproduce
> 1. Start up cassandra-2.2.19, single node. Set column_index_size_in_kb in 
> cassandra.yaml to 1.
> {code:java}
> // cassandra.yaml
> column_index_size_in_kb: 1 {code}
> 2. Execute the following commands (I masked out all data in the INSERT 
> command using a long string of 'A' to make it simpler)
> {code:java}
> CREATE KEYSPACE  ks WITH REPLICATION = { 'class' : 'SimpleStrategy', 
> 'replication_factor' : 1 };
> CREATE TABLE  ks.tb (c3 INT, c7 INT, c0 TEXT,c6 set, PRIMARY KEY (c3, 
> c7, c0));DELETE FROM ks.tb WHERE c3 = 1 AND c7 = 1;
> DELETE FROM ks.tb WHERE c3 = 1 AND c7 = 1 AND c0 = 'e';INSERT INTO ks.tb (c7, 
> c3, c6, c0) VALUES 
> (1,1,{'AA

[jira] [Updated] (CASSANDRA-19429) Remove lock contention generated by getCapacity function in SSTableReader

2024-05-08 Thread Stefan Miklosovic (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-19429?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Miklosovic updated CASSANDRA-19429:
--
Status: Needs Committer  (was: Patch Available)

> Remove lock contention generated by getCapacity function in SSTableReader
> -
>
> Key: CASSANDRA-19429
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19429
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/SSTable
>Reporter: Dipietro Salvatore
>Assignee: Dipietro Salvatore
>Priority: Normal
> Fix For: 4.0.x, 4.1.x
>
> Attachments: Screenshot 2024-02-26 at 10.27.10.png, Screenshot 
> 2024-02-27 at 11.29.41.png, Screenshot 2024-03-19 at 15.22.50.png, 
> asprof_cass4.1.3__lock_20240216052912lock.html, 
> image-2024-03-08-15-51-30-439.png, image-2024-03-08-15-52-07-902.png
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> Profiling Cassandra 4.1.3 on large AWS instances, a high number of lock 
> acquires is measured in the `getCapacity` function from 
> `org/apache/cassandra/cache/InstrumentingCache` (1.9M lock acquires per 60 
> seconds). Based on our tests on r8g.24xlarge instances (using Ubuntu 22.04), 
> this limits the CPU utilization of the system to under 50% when testing at 
> full load and therefore limits the achieved throughput.
> Removing the lock contention from the SSTableReader.java file by replacing 
> the call to `getCapacity` with `size` achieves up to 2.95x increase in 
> throughput on r8g.24xlarge and 2x on r7i.24xlarge:
> |Instance type|Cass 4.1.3|Cass 4.1.3 patched|
> |r8g.24xlarge|168k ops|496k ops (2.95x)|
> |r7i.24xlarge|153k ops|304k ops (1.98x)|
>  
> Instructions to reproduce:
> {code:java}
> ## Requirements for Ubuntu 22.04
> sudo apt install -y ant git openjdk-11-jdk
> ## Build and run
> CASSANDRA_USE_JDK11=true ant realclean && CASSANDRA_USE_JDK11=true ant jar && 
> CASSANDRA_USE_JDK11=true ant stress-build  && rm -rf data && bin/cassandra -f 
> -R
> # Run
> bin/cqlsh -e 'drop table if exists keyspace1.standard1;' && \
> bin/cqlsh -e 'drop keyspace if exists keyspace1;' && \
> bin/nodetool clearsnapshot --all && tools/bin/cassandra-stress write 
> n=1000 cl=ONE -rate threads=384 -node 127.0.0.1 -log file=cload.log 
> -graph file=cload.html && \
> bin/nodetool compact keyspace1   && sleep 30s && \
> tools/bin/cassandra-stress mixed ratio\(write=10,read=90\) duration=10m 
> cl=ONE -rate threads=406 -node localhost -log file=result.log -graph 
> file=graph.html
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-17354) Bump java-driver dependency in Cassandra to latest 3.x series

2024-05-08 Thread Alex Petrov (Jira)


 [ 
https://issues.apache.org/jira/browse/CASSANDRA-17354?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alex Petrov updated CASSANDRA-17354:

Resolution: Won't Fix
Status: Resolved  (was: Open)

As per Abe's message

> Bump java-driver dependency in Cassandra to latest 3.x series 
> --
>
> Key: CASSANDRA-17354
> URL: https://issues.apache.org/jira/browse/CASSANDRA-17354
> Project: Cassandra
>  Issue Type: Task
>  Components: Test/unit
>Reporter: Alex Petrov
>Priority: High
> Fix For: 5.x
>
>
> We depend on java-driver for testing, and developing/validating native 
> protocol changes. Unfortunately, the version of drvier that is  included with 
> Cassandra is quite ancient: 3.0.1. We need to bump this dependency to latest 
> in 3.x series, without upgrading to 4.0 at least for now. Unfortunately, this 
> is not a trivial change in build.xml (otherwise I would’ve done it rather 
> than opening this ticket), and bumping version breaks a few tests in all 
> versions, so those need to be fixed, too. 
> This should be a prerequiste for the next minor version release, too.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org