[jira] [Commented] (CASSANDRA-17445) Library airlift/airline has been deprecated

2024-07-29 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe commented on CASSANDRA-17445:
-

I'm still looking through the patch/PR and making comments, but a word on 
delivery...

I think what we should deliver as a first artifact here (i.e. literally commit 
to trunk) is a single commit w/ a minimal viable airline -> pico replacement 
(ex. directly use {{NodeProbe}} in the new commands). That obviously should go 
along w/ parity testing for old/new help output and verification that Python 
and in-JVM dtest usage of nodetool still works, etc.

Where did we land on the dev list around testing existing command output?

> Library airlift/airline has been deprecated
> ---
>
> Key: CASSANDRA-17445
> URL: https://issues.apache.org/jira/browse/CASSANDRA-17445
> Project: Cassandra
>  Issue Type: Task
>  Components: Dependencies
>Reporter: Tibor Repasi
>Assignee: Maxim Muzafarov
>Priority: Normal
> Fix For: 5.x
>
>  Time Spent: 1h 40m
>  Remaining Estimate: 0h
>
> The [airlift/airline|https://github.com/airlift/airline] library has been 
> deprecated and is not maintained since [8 Jun 
> 2021|https://github.com/airlift/airline/commit/ae3d7e103bdc140969bde944d4ba09345d663a61].
>  It is used in many tools and some tests of Cassandra which should be 
> reviewed.
> Tools using that library:
> * org.apache.cassandra.tools.JMXTool
> * org.apache.cassandra.tools.NodeTool
> * org.apache.cassandra.stress.Compaction
> * org.apache.cassandra.fqltool.FullQueryLogTool
> Tests using it:
> * org.apache.cassandra.simulator.SimulationRunner
> Alternatives (as suggested in the depreciation notice):
> * [Airline 2|https://rvesse.github.io/airline/]
> * [picocli|https://picocli.info]



--
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] [Assigned] (CASSANDRA-19766) Optionally disable cqlsh HISTORY command via env variable

2024-07-29 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe reassigned CASSANDRA-19766:
---

Assignee: (was: Caleb Rackliffe)

> Optionally disable cqlsh HISTORY command via env variable
> -
>
> Key: CASSANDRA-19766
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19766
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Tool/cqlsh
>Reporter: Caleb Rackliffe
>Priority: Normal
> Fix For: 5.0.x, 5.x
>
>
> There may be cases where we’d like to disable the saving and display of the 
> history of {{cqlsh}} commands executed. This should be fairly straightforward 
> to do via an environment variable.



--
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-18839) Catch SSLHandshakeExceptions exceptions

2024-07-29 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe commented on CASSANDRA-18839:
-

Is this ready to commit?

> Catch SSLHandshakeExceptions exceptions
> ---
>
> Key: CASSANDRA-18839
> URL: https://issues.apache.org/jira/browse/CASSANDRA-18839
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Messaging/Client
>Reporter: Brad Schoening
>Assignee: James Hu
>Priority: Low
> Fix For: 4.0.x, 4.1.x, 5.0.x, 5.x
>
>  Time Spent: 4h
>  Remaining Estimate: 0h
>
> When SSL connection errors occur, they tend to flood the log with stack 
> traces and lack the identity of the remote client IP.  Instead, 
> PreV5Handlers.decode() could catch SSLHandshakeException and provide a brief, 
> more informative WARN level message instead of the verbose and mostly 
> unhelpful stack trace.
> I.e., 
> {code:java}
> [WARN ] [epollEventLoopGroup-5-5] cluster_id=3 ip_address=10.0.0.1  
> PreV5Handlers.java:261 - SSLHandshakeException in client networking with peer 
> 10.0.0.10:9042 error:10d7:SSL 
> routines:OPENSSL_internal:SSL_HANDSHAKE_FAILURE {code}
> instead of the current ones which flood the logs:
> {code:java}
> 2023-09-12 00:00:25,368 [WARN ] [epollEventLoopGroup-5-5] cluster_id=3 
> ip_address=10.0.0.1  PreV5Handlers.java:261 - Unknown exception in client 
> networking
> io.netty.handler.codec.DecoderException: javax.net.ssl.SSLHandshakeException: 
> error:10d7:SSL routines:OPENSSL_internal:SSL_HANDSHAKE_FAILURE
>     at 
> io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:478)
>     at 
> io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276)
>     at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
>     at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
>     at 
> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
>     at 
> io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
>     at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
>     at 
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
>     at 
> io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
>     at 
> io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:795)
>     at 
> io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:480)
>     at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378)
>     at 
> io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
>     at 
> io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
>     at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
>     at java.base/java.lang.Thread.run(Thread.java:834)
> Caused by: javax.net.ssl.SSLHandshakeException: error:10d7:SSL 
> routines:OPENSSL_internal:SSL_HANDSHAKE_FAILURE
>     at 
> io.netty.handler.ssl.ReferenceCountedOpenSslEngine.shutdownWithError(ReferenceCountedOpenSslEngine.java:1031)
>     at 
> io.netty.handler.ssl.ReferenceCountedOpenSslEngine.sslReadErrorResult(ReferenceCountedOpenSslEngine.java:1321)
>     at 
> io.netty.handler.ssl.ReferenceCountedOpenSslEngine.unwrap(ReferenceCountedOpenSslEngine.java:1270)
>     at 
> io.netty.handler.ssl.ReferenceCountedOpenSslEngine.unwrap(ReferenceCountedOpenSslEngine.java:1346)
>     at 
> io.netty.handler.ssl.ReferenceCountedOpenSslEngine.unwrap(ReferenceCountedOpenSslEngine.java:1389)
>     at 
> io.netty.handler.ssl.SslHandler$SslEngineType$1.unwrap(SslHandler.java:206)
>     at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1387)
>     at 
> io.netty.handler.ssl.SslHandler.decodeNonJdkCompatible(SslHandler.java:1294)
>     at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1331)
>     at 
> io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:508)
>     at 
> io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:447)
>     ... 15 common frames omitted {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] [Commented] (CASSANDRA-19794) NPE on Directory access during Memtable flush fails ShortPaxosSimulationTest

2024-07-29 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe commented on CASSANDRA-19794:
-

CC [~marcuse]

> NPE on Directory access during Memtable flush fails ShortPaxosSimulationTest
> 
>
> Key: CASSANDRA-19794
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19794
> Project: Cassandra
>  Issue Type: Bug
>  Components: Test/burn, Transactional Cluster Metadata
>Reporter: Caleb Rackliffe
>Assignee: Alex Petrov
>Priority: Normal
> Fix For: 5.x
>
>
> Run {{ShortPaxosSimulationTest}} w/ the following arguments on trunk:
> {noformat}
> PaxosSimulationRunner.main(new String[] { "run", "-n", "3..6", "-t", "1000", 
> "-c", "2", "--cluster-action-limit", "2", "-s", "30", "--seed", 
> "0xe0247e19a75e3bba" });
> {noformat}
> You should see a failure, starting with...
> {noformat}
> [junit-timeout] WARN  [OptionalTasks:1] node5 2024-07-22 15:46:00,210 
> LegacyStateListener.java:158 - Token -6148914691236517205 changing ownership 
> from /127.0.0.1:7012 to /127.0.0.6:7012
> [junit-timeout] WARN  [OptionalTasks:1] node6 2024-07-22 15:46:00,259 
> SystemKeyspace.java:1287 - Using stored Gossip Generation 1577894856 as it is 
> greater than current system time 1577894855.  See CASSANDRA-3654 if you 
> experience problems
> [junit-timeout] WARN  [OptionalTasks:1] node6 2024-07-22 15:46:00,277 
> LegacyStateListener.java:158 - Token -6148914691236517205 changing ownership 
> from /127.0.0.1:7012 to /127.0.0.6:7012
> [junit-timeout] ERROR [isolatedExecutor:3] node6 2024-07-22 15:46:00,469 
> ReconfigureCMS.java:184 - Could not finish adding the node to the Cluster 
> Metadata Service
> [junit-timeout] java.lang.IllegalStateException: Can not commit 
> transformation: "SERVER_ERROR"(class java.lang.NullPointerException).
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.lambda$commit$6(ClusterMetadataService.java:491)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.commit(ClusterMetadataService.java:535)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.commit(ClusterMetadataService.java:488)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.ReconfigureCMS.executeNext(ReconfigureCMS.java:179)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.InProgressSequences.resume(InProgressSequences.java:200)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.InProgressSequences.finishInProgressSequences(InProgressSequences.java:72)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.reconfigureCMS(ClusterMetadataService.java:372)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.ensureCMSPlacement(ClusterMetadataService.java:379)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.BootstrapAndReplace.executeNext(BootstrapAndReplace.java:274)
> [junit-timeout]   at 
> org.apache.cassandra.simulator.cluster.OnClusterReplace$ExecuteNextStep.lambda$new$f5e64c00$1(OnClusterReplace.java:162)
> [junit-timeout]   at 
> org.apache.cassandra.distributed.api.IInvokableInstance.unsafeRunOnThisThread(IInvokableInstance.java:85)
> [junit-timeout]   at 
> org.apache.cassandra.simulator.systems.SimulatedActionTask.lambda$asSafeRunnable$0(SimulatedActionTask.java:83)
> [junit-timeout]   at 
> org.apache.cassandra.simulator.systems.SimulatedActionTask$1.run(SimulatedActionTask.java:93)
> [junit-timeout]   at 
> org.apache.cassandra.simulator.systems.InterceptingExecutor$InterceptingPooledExecutor$WaitingThread.lambda$new$1(InterceptingExecutor.java:318)
> [junit-timeout]   at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
> [junit-timeout]   at java.base/java.lang.Thread.run(Thread.java:829)
> {noformat}
> ...and underneath that...
> {noformat}
> [junit-timeout] Thread[ScheduledTasks:1,5,node3]
> [junit-timeout] java.lang.NullPointerException
> [junit-timeout]   at 
> org.apache.cassandra.utils.btree.AbstractBTreeMap.get(AbstractBTreeMap.java:92)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.membership.Directory.endpoint(Directory.java:312)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.transformations.cms.AdvanceCMSReconfiguration.executeRemove(AdvanceCMSReconfiguration.java:242)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.transformations.cms.AdvanceCMSReconfiguration.execute(AdvanceCMSReconfiguration.java:123)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.ReconfigureCMS.applyTo(ReconfigureCMS.java:149)
> [junit-timeout]   at 
> 

[jira] [Commented] (CASSANDRA-19794) NPE on Directory access during Memtable flush fails ShortPaxosSimulationTest

2024-07-29 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe commented on CASSANDRA-19794:
-

+1

Had a quick offline conversation w/ Alex, and the only changes to the PR will 
be adding some guardrails to {{PrepareReplace}} and {{PrepareLeave}} to make 
sure addresses are removed from the CMS first, so there isn't a mismatch 
between the directory and {{fullCMSEndpoints}} before they actually run.

> NPE on Directory access during Memtable flush fails ShortPaxosSimulationTest
> 
>
> Key: CASSANDRA-19794
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19794
> Project: Cassandra
>  Issue Type: Bug
>  Components: Test/burn, Transactional Cluster Metadata
>Reporter: Caleb Rackliffe
>Assignee: Alex Petrov
>Priority: Normal
> Fix For: 5.x
>
>
> Run {{ShortPaxosSimulationTest}} w/ the following arguments on trunk:
> {noformat}
> PaxosSimulationRunner.main(new String[] { "run", "-n", "3..6", "-t", "1000", 
> "-c", "2", "--cluster-action-limit", "2", "-s", "30", "--seed", 
> "0xe0247e19a75e3bba" });
> {noformat}
> You should see a failure, starting with...
> {noformat}
> [junit-timeout] WARN  [OptionalTasks:1] node5 2024-07-22 15:46:00,210 
> LegacyStateListener.java:158 - Token -6148914691236517205 changing ownership 
> from /127.0.0.1:7012 to /127.0.0.6:7012
> [junit-timeout] WARN  [OptionalTasks:1] node6 2024-07-22 15:46:00,259 
> SystemKeyspace.java:1287 - Using stored Gossip Generation 1577894856 as it is 
> greater than current system time 1577894855.  See CASSANDRA-3654 if you 
> experience problems
> [junit-timeout] WARN  [OptionalTasks:1] node6 2024-07-22 15:46:00,277 
> LegacyStateListener.java:158 - Token -6148914691236517205 changing ownership 
> from /127.0.0.1:7012 to /127.0.0.6:7012
> [junit-timeout] ERROR [isolatedExecutor:3] node6 2024-07-22 15:46:00,469 
> ReconfigureCMS.java:184 - Could not finish adding the node to the Cluster 
> Metadata Service
> [junit-timeout] java.lang.IllegalStateException: Can not commit 
> transformation: "SERVER_ERROR"(class java.lang.NullPointerException).
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.lambda$commit$6(ClusterMetadataService.java:491)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.commit(ClusterMetadataService.java:535)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.commit(ClusterMetadataService.java:488)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.ReconfigureCMS.executeNext(ReconfigureCMS.java:179)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.InProgressSequences.resume(InProgressSequences.java:200)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.InProgressSequences.finishInProgressSequences(InProgressSequences.java:72)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.reconfigureCMS(ClusterMetadataService.java:372)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.ensureCMSPlacement(ClusterMetadataService.java:379)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.BootstrapAndReplace.executeNext(BootstrapAndReplace.java:274)
> [junit-timeout]   at 
> org.apache.cassandra.simulator.cluster.OnClusterReplace$ExecuteNextStep.lambda$new$f5e64c00$1(OnClusterReplace.java:162)
> [junit-timeout]   at 
> org.apache.cassandra.distributed.api.IInvokableInstance.unsafeRunOnThisThread(IInvokableInstance.java:85)
> [junit-timeout]   at 
> org.apache.cassandra.simulator.systems.SimulatedActionTask.lambda$asSafeRunnable$0(SimulatedActionTask.java:83)
> [junit-timeout]   at 
> org.apache.cassandra.simulator.systems.SimulatedActionTask$1.run(SimulatedActionTask.java:93)
> [junit-timeout]   at 
> org.apache.cassandra.simulator.systems.InterceptingExecutor$InterceptingPooledExecutor$WaitingThread.lambda$new$1(InterceptingExecutor.java:318)
> [junit-timeout]   at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
> [junit-timeout]   at java.base/java.lang.Thread.run(Thread.java:829)
> {noformat}
> ...and underneath that...
> {noformat}
> [junit-timeout] Thread[ScheduledTasks:1,5,node3]
> [junit-timeout] java.lang.NullPointerException
> [junit-timeout]   at 
> org.apache.cassandra.utils.btree.AbstractBTreeMap.get(AbstractBTreeMap.java:92)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.membership.Directory.endpoint(Directory.java:312)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.transformations.cms.AdvanceCMSReconfiguration.executeRemove(AdvanceCMSReconfiguration.java:242)
> [junit-timeout]   at 
> 

[jira] [Updated] (CASSANDRA-19688) SAI support for BETWEEN operator

2024-07-29 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19688:

Status: Review In Progress  (was: Patch Available)

> SAI support for BETWEEN operator
> 
>
> Key: CASSANDRA-19688
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19688
> Project: Cassandra
>  Issue Type: New Feature
>  Components: CQL/Syntax, Feature/SAI
>Reporter: Caleb Rackliffe
>Assignee: Arun Ganesh
>Priority: Normal
> Fix For: 5.x
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> The new CQL BETWEEN operator should map pretty neatly to SAI’s internal RANGE 
> operator for numeric indexes. There’s no reason we shouldn’t support it.



--
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-19794) NPE on Directory access during Memtable flush fails ShortPaxosSimulationTest

2024-07-29 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19794:

Reviewers: Caleb Rackliffe, Caleb Rackliffe
   Caleb Rackliffe, Caleb Rackliffe  (was: Caleb Rackliffe)
   Status: Review In Progress  (was: Patch Available)

> NPE on Directory access during Memtable flush fails ShortPaxosSimulationTest
> 
>
> Key: CASSANDRA-19794
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19794
> Project: Cassandra
>  Issue Type: Bug
>  Components: Test/burn, Transactional Cluster Metadata
>Reporter: Caleb Rackliffe
>Assignee: Alex Petrov
>Priority: Normal
> Fix For: 5.x
>
>
> Run {{ShortPaxosSimulationTest}} w/ the following arguments on trunk:
> {noformat}
> PaxosSimulationRunner.main(new String[] { "run", "-n", "3..6", "-t", "1000", 
> "-c", "2", "--cluster-action-limit", "2", "-s", "30", "--seed", 
> "0xe0247e19a75e3bba" });
> {noformat}
> You should see a failure, starting with...
> {noformat}
> [junit-timeout] WARN  [OptionalTasks:1] node5 2024-07-22 15:46:00,210 
> LegacyStateListener.java:158 - Token -6148914691236517205 changing ownership 
> from /127.0.0.1:7012 to /127.0.0.6:7012
> [junit-timeout] WARN  [OptionalTasks:1] node6 2024-07-22 15:46:00,259 
> SystemKeyspace.java:1287 - Using stored Gossip Generation 1577894856 as it is 
> greater than current system time 1577894855.  See CASSANDRA-3654 if you 
> experience problems
> [junit-timeout] WARN  [OptionalTasks:1] node6 2024-07-22 15:46:00,277 
> LegacyStateListener.java:158 - Token -6148914691236517205 changing ownership 
> from /127.0.0.1:7012 to /127.0.0.6:7012
> [junit-timeout] ERROR [isolatedExecutor:3] node6 2024-07-22 15:46:00,469 
> ReconfigureCMS.java:184 - Could not finish adding the node to the Cluster 
> Metadata Service
> [junit-timeout] java.lang.IllegalStateException: Can not commit 
> transformation: "SERVER_ERROR"(class java.lang.NullPointerException).
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.lambda$commit$6(ClusterMetadataService.java:491)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.commit(ClusterMetadataService.java:535)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.commit(ClusterMetadataService.java:488)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.ReconfigureCMS.executeNext(ReconfigureCMS.java:179)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.InProgressSequences.resume(InProgressSequences.java:200)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.InProgressSequences.finishInProgressSequences(InProgressSequences.java:72)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.reconfigureCMS(ClusterMetadataService.java:372)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.ensureCMSPlacement(ClusterMetadataService.java:379)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.BootstrapAndReplace.executeNext(BootstrapAndReplace.java:274)
> [junit-timeout]   at 
> org.apache.cassandra.simulator.cluster.OnClusterReplace$ExecuteNextStep.lambda$new$f5e64c00$1(OnClusterReplace.java:162)
> [junit-timeout]   at 
> org.apache.cassandra.distributed.api.IInvokableInstance.unsafeRunOnThisThread(IInvokableInstance.java:85)
> [junit-timeout]   at 
> org.apache.cassandra.simulator.systems.SimulatedActionTask.lambda$asSafeRunnable$0(SimulatedActionTask.java:83)
> [junit-timeout]   at 
> org.apache.cassandra.simulator.systems.SimulatedActionTask$1.run(SimulatedActionTask.java:93)
> [junit-timeout]   at 
> org.apache.cassandra.simulator.systems.InterceptingExecutor$InterceptingPooledExecutor$WaitingThread.lambda$new$1(InterceptingExecutor.java:318)
> [junit-timeout]   at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
> [junit-timeout]   at java.base/java.lang.Thread.run(Thread.java:829)
> {noformat}
> ...and underneath that...
> {noformat}
> [junit-timeout] Thread[ScheduledTasks:1,5,node3]
> [junit-timeout] java.lang.NullPointerException
> [junit-timeout]   at 
> org.apache.cassandra.utils.btree.AbstractBTreeMap.get(AbstractBTreeMap.java:92)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.membership.Directory.endpoint(Directory.java:312)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.transformations.cms.AdvanceCMSReconfiguration.executeRemove(AdvanceCMSReconfiguration.java:242)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.transformations.cms.AdvanceCMSReconfiguration.execute(AdvanceCMSReconfiguration.java:123)
> [junit-timeout]   at 
> 

[jira] [Updated] (CASSANDRA-19400) IndexStatusManager needs to prioritize SUCCESS over UNKNOWN states to maximize availability

2024-07-24 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19400:

  Fix Version/s: 5.0.1
 (was: 5.0.x)
  Since Version: 5.0-alpha1
Source Control Link: 
https://github.com/apache/cassandra/commit/273975ef26e5de1a10a98c0df364cb67fa7830e3
 Resolution: Fixed
 Status: Resolved  (was: Ready to Commit)

> IndexStatusManager needs to prioritize SUCCESS over UNKNOWN states to 
> maximize availability
> ---
>
> Key: CASSANDRA-19400
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19400
> Project: Cassandra
>  Issue Type: Bug
>  Components: Feature/SAI
>Reporter: Caleb Rackliffe
>Assignee: Arun Ganesh
>Priority: Low
> Fix For: 5.0.1, 5.x
>
> Attachments: ci_summary.html, ci_summary.json
>
>  Time Spent: 2h 40m
>  Remaining Estimate: 0h
>
> {{IndexStatusManager}} is responsible for knowing what SAI indexes are 
> queryable across the ring, endpoint by endpoint. There are two statuses that 
> SAI treats as queryable, but it should not treat them equally. 
> {{BUILD_SUCCEEDED}} means the index is definitely available and should be 
> able to serve queries without issue. {{UNKNOWN}} indicates that the status of 
> the index hasn’t propagated yet to this coordinator. It may be just fine, or 
> it may not be. If it isn’t a query will not return incorrect results, but it 
> will fail. If there are enough {{BUILD_SUCCEEDED}} replicas, we should ignore 
> {{UNKNOWN}} replicas and maximize availability. If the UNKNOWN replica is 
> going to become {{BUILD_SUCCEEDED}} shortly, it will happily start taking 
> requests at that point and spread the load. If not, we’ll avoid futile 
> attempts to query it too early.



--
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-19400) IndexStatusManager needs to prioritize SUCCESS over UNKNOWN states to maximize availability

2024-07-24 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe edited comment on CASSANDRA-19400 at 7/24/24 8:28 PM:
--

Just waiting for updated CI runs. Once those look good, I'll start the process 
of committing...

EDIT: There are some unrelated problems, but overall CI looks good.


was (Author: maedhroz):
Just waiting for updated CI runs. Once those look good, I'll start the process 
of committing...

> IndexStatusManager needs to prioritize SUCCESS over UNKNOWN states to 
> maximize availability
> ---
>
> Key: CASSANDRA-19400
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19400
> Project: Cassandra
>  Issue Type: Bug
>  Components: Feature/SAI
>Reporter: Caleb Rackliffe
>Assignee: Arun Ganesh
>Priority: Low
> Fix For: 5.0.x, 5.x
>
> Attachments: ci_summary.html, ci_summary.json
>
>  Time Spent: 2h 40m
>  Remaining Estimate: 0h
>
> {{IndexStatusManager}} is responsible for knowing what SAI indexes are 
> queryable across the ring, endpoint by endpoint. There are two statuses that 
> SAI treats as queryable, but it should not treat them equally. 
> {{BUILD_SUCCEEDED}} means the index is definitely available and should be 
> able to serve queries without issue. {{UNKNOWN}} indicates that the status of 
> the index hasn’t propagated yet to this coordinator. It may be just fine, or 
> it may not be. If it isn’t a query will not return incorrect results, but it 
> will fail. If there are enough {{BUILD_SUCCEEDED}} replicas, we should ignore 
> {{UNKNOWN}} replicas and maximize availability. If the UNKNOWN replica is 
> going to become {{BUILD_SUCCEEDED}} shortly, it will happily start taking 
> requests at that point and spread the load. If not, we’ll avoid futile 
> attempts to query it too early.



--
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-19400) IndexStatusManager needs to prioritize SUCCESS over UNKNOWN states to maximize availability

2024-07-24 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19400:

Attachment: ci_summary.json

> IndexStatusManager needs to prioritize SUCCESS over UNKNOWN states to 
> maximize availability
> ---
>
> Key: CASSANDRA-19400
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19400
> Project: Cassandra
>  Issue Type: Bug
>  Components: Feature/SAI
>Reporter: Caleb Rackliffe
>Assignee: Arun Ganesh
>Priority: Low
> Fix For: 5.0.x, 5.x
>
> Attachments: ci_summary.html, ci_summary.json
>
>  Time Spent: 2h 40m
>  Remaining Estimate: 0h
>
> {{IndexStatusManager}} is responsible for knowing what SAI indexes are 
> queryable across the ring, endpoint by endpoint. There are two statuses that 
> SAI treats as queryable, but it should not treat them equally. 
> {{BUILD_SUCCEEDED}} means the index is definitely available and should be 
> able to serve queries without issue. {{UNKNOWN}} indicates that the status of 
> the index hasn’t propagated yet to this coordinator. It may be just fine, or 
> it may not be. If it isn’t a query will not return incorrect results, but it 
> will fail. If there are enough {{BUILD_SUCCEEDED}} replicas, we should ignore 
> {{UNKNOWN}} replicas and maximize availability. If the UNKNOWN replica is 
> going to become {{BUILD_SUCCEEDED}} shortly, it will happily start taking 
> requests at that point and spread the load. If not, we’ll avoid futile 
> attempts to query it too early.



--
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-19400) IndexStatusManager needs to prioritize SUCCESS over UNKNOWN states to maximize availability

2024-07-24 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19400:

Attachment: ci_summary.html

> IndexStatusManager needs to prioritize SUCCESS over UNKNOWN states to 
> maximize availability
> ---
>
> Key: CASSANDRA-19400
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19400
> Project: Cassandra
>  Issue Type: Bug
>  Components: Feature/SAI
>Reporter: Caleb Rackliffe
>Assignee: Arun Ganesh
>Priority: Low
> Fix For: 5.0.x, 5.x
>
> Attachments: ci_summary.html
>
>  Time Spent: 2h 40m
>  Remaining Estimate: 0h
>
> {{IndexStatusManager}} is responsible for knowing what SAI indexes are 
> queryable across the ring, endpoint by endpoint. There are two statuses that 
> SAI treats as queryable, but it should not treat them equally. 
> {{BUILD_SUCCEEDED}} means the index is definitely available and should be 
> able to serve queries without issue. {{UNKNOWN}} indicates that the status of 
> the index hasn’t propagated yet to this coordinator. It may be just fine, or 
> it may not be. If it isn’t a query will not return incorrect results, but it 
> will fail. If there are enough {{BUILD_SUCCEEDED}} replicas, we should ignore 
> {{UNKNOWN}} replicas and maximize availability. If the UNKNOWN replica is 
> going to become {{BUILD_SUCCEEDED}} shortly, it will happily start taking 
> requests at that point and spread the load. If not, we’ll avoid futile 
> attempts to query it too early.



--
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-19400) IndexStatusManager needs to prioritize SUCCESS over UNKNOWN states to maximize availability

2024-07-24 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19400:

Status: Ready to Commit  (was: Review In Progress)

Just waiting for updated CI runs. Once those look good, I'll start the process 
of committing...

> IndexStatusManager needs to prioritize SUCCESS over UNKNOWN states to 
> maximize availability
> ---
>
> Key: CASSANDRA-19400
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19400
> Project: Cassandra
>  Issue Type: Bug
>  Components: Feature/SAI
>Reporter: Caleb Rackliffe
>Assignee: Arun Ganesh
>Priority: Low
> Fix For: 5.0.x, 5.x
>
>  Time Spent: 2h 40m
>  Remaining Estimate: 0h
>
> {{IndexStatusManager}} is responsible for knowing what SAI indexes are 
> queryable across the ring, endpoint by endpoint. There are two statuses that 
> SAI treats as queryable, but it should not treat them equally. 
> {{BUILD_SUCCEEDED}} means the index is definitely available and should be 
> able to serve queries without issue. {{UNKNOWN}} indicates that the status of 
> the index hasn’t propagated yet to this coordinator. It may be just fine, or 
> it may not be. If it isn’t a query will not return incorrect results, but it 
> will fail. If there are enough {{BUILD_SUCCEEDED}} replicas, we should ignore 
> {{UNKNOWN}} replicas and maximize availability. If the UNKNOWN replica is 
> going to become {{BUILD_SUCCEEDED}} shortly, it will happily start taking 
> requests at that point and spread the load. If not, we’ll avoid futile 
> attempts to query it too early.



--
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-19794) NPE on Directory access during Memtable flush fails ShortPaxosSimulationTest

2024-07-24 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe edited comment on CASSANDRA-19794 at 7/24/24 4:10 PM:
--

{noformat}
"--seed", "0xe0247e19a75e3bba" {noformat}
(Sorry, it was probably cut off in the description above due to being the last 
arg.)


was (Author: maedhroz):
{noformat}
"--seed", "0xe0247e19a75e3bba" {noformat}

> NPE on Directory access during Memtable flush fails ShortPaxosSimulationTest
> 
>
> Key: CASSANDRA-19794
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19794
> Project: Cassandra
>  Issue Type: Bug
>  Components: Test/burn, Transactional Cluster Metadata
>Reporter: Caleb Rackliffe
>Assignee: Marcus Eriksson
>Priority: Normal
> Fix For: 5.x
>
>
> Run {{ShortPaxosSimulationTest}} w/ the following arguments on trunk:
> {noformat}
> PaxosSimulationRunner.main(new String[] { "run", "-n", "3..6", "-t", "1000", 
> "-c", "2", "--cluster-action-limit", "2", "-s", "30", "--seed", 
> "0xe0247e19a75e3bba" });
> {noformat}
> You should see a failure, starting with...
> {noformat}
> [junit-timeout] WARN  [OptionalTasks:1] node5 2024-07-22 15:46:00,210 
> LegacyStateListener.java:158 - Token -6148914691236517205 changing ownership 
> from /127.0.0.1:7012 to /127.0.0.6:7012
> [junit-timeout] WARN  [OptionalTasks:1] node6 2024-07-22 15:46:00,259 
> SystemKeyspace.java:1287 - Using stored Gossip Generation 1577894856 as it is 
> greater than current system time 1577894855.  See CASSANDRA-3654 if you 
> experience problems
> [junit-timeout] WARN  [OptionalTasks:1] node6 2024-07-22 15:46:00,277 
> LegacyStateListener.java:158 - Token -6148914691236517205 changing ownership 
> from /127.0.0.1:7012 to /127.0.0.6:7012
> [junit-timeout] ERROR [isolatedExecutor:3] node6 2024-07-22 15:46:00,469 
> ReconfigureCMS.java:184 - Could not finish adding the node to the Cluster 
> Metadata Service
> [junit-timeout] java.lang.IllegalStateException: Can not commit 
> transformation: "SERVER_ERROR"(class java.lang.NullPointerException).
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.lambda$commit$6(ClusterMetadataService.java:491)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.commit(ClusterMetadataService.java:535)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.commit(ClusterMetadataService.java:488)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.ReconfigureCMS.executeNext(ReconfigureCMS.java:179)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.InProgressSequences.resume(InProgressSequences.java:200)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.InProgressSequences.finishInProgressSequences(InProgressSequences.java:72)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.reconfigureCMS(ClusterMetadataService.java:372)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.ensureCMSPlacement(ClusterMetadataService.java:379)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.BootstrapAndReplace.executeNext(BootstrapAndReplace.java:274)
> [junit-timeout]   at 
> org.apache.cassandra.simulator.cluster.OnClusterReplace$ExecuteNextStep.lambda$new$f5e64c00$1(OnClusterReplace.java:162)
> [junit-timeout]   at 
> org.apache.cassandra.distributed.api.IInvokableInstance.unsafeRunOnThisThread(IInvokableInstance.java:85)
> [junit-timeout]   at 
> org.apache.cassandra.simulator.systems.SimulatedActionTask.lambda$asSafeRunnable$0(SimulatedActionTask.java:83)
> [junit-timeout]   at 
> org.apache.cassandra.simulator.systems.SimulatedActionTask$1.run(SimulatedActionTask.java:93)
> [junit-timeout]   at 
> org.apache.cassandra.simulator.systems.InterceptingExecutor$InterceptingPooledExecutor$WaitingThread.lambda$new$1(InterceptingExecutor.java:318)
> [junit-timeout]   at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
> [junit-timeout]   at java.base/java.lang.Thread.run(Thread.java:829)
> {noformat}
> ...and underneath that...
> {noformat}
> [junit-timeout] Thread[ScheduledTasks:1,5,node3]
> [junit-timeout] java.lang.NullPointerException
> [junit-timeout]   at 
> org.apache.cassandra.utils.btree.AbstractBTreeMap.get(AbstractBTreeMap.java:92)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.membership.Directory.endpoint(Directory.java:312)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.transformations.cms.AdvanceCMSReconfiguration.executeRemove(AdvanceCMSReconfiguration.java:242)
> [junit-timeout]   at 
> 

[jira] [Comment Edited] (CASSANDRA-19794) NPE on Directory access during Memtable flush fails ShortPaxosSimulationTest

2024-07-24 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe edited comment on CASSANDRA-19794 at 7/24/24 4:10 PM:
--

{noformat}
"--seed", "0xe0247e19a75e3bba" {noformat}
(Sorry, it was probably cut off in the description above due to being the last 
arg and needing scrolling to the right.)


was (Author: maedhroz):
{noformat}
"--seed", "0xe0247e19a75e3bba" {noformat}
(Sorry, it was probably cut off in the description above due to being the last 
arg.)

> NPE on Directory access during Memtable flush fails ShortPaxosSimulationTest
> 
>
> Key: CASSANDRA-19794
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19794
> Project: Cassandra
>  Issue Type: Bug
>  Components: Test/burn, Transactional Cluster Metadata
>Reporter: Caleb Rackliffe
>Assignee: Marcus Eriksson
>Priority: Normal
> Fix For: 5.x
>
>
> Run {{ShortPaxosSimulationTest}} w/ the following arguments on trunk:
> {noformat}
> PaxosSimulationRunner.main(new String[] { "run", "-n", "3..6", "-t", "1000", 
> "-c", "2", "--cluster-action-limit", "2", "-s", "30", "--seed", 
> "0xe0247e19a75e3bba" });
> {noformat}
> You should see a failure, starting with...
> {noformat}
> [junit-timeout] WARN  [OptionalTasks:1] node5 2024-07-22 15:46:00,210 
> LegacyStateListener.java:158 - Token -6148914691236517205 changing ownership 
> from /127.0.0.1:7012 to /127.0.0.6:7012
> [junit-timeout] WARN  [OptionalTasks:1] node6 2024-07-22 15:46:00,259 
> SystemKeyspace.java:1287 - Using stored Gossip Generation 1577894856 as it is 
> greater than current system time 1577894855.  See CASSANDRA-3654 if you 
> experience problems
> [junit-timeout] WARN  [OptionalTasks:1] node6 2024-07-22 15:46:00,277 
> LegacyStateListener.java:158 - Token -6148914691236517205 changing ownership 
> from /127.0.0.1:7012 to /127.0.0.6:7012
> [junit-timeout] ERROR [isolatedExecutor:3] node6 2024-07-22 15:46:00,469 
> ReconfigureCMS.java:184 - Could not finish adding the node to the Cluster 
> Metadata Service
> [junit-timeout] java.lang.IllegalStateException: Can not commit 
> transformation: "SERVER_ERROR"(class java.lang.NullPointerException).
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.lambda$commit$6(ClusterMetadataService.java:491)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.commit(ClusterMetadataService.java:535)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.commit(ClusterMetadataService.java:488)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.ReconfigureCMS.executeNext(ReconfigureCMS.java:179)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.InProgressSequences.resume(InProgressSequences.java:200)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.InProgressSequences.finishInProgressSequences(InProgressSequences.java:72)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.reconfigureCMS(ClusterMetadataService.java:372)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.ensureCMSPlacement(ClusterMetadataService.java:379)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.BootstrapAndReplace.executeNext(BootstrapAndReplace.java:274)
> [junit-timeout]   at 
> org.apache.cassandra.simulator.cluster.OnClusterReplace$ExecuteNextStep.lambda$new$f5e64c00$1(OnClusterReplace.java:162)
> [junit-timeout]   at 
> org.apache.cassandra.distributed.api.IInvokableInstance.unsafeRunOnThisThread(IInvokableInstance.java:85)
> [junit-timeout]   at 
> org.apache.cassandra.simulator.systems.SimulatedActionTask.lambda$asSafeRunnable$0(SimulatedActionTask.java:83)
> [junit-timeout]   at 
> org.apache.cassandra.simulator.systems.SimulatedActionTask$1.run(SimulatedActionTask.java:93)
> [junit-timeout]   at 
> org.apache.cassandra.simulator.systems.InterceptingExecutor$InterceptingPooledExecutor$WaitingThread.lambda$new$1(InterceptingExecutor.java:318)
> [junit-timeout]   at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
> [junit-timeout]   at java.base/java.lang.Thread.run(Thread.java:829)
> {noformat}
> ...and underneath that...
> {noformat}
> [junit-timeout] Thread[ScheduledTasks:1,5,node3]
> [junit-timeout] java.lang.NullPointerException
> [junit-timeout]   at 
> org.apache.cassandra.utils.btree.AbstractBTreeMap.get(AbstractBTreeMap.java:92)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.membership.Directory.endpoint(Directory.java:312)
> [junit-timeout]   at 
> 

[jira] [Commented] (CASSANDRA-19794) NPE on Directory access during Memtable flush fails ShortPaxosSimulationTest

2024-07-24 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe commented on CASSANDRA-19794:
-

{noformat}
"--seed", "0xe0247e19a75e3bba" {noformat}

> NPE on Directory access during Memtable flush fails ShortPaxosSimulationTest
> 
>
> Key: CASSANDRA-19794
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19794
> Project: Cassandra
>  Issue Type: Bug
>  Components: Test/burn, Transactional Cluster Metadata
>Reporter: Caleb Rackliffe
>Assignee: Marcus Eriksson
>Priority: Normal
> Fix For: 5.x
>
>
> Run {{ShortPaxosSimulationTest}} w/ the following arguments on trunk:
> {noformat}
> PaxosSimulationRunner.main(new String[] { "run", "-n", "3..6", "-t", "1000", 
> "-c", "2", "--cluster-action-limit", "2", "-s", "30", "--seed", 
> "0xe0247e19a75e3bba" });
> {noformat}
> You should see a failure, starting with...
> {noformat}
> [junit-timeout] WARN  [OptionalTasks:1] node5 2024-07-22 15:46:00,210 
> LegacyStateListener.java:158 - Token -6148914691236517205 changing ownership 
> from /127.0.0.1:7012 to /127.0.0.6:7012
> [junit-timeout] WARN  [OptionalTasks:1] node6 2024-07-22 15:46:00,259 
> SystemKeyspace.java:1287 - Using stored Gossip Generation 1577894856 as it is 
> greater than current system time 1577894855.  See CASSANDRA-3654 if you 
> experience problems
> [junit-timeout] WARN  [OptionalTasks:1] node6 2024-07-22 15:46:00,277 
> LegacyStateListener.java:158 - Token -6148914691236517205 changing ownership 
> from /127.0.0.1:7012 to /127.0.0.6:7012
> [junit-timeout] ERROR [isolatedExecutor:3] node6 2024-07-22 15:46:00,469 
> ReconfigureCMS.java:184 - Could not finish adding the node to the Cluster 
> Metadata Service
> [junit-timeout] java.lang.IllegalStateException: Can not commit 
> transformation: "SERVER_ERROR"(class java.lang.NullPointerException).
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.lambda$commit$6(ClusterMetadataService.java:491)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.commit(ClusterMetadataService.java:535)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.commit(ClusterMetadataService.java:488)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.ReconfigureCMS.executeNext(ReconfigureCMS.java:179)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.InProgressSequences.resume(InProgressSequences.java:200)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.InProgressSequences.finishInProgressSequences(InProgressSequences.java:72)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.reconfigureCMS(ClusterMetadataService.java:372)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.ensureCMSPlacement(ClusterMetadataService.java:379)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.BootstrapAndReplace.executeNext(BootstrapAndReplace.java:274)
> [junit-timeout]   at 
> org.apache.cassandra.simulator.cluster.OnClusterReplace$ExecuteNextStep.lambda$new$f5e64c00$1(OnClusterReplace.java:162)
> [junit-timeout]   at 
> org.apache.cassandra.distributed.api.IInvokableInstance.unsafeRunOnThisThread(IInvokableInstance.java:85)
> [junit-timeout]   at 
> org.apache.cassandra.simulator.systems.SimulatedActionTask.lambda$asSafeRunnable$0(SimulatedActionTask.java:83)
> [junit-timeout]   at 
> org.apache.cassandra.simulator.systems.SimulatedActionTask$1.run(SimulatedActionTask.java:93)
> [junit-timeout]   at 
> org.apache.cassandra.simulator.systems.InterceptingExecutor$InterceptingPooledExecutor$WaitingThread.lambda$new$1(InterceptingExecutor.java:318)
> [junit-timeout]   at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
> [junit-timeout]   at java.base/java.lang.Thread.run(Thread.java:829)
> {noformat}
> ...and underneath that...
> {noformat}
> [junit-timeout] Thread[ScheduledTasks:1,5,node3]
> [junit-timeout] java.lang.NullPointerException
> [junit-timeout]   at 
> org.apache.cassandra.utils.btree.AbstractBTreeMap.get(AbstractBTreeMap.java:92)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.membership.Directory.endpoint(Directory.java:312)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.transformations.cms.AdvanceCMSReconfiguration.executeRemove(AdvanceCMSReconfiguration.java:242)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.transformations.cms.AdvanceCMSReconfiguration.execute(AdvanceCMSReconfiguration.java:123)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.ReconfigureCMS.applyTo(ReconfigureCMS.java:149)
> [junit-timeout]   at 
> 

[jira] [Updated] (CASSANDRA-19400) IndexStatusManager needs to prioritize SUCCESS over UNKNOWN states to maximize availability

2024-07-23 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19400:

Status: Review In Progress  (was: Needs Committer)

> IndexStatusManager needs to prioritize SUCCESS over UNKNOWN states to 
> maximize availability
> ---
>
> Key: CASSANDRA-19400
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19400
> Project: Cassandra
>  Issue Type: Bug
>  Components: Feature/SAI
>Reporter: Caleb Rackliffe
>Assignee: Arun Ganesh
>Priority: Low
> Fix For: 5.0.x, 5.x
>
>  Time Spent: 2.5h
>  Remaining Estimate: 0h
>
> {{IndexStatusManager}} is responsible for knowing what SAI indexes are 
> queryable across the ring, endpoint by endpoint. There are two statuses that 
> SAI treats as queryable, but it should not treat them equally. 
> {{BUILD_SUCCEEDED}} means the index is definitely available and should be 
> able to serve queries without issue. {{UNKNOWN}} indicates that the status of 
> the index hasn’t propagated yet to this coordinator. It may be just fine, or 
> it may not be. If it isn’t a query will not return incorrect results, but it 
> will fail. If there are enough {{BUILD_SUCCEEDED}} replicas, we should ignore 
> {{UNKNOWN}} replicas and maximize availability. If the UNKNOWN replica is 
> going to become {{BUILD_SUCCEEDED}} shortly, it will happily start taking 
> requests at that point and spread the load. If not, we’ll avoid futile 
> attempts to query it too early.



--
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-19400) IndexStatusManager needs to prioritize SUCCESS over UNKNOWN states to maximize availability

2024-07-23 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19400:

Reviewers: Caleb Rackliffe, Zhao Yang  (was: Caleb Rackliffe)

> IndexStatusManager needs to prioritize SUCCESS over UNKNOWN states to 
> maximize availability
> ---
>
> Key: CASSANDRA-19400
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19400
> Project: Cassandra
>  Issue Type: Bug
>  Components: Feature/SAI
>Reporter: Caleb Rackliffe
>Assignee: Arun Ganesh
>Priority: Low
> Fix For: 5.0.x, 5.x
>
>  Time Spent: 2.5h
>  Remaining Estimate: 0h
>
> {{IndexStatusManager}} is responsible for knowing what SAI indexes are 
> queryable across the ring, endpoint by endpoint. There are two statuses that 
> SAI treats as queryable, but it should not treat them equally. 
> {{BUILD_SUCCEEDED}} means the index is definitely available and should be 
> able to serve queries without issue. {{UNKNOWN}} indicates that the status of 
> the index hasn’t propagated yet to this coordinator. It may be just fine, or 
> it may not be. If it isn’t a query will not return incorrect results, but it 
> will fail. If there are enough {{BUILD_SUCCEEDED}} replicas, we should ignore 
> {{UNKNOWN}} replicas and maximize availability. If the UNKNOWN replica is 
> going to become {{BUILD_SUCCEEDED}} shortly, it will happily start taking 
> requests at that point and spread the load. If not, we’ll avoid futile 
> attempts to query it too early.



--
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-19794) NPE on Directory access during Memtable flush fails ShortPaxosSimulationTest

2024-07-23 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19794:

Summary: NPE on Directory access during Memtable flush fails 
ShortPaxosSimulationTest  (was: AccordSimpleFastPathTest)

> NPE on Directory access during Memtable flush fails ShortPaxosSimulationTest
> 
>
> Key: CASSANDRA-19794
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19794
> Project: Cassandra
>  Issue Type: Bug
>  Components: Test/burn, Transactional Cluster Metadata
>Reporter: Caleb Rackliffe
>Assignee: Marcus Eriksson
>Priority: Normal
> Fix For: 5.x
>
>
> Run {{ShortPaxosSimulationTest}} w/ the following arguments on trunk:
> {noformat}
> PaxosSimulationRunner.main(new String[] { "run", "-n", "3..6", "-t", "1000", 
> "-c", "2", "--cluster-action-limit", "2", "-s", "30", "--seed", 
> "0xe0247e19a75e3bba" });
> {noformat}
> You should see a failure, starting with...
> {noformat}
> [junit-timeout] WARN  [OptionalTasks:1] node5 2024-07-22 15:46:00,210 
> LegacyStateListener.java:158 - Token -6148914691236517205 changing ownership 
> from /127.0.0.1:7012 to /127.0.0.6:7012
> [junit-timeout] WARN  [OptionalTasks:1] node6 2024-07-22 15:46:00,259 
> SystemKeyspace.java:1287 - Using stored Gossip Generation 1577894856 as it is 
> greater than current system time 1577894855.  See CASSANDRA-3654 if you 
> experience problems
> [junit-timeout] WARN  [OptionalTasks:1] node6 2024-07-22 15:46:00,277 
> LegacyStateListener.java:158 - Token -6148914691236517205 changing ownership 
> from /127.0.0.1:7012 to /127.0.0.6:7012
> [junit-timeout] ERROR [isolatedExecutor:3] node6 2024-07-22 15:46:00,469 
> ReconfigureCMS.java:184 - Could not finish adding the node to the Cluster 
> Metadata Service
> [junit-timeout] java.lang.IllegalStateException: Can not commit 
> transformation: "SERVER_ERROR"(class java.lang.NullPointerException).
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.lambda$commit$6(ClusterMetadataService.java:491)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.commit(ClusterMetadataService.java:535)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.commit(ClusterMetadataService.java:488)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.ReconfigureCMS.executeNext(ReconfigureCMS.java:179)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.InProgressSequences.resume(InProgressSequences.java:200)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.InProgressSequences.finishInProgressSequences(InProgressSequences.java:72)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.reconfigureCMS(ClusterMetadataService.java:372)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.ensureCMSPlacement(ClusterMetadataService.java:379)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.BootstrapAndReplace.executeNext(BootstrapAndReplace.java:274)
> [junit-timeout]   at 
> org.apache.cassandra.simulator.cluster.OnClusterReplace$ExecuteNextStep.lambda$new$f5e64c00$1(OnClusterReplace.java:162)
> [junit-timeout]   at 
> org.apache.cassandra.distributed.api.IInvokableInstance.unsafeRunOnThisThread(IInvokableInstance.java:85)
> [junit-timeout]   at 
> org.apache.cassandra.simulator.systems.SimulatedActionTask.lambda$asSafeRunnable$0(SimulatedActionTask.java:83)
> [junit-timeout]   at 
> org.apache.cassandra.simulator.systems.SimulatedActionTask$1.run(SimulatedActionTask.java:93)
> [junit-timeout]   at 
> org.apache.cassandra.simulator.systems.InterceptingExecutor$InterceptingPooledExecutor$WaitingThread.lambda$new$1(InterceptingExecutor.java:318)
> [junit-timeout]   at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
> [junit-timeout]   at java.base/java.lang.Thread.run(Thread.java:829)
> {noformat}
> ...and underneath that...
> {noformat}
> [junit-timeout] Thread[ScheduledTasks:1,5,node3]
> [junit-timeout] java.lang.NullPointerException
> [junit-timeout]   at 
> org.apache.cassandra.utils.btree.AbstractBTreeMap.get(AbstractBTreeMap.java:92)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.membership.Directory.endpoint(Directory.java:312)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.transformations.cms.AdvanceCMSReconfiguration.executeRemove(AdvanceCMSReconfiguration.java:242)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.transformations.cms.AdvanceCMSReconfiguration.execute(AdvanceCMSReconfiguration.java:123)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.ReconfigureCMS.applyTo(ReconfigureCMS.java:149)
> 

[jira] [Updated] (CASSANDRA-19794) AccordSimpleFastPathTest

2024-07-23 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19794:

 Bug Category: Parent values: Correctness(12982)Level 1 values: API / 
Semantic Implementation(12988)
   Complexity: Normal
Discovered By: Fuzz Test
Fix Version/s: 5.x
 Severity: Normal
   Status: Open  (was: Triage Needed)

CC [~samt] [~ifesdjeen] 

> AccordSimpleFastPathTest
> 
>
> Key: CASSANDRA-19794
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19794
> Project: Cassandra
>  Issue Type: Bug
>  Components: Test/burn, Transactional Cluster Metadata
>Reporter: Caleb Rackliffe
>Assignee: Marcus Eriksson
>Priority: Normal
> Fix For: 5.x
>
>
> Run {{ShortPaxosSimulationTest}} w/ the following arguments on trunk:
> {noformat}
> PaxosSimulationRunner.main(new String[] { "run", "-n", "3..6", "-t", "1000", 
> "-c", "2", "--cluster-action-limit", "2", "-s", "30", "--seed", 
> "0xe0247e19a75e3bba" });
> {noformat}
> You should see a failure, starting with...
> {noformat}
> [junit-timeout] WARN  [OptionalTasks:1] node5 2024-07-22 15:46:00,210 
> LegacyStateListener.java:158 - Token -6148914691236517205 changing ownership 
> from /127.0.0.1:7012 to /127.0.0.6:7012
> [junit-timeout] WARN  [OptionalTasks:1] node6 2024-07-22 15:46:00,259 
> SystemKeyspace.java:1287 - Using stored Gossip Generation 1577894856 as it is 
> greater than current system time 1577894855.  See CASSANDRA-3654 if you 
> experience problems
> [junit-timeout] WARN  [OptionalTasks:1] node6 2024-07-22 15:46:00,277 
> LegacyStateListener.java:158 - Token -6148914691236517205 changing ownership 
> from /127.0.0.1:7012 to /127.0.0.6:7012
> [junit-timeout] ERROR [isolatedExecutor:3] node6 2024-07-22 15:46:00,469 
> ReconfigureCMS.java:184 - Could not finish adding the node to the Cluster 
> Metadata Service
> [junit-timeout] java.lang.IllegalStateException: Can not commit 
> transformation: "SERVER_ERROR"(class java.lang.NullPointerException).
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.lambda$commit$6(ClusterMetadataService.java:491)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.commit(ClusterMetadataService.java:535)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.commit(ClusterMetadataService.java:488)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.ReconfigureCMS.executeNext(ReconfigureCMS.java:179)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.InProgressSequences.resume(InProgressSequences.java:200)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.InProgressSequences.finishInProgressSequences(InProgressSequences.java:72)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.reconfigureCMS(ClusterMetadataService.java:372)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.ClusterMetadataService.ensureCMSPlacement(ClusterMetadataService.java:379)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.sequences.BootstrapAndReplace.executeNext(BootstrapAndReplace.java:274)
> [junit-timeout]   at 
> org.apache.cassandra.simulator.cluster.OnClusterReplace$ExecuteNextStep.lambda$new$f5e64c00$1(OnClusterReplace.java:162)
> [junit-timeout]   at 
> org.apache.cassandra.distributed.api.IInvokableInstance.unsafeRunOnThisThread(IInvokableInstance.java:85)
> [junit-timeout]   at 
> org.apache.cassandra.simulator.systems.SimulatedActionTask.lambda$asSafeRunnable$0(SimulatedActionTask.java:83)
> [junit-timeout]   at 
> org.apache.cassandra.simulator.systems.SimulatedActionTask$1.run(SimulatedActionTask.java:93)
> [junit-timeout]   at 
> org.apache.cassandra.simulator.systems.InterceptingExecutor$InterceptingPooledExecutor$WaitingThread.lambda$new$1(InterceptingExecutor.java:318)
> [junit-timeout]   at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
> [junit-timeout]   at java.base/java.lang.Thread.run(Thread.java:829)
> {noformat}
> ...and underneath that...
> {noformat}
> [junit-timeout] Thread[ScheduledTasks:1,5,node3]
> [junit-timeout] java.lang.NullPointerException
> [junit-timeout]   at 
> org.apache.cassandra.utils.btree.AbstractBTreeMap.get(AbstractBTreeMap.java:92)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.membership.Directory.endpoint(Directory.java:312)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.transformations.cms.AdvanceCMSReconfiguration.executeRemove(AdvanceCMSReconfiguration.java:242)
> [junit-timeout]   at 
> org.apache.cassandra.tcm.transformations.cms.AdvanceCMSReconfiguration.execute(AdvanceCMSReconfiguration.java:123)
> [junit-timeout]   at 
> 

[jira] [Created] (CASSANDRA-19794) AccordSimpleFastPathTest

2024-07-23 Thread Caleb Rackliffe (Jira)
Caleb Rackliffe created CASSANDRA-19794:
---

 Summary: AccordSimpleFastPathTest
 Key: CASSANDRA-19794
 URL: https://issues.apache.org/jira/browse/CASSANDRA-19794
 Project: Cassandra
  Issue Type: Bug
  Components: Test/burn, Transactional Cluster Metadata
Reporter: Caleb Rackliffe
Assignee: Marcus Eriksson


Run {{ShortPaxosSimulationTest}} w/ the following arguments on trunk:

{noformat}
PaxosSimulationRunner.main(new String[] { "run", "-n", "3..6", "-t", "1000", 
"-c", "2", "--cluster-action-limit", "2", "-s", "30", "--seed", 
"0xe0247e19a75e3bba" });
{noformat}

You should see a failure, starting with...

{noformat}
[junit-timeout] WARN  [OptionalTasks:1] node5 2024-07-22 15:46:00,210 
LegacyStateListener.java:158 - Token -6148914691236517205 changing ownership 
from /127.0.0.1:7012 to /127.0.0.6:7012
[junit-timeout] WARN  [OptionalTasks:1] node6 2024-07-22 15:46:00,259 
SystemKeyspace.java:1287 - Using stored Gossip Generation 1577894856 as it is 
greater than current system time 1577894855.  See CASSANDRA-3654 if you 
experience problems
[junit-timeout] WARN  [OptionalTasks:1] node6 2024-07-22 15:46:00,277 
LegacyStateListener.java:158 - Token -6148914691236517205 changing ownership 
from /127.0.0.1:7012 to /127.0.0.6:7012
[junit-timeout] ERROR [isolatedExecutor:3] node6 2024-07-22 15:46:00,469 
ReconfigureCMS.java:184 - Could not finish adding the node to the Cluster 
Metadata Service
[junit-timeout] java.lang.IllegalStateException: Can not commit transformation: 
"SERVER_ERROR"(class java.lang.NullPointerException).
[junit-timeout] at 
org.apache.cassandra.tcm.ClusterMetadataService.lambda$commit$6(ClusterMetadataService.java:491)
[junit-timeout] at 
org.apache.cassandra.tcm.ClusterMetadataService.commit(ClusterMetadataService.java:535)
[junit-timeout] at 
org.apache.cassandra.tcm.ClusterMetadataService.commit(ClusterMetadataService.java:488)
[junit-timeout] at 
org.apache.cassandra.tcm.sequences.ReconfigureCMS.executeNext(ReconfigureCMS.java:179)
[junit-timeout] at 
org.apache.cassandra.tcm.sequences.InProgressSequences.resume(InProgressSequences.java:200)
[junit-timeout] at 
org.apache.cassandra.tcm.sequences.InProgressSequences.finishInProgressSequences(InProgressSequences.java:72)
[junit-timeout] at 
org.apache.cassandra.tcm.ClusterMetadataService.reconfigureCMS(ClusterMetadataService.java:372)
[junit-timeout] at 
org.apache.cassandra.tcm.ClusterMetadataService.ensureCMSPlacement(ClusterMetadataService.java:379)
[junit-timeout] at 
org.apache.cassandra.tcm.sequences.BootstrapAndReplace.executeNext(BootstrapAndReplace.java:274)
[junit-timeout] at 
org.apache.cassandra.simulator.cluster.OnClusterReplace$ExecuteNextStep.lambda$new$f5e64c00$1(OnClusterReplace.java:162)
[junit-timeout] at 
org.apache.cassandra.distributed.api.IInvokableInstance.unsafeRunOnThisThread(IInvokableInstance.java:85)
[junit-timeout] at 
org.apache.cassandra.simulator.systems.SimulatedActionTask.lambda$asSafeRunnable$0(SimulatedActionTask.java:83)
[junit-timeout] at 
org.apache.cassandra.simulator.systems.SimulatedActionTask$1.run(SimulatedActionTask.java:93)
[junit-timeout] at 
org.apache.cassandra.simulator.systems.InterceptingExecutor$InterceptingPooledExecutor$WaitingThread.lambda$new$1(InterceptingExecutor.java:318)
[junit-timeout] at 
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
[junit-timeout] at java.base/java.lang.Thread.run(Thread.java:829)
{noformat}

...and underneath that...

{noformat}
[junit-timeout] Thread[ScheduledTasks:1,5,node3]
[junit-timeout] java.lang.NullPointerException
[junit-timeout] at 
org.apache.cassandra.utils.btree.AbstractBTreeMap.get(AbstractBTreeMap.java:92)
[junit-timeout] at 
org.apache.cassandra.tcm.membership.Directory.endpoint(Directory.java:312)
[junit-timeout] at 
org.apache.cassandra.tcm.transformations.cms.AdvanceCMSReconfiguration.executeRemove(AdvanceCMSReconfiguration.java:242)
[junit-timeout] at 
org.apache.cassandra.tcm.transformations.cms.AdvanceCMSReconfiguration.execute(AdvanceCMSReconfiguration.java:123)
[junit-timeout] at 
org.apache.cassandra.tcm.sequences.ReconfigureCMS.applyTo(ReconfigureCMS.java:149)
[junit-timeout] at 
org.apache.cassandra.tcm.ClusterMetadata.writePlacementAllSettled(ClusterMetadata.java:275)
[junit-timeout] at 
org.apache.cassandra.db.DiskBoundaryManager.getLocalRanges(DiskBoundaryManager.java:158)
[junit-timeout] at 
org.apache.cassandra.db.DiskBoundaryManager.getDiskBoundaryValue(DiskBoundaryManager.java:121)
[junit-timeout] at 
org.apache.cassandra.db.DiskBoundaryManager.getDiskBoundaries(DiskBoundaryManager.java:65)
[junit-timeout] at 

[jira] [Updated] (CASSANDRA-19688) SAI support for BETWEEN operator

2024-07-22 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19688:

Reviewers: Caleb Rackliffe

> SAI support for BETWEEN operator
> 
>
> Key: CASSANDRA-19688
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19688
> Project: Cassandra
>  Issue Type: New Feature
>  Components: CQL/Syntax, Feature/SAI
>Reporter: Caleb Rackliffe
>Assignee: Arun Ganesh
>Priority: Normal
> Fix For: 5.x
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> The new CQL BETWEEN operator should map pretty neatly to SAI’s internal RANGE 
> operator for numeric indexes. There’s no reason we shouldn’t support it.



--
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-19688) SAI support for BETWEEN operator

2024-07-22 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19688:

Test and Documentation Plan: expanding CQL test coverage for BETWEEN
 Status: Patch Available  (was: In Progress)

> SAI support for BETWEEN operator
> 
>
> Key: CASSANDRA-19688
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19688
> Project: Cassandra
>  Issue Type: New Feature
>  Components: CQL/Syntax, Feature/SAI
>Reporter: Caleb Rackliffe
>Assignee: Arun Ganesh
>Priority: Normal
> Fix For: 5.x
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> The new CQL BETWEEN operator should map pretty neatly to SAI’s internal RANGE 
> operator for numeric indexes. There’s no reason we shouldn’t support it.



--
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-19400) IndexStatusManager needs to prioritize SUCCESS over UNKNOWN states to maximize availability

2024-07-22 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19400:

Attachment: (was: ci_summary.html)

> IndexStatusManager needs to prioritize SUCCESS over UNKNOWN states to 
> maximize availability
> ---
>
> Key: CASSANDRA-19400
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19400
> Project: Cassandra
>  Issue Type: Bug
>  Components: Feature/SAI
>Reporter: Caleb Rackliffe
>Assignee: Arun Ganesh
>Priority: Low
> Fix For: 5.0.x, 5.x
>
>  Time Spent: 2.5h
>  Remaining Estimate: 0h
>
> {{IndexStatusManager}} is responsible for knowing what SAI indexes are 
> queryable across the ring, endpoint by endpoint. There are two statuses that 
> SAI treats as queryable, but it should not treat them equally. 
> {{BUILD_SUCCEEDED}} means the index is definitely available and should be 
> able to serve queries without issue. {{UNKNOWN}} indicates that the status of 
> the index hasn’t propagated yet to this coordinator. It may be just fine, or 
> it may not be. If it isn’t a query will not return incorrect results, but it 
> will fail. If there are enough {{BUILD_SUCCEEDED}} replicas, we should ignore 
> {{UNKNOWN}} replicas and maximize availability. If the UNKNOWN replica is 
> going to become {{BUILD_SUCCEEDED}} shortly, it will happily start taking 
> requests at that point and spread the load. If not, we’ll avoid futile 
> attempts to query it too early.



--
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-19400) IndexStatusManager needs to prioritize SUCCESS over UNKNOWN states to maximize availability

2024-07-22 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19400:

Attachment: (was: ci_summary-1.html)

> IndexStatusManager needs to prioritize SUCCESS over UNKNOWN states to 
> maximize availability
> ---
>
> Key: CASSANDRA-19400
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19400
> Project: Cassandra
>  Issue Type: Bug
>  Components: Feature/SAI
>Reporter: Caleb Rackliffe
>Assignee: Arun Ganesh
>Priority: Low
> Fix For: 5.0.x, 5.x
>
>  Time Spent: 2.5h
>  Remaining Estimate: 0h
>
> {{IndexStatusManager}} is responsible for knowing what SAI indexes are 
> queryable across the ring, endpoint by endpoint. There are two statuses that 
> SAI treats as queryable, but it should not treat them equally. 
> {{BUILD_SUCCEEDED}} means the index is definitely available and should be 
> able to serve queries without issue. {{UNKNOWN}} indicates that the status of 
> the index hasn’t propagated yet to this coordinator. It may be just fine, or 
> it may not be. If it isn’t a query will not return incorrect results, but it 
> will fail. If there are enough {{BUILD_SUCCEEDED}} replicas, we should ignore 
> {{UNKNOWN}} replicas and maximize availability. If the UNKNOWN replica is 
> going to become {{BUILD_SUCCEEDED}} shortly, it will happily start taking 
> requests at that point and spread the load. If not, we’ll avoid futile 
> attempts to query it too early.



--
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-19400) IndexStatusManager needs to prioritize SUCCESS over UNKNOWN states to maximize availability

2024-07-18 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19400:

Reviewers: Caleb Rackliffe, Caleb Rackliffe  (was: Caleb Rackliffe)
   Caleb Rackliffe, Caleb Rackliffe  (was: Caleb Rackliffe)
   Status: Review In Progress  (was: Patch Available)

> IndexStatusManager needs to prioritize SUCCESS over UNKNOWN states to 
> maximize availability
> ---
>
> Key: CASSANDRA-19400
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19400
> Project: Cassandra
>  Issue Type: Bug
>  Components: Feature/SAI
>Reporter: Caleb Rackliffe
>Assignee: Arun Ganesh
>Priority: Low
> Fix For: 5.0.x, 5.x
>
> Attachments: ci_summary-1.html, ci_summary.html
>
>  Time Spent: 2h
>  Remaining Estimate: 0h
>
> {{IndexStatusManager}} is responsible for knowing what SAI indexes are 
> queryable across the ring, endpoint by endpoint. There are two statuses that 
> SAI treats as queryable, but it should not treat them equally. 
> {{BUILD_SUCCEEDED}} means the index is definitely available and should be 
> able to serve queries without issue. {{UNKNOWN}} indicates that the status of 
> the index hasn’t propagated yet to this coordinator. It may be just fine, or 
> it may not be. If it isn’t a query will not return incorrect results, but it 
> will fail. If there are enough {{BUILD_SUCCEEDED}} replicas, we should ignore 
> {{UNKNOWN}} replicas and maximize availability. If the UNKNOWN replica is 
> going to become {{BUILD_SUCCEEDED}} shortly, it will happily start taking 
> requests at that point and spread the load. If not, we’ll avoid futile 
> attempts to query it too early.



--
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-19400) IndexStatusManager needs to prioritize SUCCESS over UNKNOWN states to maximize availability

2024-07-18 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19400:

Status: Needs Committer  (was: Review In Progress)

> IndexStatusManager needs to prioritize SUCCESS over UNKNOWN states to 
> maximize availability
> ---
>
> Key: CASSANDRA-19400
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19400
> Project: Cassandra
>  Issue Type: Bug
>  Components: Feature/SAI
>Reporter: Caleb Rackliffe
>Assignee: Arun Ganesh
>Priority: Low
> Fix For: 5.0.x, 5.x
>
> Attachments: ci_summary-1.html, ci_summary.html
>
>  Time Spent: 2h
>  Remaining Estimate: 0h
>
> {{IndexStatusManager}} is responsible for knowing what SAI indexes are 
> queryable across the ring, endpoint by endpoint. There are two statuses that 
> SAI treats as queryable, but it should not treat them equally. 
> {{BUILD_SUCCEEDED}} means the index is definitely available and should be 
> able to serve queries without issue. {{UNKNOWN}} indicates that the status of 
> the index hasn’t propagated yet to this coordinator. It may be just fine, or 
> it may not be. If it isn’t a query will not return incorrect results, but it 
> will fail. If there are enough {{BUILD_SUCCEEDED}} replicas, we should ignore 
> {{UNKNOWN}} replicas and maximize availability. If the UNKNOWN replica is 
> going to become {{BUILD_SUCCEEDED}} shortly, it will happily start taking 
> requests at that point and spread the load. If not, we’ll avoid futile 
> attempts to query it too early.



--
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-19400) IndexStatusManager needs to prioritize SUCCESS over UNKNOWN states to maximize availability

2024-07-16 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe commented on CASSANDRA-19400:
-

For the second reviewer, note that the attached CI results do include a failure 
in 
{{secondary_indexes_test.py::TestSecondaryIndexes::test_failing_manual_rebuild_index}},
 but that's been addressed by making sure the legacy 2i is queryable on 
{{Status.FULL_REBUILD_STARTED}}. (Only SAI becomes non-queryable on full 
rebuild.)

> IndexStatusManager needs to prioritize SUCCESS over UNKNOWN states to 
> maximize availability
> ---
>
> Key: CASSANDRA-19400
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19400
> Project: Cassandra
>  Issue Type: Bug
>  Components: Feature/SAI
>Reporter: Caleb Rackliffe
>Assignee: Arun Ganesh
>Priority: Low
> Fix For: 5.0.x, 5.x
>
> Attachments: ci_summary-1.html, ci_summary.html
>
>  Time Spent: 2h
>  Remaining Estimate: 0h
>
> {{IndexStatusManager}} is responsible for knowing what SAI indexes are 
> queryable across the ring, endpoint by endpoint. There are two statuses that 
> SAI treats as queryable, but it should not treat them equally. 
> {{BUILD_SUCCEEDED}} means the index is definitely available and should be 
> able to serve queries without issue. {{UNKNOWN}} indicates that the status of 
> the index hasn’t propagated yet to this coordinator. It may be just fine, or 
> it may not be. If it isn’t a query will not return incorrect results, but it 
> will fail. If there are enough {{BUILD_SUCCEEDED}} replicas, we should ignore 
> {{UNKNOWN}} replicas and maximize availability. If the UNKNOWN replica is 
> going to become {{BUILD_SUCCEEDED}} shortly, it will happily start taking 
> requests at that point and spread the load. If not, we’ll avoid futile 
> attempts to query it too early.



--
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-19400) IndexStatusManager needs to prioritize SUCCESS over UNKNOWN states to maximize availability

2024-07-16 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19400:

Attachment: ci_summary-1.html

> IndexStatusManager needs to prioritize SUCCESS over UNKNOWN states to 
> maximize availability
> ---
>
> Key: CASSANDRA-19400
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19400
> Project: Cassandra
>  Issue Type: Bug
>  Components: Feature/SAI
>Reporter: Caleb Rackliffe
>Assignee: Arun Ganesh
>Priority: Low
> Fix For: 5.0.x, 5.x
>
> Attachments: ci_summary-1.html, ci_summary.html
>
>  Time Spent: 2h
>  Remaining Estimate: 0h
>
> {{IndexStatusManager}} is responsible for knowing what SAI indexes are 
> queryable across the ring, endpoint by endpoint. There are two statuses that 
> SAI treats as queryable, but it should not treat them equally. 
> {{BUILD_SUCCEEDED}} means the index is definitely available and should be 
> able to serve queries without issue. {{UNKNOWN}} indicates that the status of 
> the index hasn’t propagated yet to this coordinator. It may be just fine, or 
> it may not be. If it isn’t a query will not return incorrect results, but it 
> will fail. If there are enough {{BUILD_SUCCEEDED}} replicas, we should ignore 
> {{UNKNOWN}} replicas and maximize availability. If the UNKNOWN replica is 
> going to become {{BUILD_SUCCEEDED}} shortly, it will happily start taking 
> requests at that point and spread the load. If not, we’ll avoid futile 
> attempts to query it too early.



--
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-19400) IndexStatusManager needs to prioritize SUCCESS over UNKNOWN states to maximize availability

2024-07-16 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19400:

Attachment: ci_summary.html

> IndexStatusManager needs to prioritize SUCCESS over UNKNOWN states to 
> maximize availability
> ---
>
> Key: CASSANDRA-19400
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19400
> Project: Cassandra
>  Issue Type: Bug
>  Components: Feature/SAI
>Reporter: Caleb Rackliffe
>Assignee: Arun Ganesh
>Priority: Low
> Fix For: 5.0.x, 5.x
>
> Attachments: ci_summary-1.html, ci_summary.html
>
>  Time Spent: 2h
>  Remaining Estimate: 0h
>
> {{IndexStatusManager}} is responsible for knowing what SAI indexes are 
> queryable across the ring, endpoint by endpoint. There are two statuses that 
> SAI treats as queryable, but it should not treat them equally. 
> {{BUILD_SUCCEEDED}} means the index is definitely available and should be 
> able to serve queries without issue. {{UNKNOWN}} indicates that the status of 
> the index hasn’t propagated yet to this coordinator. It may be just fine, or 
> it may not be. If it isn’t a query will not return incorrect results, but it 
> will fail. If there are enough {{BUILD_SUCCEEDED}} replicas, we should ignore 
> {{UNKNOWN}} replicas and maximize availability. If the UNKNOWN replica is 
> going to become {{BUILD_SUCCEEDED}} shortly, it will happily start taking 
> requests at that point and spread the load. If not, we’ll avoid futile 
> attempts to query it too early.



--
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-19400) IndexStatusManager needs to prioritize SUCCESS over UNKNOWN states to maximize availability

2024-07-16 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe commented on CASSANDRA-19400:
-

+1

> IndexStatusManager needs to prioritize SUCCESS over UNKNOWN states to 
> maximize availability
> ---
>
> Key: CASSANDRA-19400
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19400
> Project: Cassandra
>  Issue Type: Bug
>  Components: Feature/SAI
>Reporter: Caleb Rackliffe
>Assignee: Arun Ganesh
>Priority: Low
> Fix For: 5.0.x, 5.x
>
>  Time Spent: 2h
>  Remaining Estimate: 0h
>
> {{IndexStatusManager}} is responsible for knowing what SAI indexes are 
> queryable across the ring, endpoint by endpoint. There are two statuses that 
> SAI treats as queryable, but it should not treat them equally. 
> {{BUILD_SUCCEEDED}} means the index is definitely available and should be 
> able to serve queries without issue. {{UNKNOWN}} indicates that the status of 
> the index hasn’t propagated yet to this coordinator. It may be just fine, or 
> it may not be. If it isn’t a query will not return incorrect results, but it 
> will fail. If there are enough {{BUILD_SUCCEEDED}} replicas, we should ignore 
> {{UNKNOWN}} replicas and maximize availability. If the UNKNOWN replica is 
> going to become {{BUILD_SUCCEEDED}} shortly, it will happily start taking 
> requests at that point and spread the load. If not, we’ll avoid futile 
> attempts to query it too early.



--
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-19766) Optionally disable cqlsh HISTORY command via env variable

2024-07-12 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe edited comment on CASSANDRA-19766 at 7/12/24 3:19 PM:
--

It's probably a good enough hack for most people (see my previous 
comment/realization). I'll close this at some point...


was (Author: maedhroz):
It's probably a good enough hack for most people (see my previous 
comment/realization)

> Optionally disable cqlsh HISTORY command via env variable
> -
>
> Key: CASSANDRA-19766
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19766
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Tool/cqlsh
>Reporter: Caleb Rackliffe
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 5.0.x, 5.x
>
>
> There may be cases where we’d like to disable the saving and display of the 
> history of {{cqlsh}} commands executed. This should be fairly straightforward 
> to do via an environment variable.



--
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-19766) Optionally disable cqlsh HISTORY command via env variable

2024-07-12 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe commented on CASSANDRA-19766:
-

It's probably a good enough hack for most people (see my previous 
comment/realization)

> Optionally disable cqlsh HISTORY command via env variable
> -
>
> Key: CASSANDRA-19766
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19766
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Tool/cqlsh
>Reporter: Caleb Rackliffe
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 5.0.x, 5.x
>
>
> There may be cases where we’d like to disable the saving and display of the 
> history of {{cqlsh}} commands executed. This should be fairly straightforward 
> to do via an environment variable.



--
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-19759) CEP-15 (Accord): When starting a transaction in a table where Accord is not enabled, should fail fast rather than fail with lack of ranges

2024-07-11 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe commented on CASSANDRA-19759:
-

+1 (left minor nit in PR)

> CEP-15 (Accord): When starting a transaction in a table where Accord is not 
> enabled, should fail fast rather than fail with lack of ranges
> --
>
> Key: CASSANDRA-19759
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19759
> Project: Cassandra
>  Issue Type: Bug
>  Components: Accord
>Reporter: David Capwell
>Assignee: Youki Shiraishi
>Priority: Normal
> Fix For: NA
>
>  Time Spent: 40m
>  Remaining Estimate: 0h
>
> Reported in Slack: 
> https://the-asf.slack.com/archives/C0459N9R5C6/p1712831271287869
> The “accord_demo.txt” has the following
> {code}
> ccm create accord-cql-poc -n 3
> ccm start
> bin/cqlsh -e "create keyspace ks with replication={'class':'SimpleStrategy', 
> 'replication_factor':3};"
> bin/cqlsh -e "create table ks.tbl1 (k int primary key, v int);"
> bin/cqlsh -e "create table ks.tbl2 (k int primary key, v int);"
> bin/nodetool -h ::::::7f00:0001 -p 7100 
> createepochunsafe
> bin/nodetool -h ::::::7f00:0001 -p 7200 
> createepochunsafe
> bin/nodetool -h ::::::7f00:0001 -p 7300 
> createepochunsafe
> BEGIN TRANSACTION
>   LET row1 = (SELECT * FROM ks.tbl1 WHERE k = 1);
>   SELECT row1.v;
>   IF row1 IS NULL THEN
> INSERT INTO ks.tbl1 (k, v) VALUES (1, 2);
>   END IF
> COMMIT TRANSACTION;
> {code}
> If you run that it fails in an unclear way
> {code}
> cqlsh> BEGIN TRANSACTION
>...   LET row1 = (SELECT * FROM ks.tbl1 WHERE k = 1);
>...   SELECT row1.v;
>...   IF row1 IS NULL THEN
>... INSERT INTO ks.tbl1 (k, v) VALUES (1, 2);
>...   END IF
>... COMMIT TRANSACTION;
> NoHostAvailable: ('Unable to complete the operation against any hosts', 
> {:  error] message="java.lang.IllegalStateException: Unable to select a HomeKey 
> as the topology does not have any ranges for epoch 17">})
> {code}
> The issue is that the table was not marked as an Accord table; aka missing 
> {code}
> WITH transactional_mode='full'
> {code}
> The demo should be updated to show this, but the error message should also be 
> improved.  We validate that the table exists but now that the metadata is 
> required we should also enforce this in CQL validation



--
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-19759) CEP-15 (Accord): When starting a transaction in a table where Accord is not enabled, should fail fast rather than fail with lack of ranges

2024-07-11 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe commented on CASSANDRA-19759:
-

I've had a TODO for a while in CASSANDRA-18107 to get rid of or integrate 
\{{accord_demo.txt}} into some larger thing like 
\{{o.a.c.index.sai.README.md}}. Minor changes to keep it valid for now are fine.

> CEP-15 (Accord): When starting a transaction in a table where Accord is not 
> enabled, should fail fast rather than fail with lack of ranges
> --
>
> Key: CASSANDRA-19759
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19759
> Project: Cassandra
>  Issue Type: Bug
>  Components: Accord
>Reporter: David Capwell
>Assignee: Youki Shiraishi
>Priority: Normal
> Fix For: NA
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> Reported in Slack: 
> https://the-asf.slack.com/archives/C0459N9R5C6/p1712831271287869
> The “accord_demo.txt” has the following
> {code}
> ccm create accord-cql-poc -n 3
> ccm start
> bin/cqlsh -e "create keyspace ks with replication={'class':'SimpleStrategy', 
> 'replication_factor':3};"
> bin/cqlsh -e "create table ks.tbl1 (k int primary key, v int);"
> bin/cqlsh -e "create table ks.tbl2 (k int primary key, v int);"
> bin/nodetool -h ::::::7f00:0001 -p 7100 
> createepochunsafe
> bin/nodetool -h ::::::7f00:0001 -p 7200 
> createepochunsafe
> bin/nodetool -h ::::::7f00:0001 -p 7300 
> createepochunsafe
> BEGIN TRANSACTION
>   LET row1 = (SELECT * FROM ks.tbl1 WHERE k = 1);
>   SELECT row1.v;
>   IF row1 IS NULL THEN
> INSERT INTO ks.tbl1 (k, v) VALUES (1, 2);
>   END IF
> COMMIT TRANSACTION;
> {code}
> If you run that it fails in an unclear way
> {code}
> cqlsh> BEGIN TRANSACTION
>...   LET row1 = (SELECT * FROM ks.tbl1 WHERE k = 1);
>...   SELECT row1.v;
>...   IF row1 IS NULL THEN
>... INSERT INTO ks.tbl1 (k, v) VALUES (1, 2);
>...   END IF
>... COMMIT TRANSACTION;
> NoHostAvailable: ('Unable to complete the operation against any hosts', 
> {:  error] message="java.lang.IllegalStateException: Unable to select a HomeKey 
> as the topology does not have any ranges for epoch 17">})
> {code}
> The issue is that the table was not marked as an Accord table; aka missing 
> {code}
> WITH transactional_mode='full'
> {code}
> The demo should be updated to show this, but the error message should also be 
> improved.  We validate that the table exists but now that the metadata is 
> required we should also enforce this in CQL validation



--
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-19759) CEP-15 (Accord): When starting a transaction in a table where Accord is not enabled, should fail fast rather than fail with lack of ranges

2024-07-11 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19759:

Test and Documentation Plan: new coverage in 
[TransactionStatementTest|https://github.com/apache/cassandra/pull/3413#diff-0c7a4cee812613339e7ba3d22a20c7c05af4011a1ac6183b11a62758549e6b67]
 Status: Patch Available  (was: In Progress)

> CEP-15 (Accord): When starting a transaction in a table where Accord is not 
> enabled, should fail fast rather than fail with lack of ranges
> --
>
> Key: CASSANDRA-19759
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19759
> Project: Cassandra
>  Issue Type: Bug
>  Components: Accord
>Reporter: David Capwell
>Assignee: Youki Shiraishi
>Priority: Normal
> Fix For: NA
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> Reported in Slack: 
> https://the-asf.slack.com/archives/C0459N9R5C6/p1712831271287869
> The “accord_demo.txt” has the following
> {code}
> ccm create accord-cql-poc -n 3
> ccm start
> bin/cqlsh -e "create keyspace ks with replication={'class':'SimpleStrategy', 
> 'replication_factor':3};"
> bin/cqlsh -e "create table ks.tbl1 (k int primary key, v int);"
> bin/cqlsh -e "create table ks.tbl2 (k int primary key, v int);"
> bin/nodetool -h ::::::7f00:0001 -p 7100 
> createepochunsafe
> bin/nodetool -h ::::::7f00:0001 -p 7200 
> createepochunsafe
> bin/nodetool -h ::::::7f00:0001 -p 7300 
> createepochunsafe
> BEGIN TRANSACTION
>   LET row1 = (SELECT * FROM ks.tbl1 WHERE k = 1);
>   SELECT row1.v;
>   IF row1 IS NULL THEN
> INSERT INTO ks.tbl1 (k, v) VALUES (1, 2);
>   END IF
> COMMIT TRANSACTION;
> {code}
> If you run that it fails in an unclear way
> {code}
> cqlsh> BEGIN TRANSACTION
>...   LET row1 = (SELECT * FROM ks.tbl1 WHERE k = 1);
>...   SELECT row1.v;
>...   IF row1 IS NULL THEN
>... INSERT INTO ks.tbl1 (k, v) VALUES (1, 2);
>...   END IF
>... COMMIT TRANSACTION;
> NoHostAvailable: ('Unable to complete the operation against any hosts', 
> {:  error] message="java.lang.IllegalStateException: Unable to select a HomeKey 
> as the topology does not have any ranges for epoch 17">})
> {code}
> The issue is that the table was not marked as an Accord table; aka missing 
> {code}
> WITH transactional_mode='full'
> {code}
> The demo should be updated to show this, but the error message should also be 
> improved.  We validate that the table exists but now that the metadata is 
> required we should also enforce this in CQL validation



--
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-19759) CEP-15 (Accord): When starting a transaction in a table where Accord is not enabled, should fail fast rather than fail with lack of ranges

2024-07-11 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19759:

Reviewers: Caleb Rackliffe, David Capwell, Caleb Rackliffe
   Caleb Rackliffe, David Capwell, Caleb Rackliffe  (was: Caleb 
Rackliffe, David Capwell)
   Status: Review In Progress  (was: Patch Available)

> CEP-15 (Accord): When starting a transaction in a table where Accord is not 
> enabled, should fail fast rather than fail with lack of ranges
> --
>
> Key: CASSANDRA-19759
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19759
> Project: Cassandra
>  Issue Type: Bug
>  Components: Accord
>Reporter: David Capwell
>Assignee: Youki Shiraishi
>Priority: Normal
> Fix For: NA
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> Reported in Slack: 
> https://the-asf.slack.com/archives/C0459N9R5C6/p1712831271287869
> The “accord_demo.txt” has the following
> {code}
> ccm create accord-cql-poc -n 3
> ccm start
> bin/cqlsh -e "create keyspace ks with replication={'class':'SimpleStrategy', 
> 'replication_factor':3};"
> bin/cqlsh -e "create table ks.tbl1 (k int primary key, v int);"
> bin/cqlsh -e "create table ks.tbl2 (k int primary key, v int);"
> bin/nodetool -h ::::::7f00:0001 -p 7100 
> createepochunsafe
> bin/nodetool -h ::::::7f00:0001 -p 7200 
> createepochunsafe
> bin/nodetool -h ::::::7f00:0001 -p 7300 
> createepochunsafe
> BEGIN TRANSACTION
>   LET row1 = (SELECT * FROM ks.tbl1 WHERE k = 1);
>   SELECT row1.v;
>   IF row1 IS NULL THEN
> INSERT INTO ks.tbl1 (k, v) VALUES (1, 2);
>   END IF
> COMMIT TRANSACTION;
> {code}
> If you run that it fails in an unclear way
> {code}
> cqlsh> BEGIN TRANSACTION
>...   LET row1 = (SELECT * FROM ks.tbl1 WHERE k = 1);
>...   SELECT row1.v;
>...   IF row1 IS NULL THEN
>... INSERT INTO ks.tbl1 (k, v) VALUES (1, 2);
>...   END IF
>... COMMIT TRANSACTION;
> NoHostAvailable: ('Unable to complete the operation against any hosts', 
> {:  error] message="java.lang.IllegalStateException: Unable to select a HomeKey 
> as the topology does not have any ranges for epoch 17">})
> {code}
> The issue is that the table was not marked as an Accord table; aka missing 
> {code}
> WITH transactional_mode='full'
> {code}
> The demo should be updated to show this, but the error message should also be 
> improved.  We validate that the table exists but now that the metadata is 
> required we should also enforce this in CQL validation



--
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-19764) Corruption can occur while a field is being added to UDT clustering key

2024-07-11 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe commented on CASSANDRA-19764:
-

bq. I'm not sure the test is actually getting diverging schemas with 
cluster.coordinator(1).execute("alter type " + KEYSPACE + ".a add bar text", 
ConsistencyLevel.QUORUM)

CC [~samt]

> Corruption can occur while a field is being added to UDT clustering key
> ---
>
> Key: CASSANDRA-19764
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19764
> Project: Cassandra
>  Issue Type: Bug
>  Components: Feature/UDT
>Reporter: Branimir Lambov
>Priority: Normal
>
> CASSANDRA-15938 made some improvements in how unknown components in UDTs are 
> treated. Unfortunately this can cause corruption as soon as more than one 
> value is inserted for a partition.
> The problem can be easily shown by modifying the 
> {{FrozenUDTTest.testDivergentSchema}} test to insert two entries in the wrong 
> order:
> {code:java}
> cluster.coordinator(1).execute("insert into " + KEYSPACE + ".x (id, ck, i) 
> VALUES (?, " + json(1, 2) + ", ? )", ConsistencyLevel.ALL,
> 1, 2);
> cluster.coordinator(1).execute("insert into " + KEYSPACE + ".x (id, ck, i) 
> VALUES (?, " + json(1, 1) + ", ? )", ConsistencyLevel.ALL,
> 1, 1);
> {code}
> after which we can get corrupted sstable state, shown as a
> {code:java}
> java.lang.AssertionError: Lower bound [SSTABLE_LOWER_BOUND(1) ]is bigger than 
> first returned value [Row: ck=1 | i=2]
> {code}
> exception, or results like {{[[1],[2],[2],[1]]}} or {{[[2],[1],[2]]}} for 
> {{select i from x WHERE id = 1}} depending on which node we use as 
> coordinator.
> Because we don't know the type of new fields and cannot properly order 
> entries, we need to outright reject UDT keys that are not compatible with a 
> replica's schema.



--
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-19766) Optionally disable cqlsh HISTORY command via env variable

2024-07-11 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe commented on CASSANDRA-19766:
-

Before someone else chimes in, I guess we can sort of do this by just setting 
{{CQL_HISTORY}} to {{/dev/null}}

> Optionally disable cqlsh HISTORY command via env variable
> -
>
> Key: CASSANDRA-19766
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19766
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Tool/cqlsh
>Reporter: Caleb Rackliffe
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 5.0.x, 5.x
>
>
> There may be cases where we’d like to disable the saving and display of the 
> history of {{cqlsh}} commands executed. This should be fairly straightforward 
> to do via an environment variable.



--
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-19766) Optionally disable cqlsh HISTORY command via env variable

2024-07-11 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19766:

Change Category: Operability
 Complexity: Low Hanging Fruit
  Fix Version/s: 5.0.x
 5.x
 Status: Open  (was: Triage Needed)

> Optionally disable cqlsh HISTORY command via env variable
> -
>
> Key: CASSANDRA-19766
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19766
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Tool/cqlsh
>Reporter: Caleb Rackliffe
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 5.0.x, 5.x
>
>
> There may be cases where we’d like to disable the saving and display of the 
> history of {{cqlsh}} commands executed. This should be fairly straightforward 
> to do via an environment variable.



--
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-19766) Optionally disable cqlsh HISTORY command via env variable

2024-07-11 Thread Caleb Rackliffe (Jira)
Caleb Rackliffe created CASSANDRA-19766:
---

 Summary: Optionally disable cqlsh HISTORY command via env variable
 Key: CASSANDRA-19766
 URL: https://issues.apache.org/jira/browse/CASSANDRA-19766
 Project: Cassandra
  Issue Type: Improvement
  Components: Tool/cqlsh
Reporter: Caleb Rackliffe
Assignee: Caleb Rackliffe


There may be cases where we’d like to disable the saving and display of the 
history of {{cqlsh}} commands executed. This should be fairly straightforward 
to do via an environment variable.



--
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-19764) Corruption can occur while a field is being added to UDT clustering key

2024-07-11 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe commented on CASSANDRA-19764:
-

So to be clear, this should reproduce on {{trunk}} as...

{noformat}
@Test
public void testDivergentSchemas() throws Throwable
{
try (Cluster cluster = init(Cluster.create(2)))
{
cluster.schemaChange("create type " + KEYSPACE + ".a (foo text)");
cluster.schemaChange("create table " + KEYSPACE + ".x (id int, ck 
frozen, i int, primary key (id, ck))");
cluster.filters().verbs(Verb.TCM_REPLICATION.id).drop().on();
cluster.coordinator(1).execute("alter type " + KEYSPACE + ".a add bar 
text", ConsistencyLevel.QUORUM);
cluster.coordinator(1).execute("insert into " + KEYSPACE + ".x (id, ck, 
i) VALUES (?, " + json(1, 2) + ", ? )", ConsistencyLevel.ALL, 1, 2);
cluster.coordinator(1).execute("insert into " + KEYSPACE + ".x (id, ck, 
i) VALUES (?, " + json(1, 1) + ", ? )", ConsistencyLevel.ALL, 1, 1);
cluster.get(2).flush(KEYSPACE);

Object[][] res1 = cluster.coordinator(1).execute("select i from " + 
KEYSPACE + ".x WHERE id = 1", ConsistencyLevel.ALL);
Object[][] res2 = cluster.coordinator(2).execute("select i from " + 
KEYSPACE + ".x WHERE id = 1", ConsistencyLevel.ALL);

assertArrayEquals(res1, res2);
}
}
{noformat}

Not able to get a failure, but perhaps I'm missing something. Either way, it 
seems like a bad idea to allow altering UDTs once they are part of a primary 
key...

> Corruption can occur while a field is being added to UDT clustering key
> ---
>
> Key: CASSANDRA-19764
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19764
> Project: Cassandra
>  Issue Type: Bug
>  Components: Feature/UDT
>Reporter: Branimir Lambov
>Priority: Normal
>
> CASSANDRA-15938 made some improvements in how unknown components in UDTs are 
> treated. Unfortunately this can cause corruption as soon as more than one 
> value is inserted for a partition.
> The problem can be easily shown by modifying the 
> {{FrozenUDTTest.testDivergentSchema}} test to insert two entries in the wrong 
> order:
> {code:java}
> cluster.coordinator(1).execute("insert into " + KEYSPACE + ".x (id, ck, i) 
> VALUES (?, " + json(1, 2) + ", ? )", ConsistencyLevel.ALL,
> 1, 2);
> cluster.coordinator(1).execute("insert into " + KEYSPACE + ".x (id, ck, i) 
> VALUES (?, " + json(1, 1) + ", ? )", ConsistencyLevel.ALL,
> 1, 1);
> {code}
> after which we can get corrupted sstable state, shown as a
> {code:java}
> java.lang.AssertionError: Lower bound [SSTABLE_LOWER_BOUND(1) ]is bigger than 
> first returned value [Row: ck=1 | i=2]
> {code}
> exception, or results like {{[[1],[2],[2],[1]]}} or {{[[2],[1],[2]]}} for 
> {{select i from x WHERE id = 1}} depending on which node we use as 
> coordinator.
> Because we don't know the type of new fields and cannot properly order 
> entries, we need to outright reject UDT keys that are not compatible with a 
> replica's schema.



--
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-19321) Accord: Command to mark replicas as “stale" for decommission

2024-07-08 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19321:

Fix Version/s: NA
   (was: 5.x)

> Accord: Command to mark replicas as “stale" for decommission
> 
>
> Key: CASSANDRA-19321
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19321
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Accord
>Reporter: Benedict Elliott Smith
>Assignee: Caleb Rackliffe
>Priority: High
> Fix For: NA
>
>
> So that other replicas may continue to cleanup their state, we must have an 
> operator command for marking replicas as stale so that the remaining replicas 
> do not wait for them to coordinate their durability status.



--
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-19321) Accord: Command to mark replicas as “stale" for decommission

2024-07-08 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19321:

Fix Version/s: (was: NA)

> Accord: Command to mark replicas as “stale" for decommission
> 
>
> Key: CASSANDRA-19321
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19321
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Accord
>Reporter: Benedict Elliott Smith
>Assignee: Caleb Rackliffe
>Priority: High
>
> So that other replicas may continue to cleanup their state, we must have an 
> operator command for marking replicas as stale so that the remaining replicas 
> do not wait for them to coordinate their durability status.



--
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-19321) Accord: Command to mark replicas as “stale" for decommission

2024-07-08 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19321:

Change Category: Operability
 Complexity: Normal
  Fix Version/s: 5.x
   Priority: High  (was: Normal)
 Status: Open  (was: Triage Needed)

> Accord: Command to mark replicas as “stale" for decommission
> 
>
> Key: CASSANDRA-19321
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19321
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Accord
>Reporter: Benedict Elliott Smith
>Assignee: Caleb Rackliffe
>Priority: High
> Fix For: 5.x
>
>
> So that other replicas may continue to cleanup their state, we must have an 
> operator command for marking replicas as stale so that the remaining replicas 
> do not wait for them to coordinate their durability status.



--
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-19321) Accord: Command to mark replicas as “stale" for decommission

2024-07-08 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe edited comment on CASSANDRA-19321 at 7/8/24 4:05 PM:
-

Implementation Notes (draft)

- {{ClusterMetadata}} contains a set of CMS node IDs for replicas that should 
be considered stale
-- This could initially sit alongside {{AccordFastPath}}

- nodetool command group for Accord, similar to {{CMSAdmin}}
-- {{nodetool accord mark_stale }} feeds hostname to the server, where 
it's mapped to a CMS node ID
-- {{ClusterMetadata}} is updated, i.e. a transformation committed that 
resembles {{ReconfigureAccordFastPath}}, but adds replica to the stale set and 
produces the new metadata.
-- Care probably needs to be taken to ensure we don't mark too many nodes stale 
and therefore stop guaranteeing quorums.

- 
{{CoordinateDurabilityScheduling#coordinateShardDurableAfterExclusiveSyncPoint()}},
 via {{CoordinateShardDurable#coordinate()}}, uses updated {{Topology}} to 
exclude stale replicas from the set we need to wait for. (However, we always 
need to wait for at least a quorum. Should this even be possible if we don't 
allow marking too many stale?)
-- {{AccordTopology}} and related classes may need additional logic to 
synthesize Accord {{Topology}} instances from {{ClusterMetadata}}.


was (Author: maedhroz):
Implementation Notes (draft)

- {{ClusterMetadata}} contains a set of CMS node IDs for replicas that should 
be considered stale
-- This could initially sit alongside {{AccordFastPath}}

- nodetool command group for Accord, similar to {{CMSAdmin}}
-- {{nodetool accord mark_stale }} feeds hostname to the server, where 
it's mapped to a CMS node ID
-- {{ClusterMetadata}} is updated, i.e. a transformation committed that 
resembles {{ReconfigureAccordFastPath}}, but adds replica to the stale set and 
produces the new metadata.

- 
{{CoordinateDurabilityScheduling#coordinateShardDurableAfterExclusiveSyncPoint()}},
 via {{CoordinateShardDurable#coordinate()}}, uses updated {{Topology}} to 
exclude stale replicas from the set we need to wait for.
-- {{AccordTopology}} and related classes may need additional logic to 
synthesize Accord {{Topology}} instances from {{ClusterMetadata}}.

> Accord: Command to mark replicas as “stale" for decommission
> 
>
> Key: CASSANDRA-19321
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19321
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Accord
>Reporter: Benedict Elliott Smith
>Assignee: Caleb Rackliffe
>Priority: Normal
>
> So that other replicas may continue to cleanup their state, we must have an 
> operator command for marking replicas as stale so that the remaining replicas 
> do not wait for them to coordinate their durability status.



--
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-17445) Library airlift/airline has been deprecated

2024-07-02 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-17445:

Reviewers: Caleb Rackliffe

> Library airlift/airline has been deprecated
> ---
>
> Key: CASSANDRA-17445
> URL: https://issues.apache.org/jira/browse/CASSANDRA-17445
> Project: Cassandra
>  Issue Type: Task
>  Components: Dependencies
>Reporter: Tibor Repasi
>Assignee: Maxim Muzafarov
>Priority: Normal
> Fix For: 5.x
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> The [airlift/airline|https://github.com/airlift/airline] library has been 
> deprecated and is not maintained since [8 Jun 
> 2021|https://github.com/airlift/airline/commit/ae3d7e103bdc140969bde944d4ba09345d663a61].
>  It is used in many tools and some tests of Cassandra which should be 
> reviewed.
> Tools using that library:
> * org.apache.cassandra.tools.JMXTool
> * org.apache.cassandra.tools.NodeTool
> * org.apache.cassandra.stress.Compaction
> * org.apache.cassandra.fqltool.FullQueryLogTool
> Tests using it:
> * org.apache.cassandra.simulator.SimulationRunner
> Alternatives (as suggested in the depreciation notice):
> * [Airline 2|https://rvesse.github.io/airline/]
> * [picocli|https://picocli.info]



--
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-19704) UnsupportedOperationException is thrown when no space for LCS

2024-07-02 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19704:

  Fix Version/s: 4.0.14
 4.1.6
 5.0
 5.1
 (was: 5.x)
 (was: 4.0.x)
 (was: 4.1.x)
 (was: 5.0.x)
  Since Version: 4.0
Source Control Link: 
https://github.com/apache/cassandra/commit/d54646e40957ffc18f651753941fac3068b79f8e
 Resolution: Fixed
 Status: Resolved  (was: Ready to Commit)

Committed as 
https://github.com/apache/cassandra/commit/d54646e40957ffc18f651753941fac3068b79f8e

> UnsupportedOperationException is thrown when no space for LCS
> -
>
> Key: CASSANDRA-19704
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19704
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Compaction/LCS
>Reporter: Zhao Yang
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 4.0.14, 4.1.6, 5.0, 5.1
>
> Attachments: ci_summary-1.html, ci_summary-2.html, ci_summary-3.html, 
> ci_summary.html
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> In {{CompactionTask#buildCompactionCandidatesForAvailableDiskSpace}} with 
> LCS, if node has limited disk space and can't remove any sstable from L0 or 
> L1 in {{{}LeveledCompactionTask#reduceScopeForLimitedSpace{}}}, 
> {{LeveledCompactionTask#partialCompactionsAcceptable}} will throw 
> {{UnsupportedOperationException}}.
> We should handle {{LeveledCompactionTask#partialCompactionsAcceptable}} more 
> gracefully with {{return level <= 1}} or simply {{true}} since 
> {{reduceScopeForLimitedSpace}} only removes sstable from L0 or L1.
> Related https://issues.apache.org/jira/browse/CASSANDRA-17272



--
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-19400) IndexStatusManager needs to prioritize SUCCESS over UNKNOWN states to maximize availability

2024-07-02 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe commented on CASSANDRA-19400:
-

[~arkn98] Hi there! Just checking in on this. Let me know if you need any 
further help or to reassign...

> IndexStatusManager needs to prioritize SUCCESS over UNKNOWN states to 
> maximize availability
> ---
>
> Key: CASSANDRA-19400
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19400
> Project: Cassandra
>  Issue Type: Bug
>  Components: Feature/SAI
>Reporter: Caleb Rackliffe
>Assignee: Arun Ganesh
>Priority: Low
> Fix For: 5.0.x, 5.x
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> {{IndexStatusManager}} is responsible for knowing what SAI indexes are 
> queryable across the ring, endpoint by endpoint. There are two statuses that 
> SAI treats as queryable, but it should not treat them equally. 
> {{BUILD_SUCCEEDED}} means the index is definitely available and should be 
> able to serve queries without issue. {{UNKNOWN}} indicates that the status of 
> the index hasn’t propagated yet to this coordinator. It may be just fine, or 
> it may not be. If it isn’t a query will not return incorrect results, but it 
> will fail. If there are enough {{BUILD_SUCCEEDED}} replicas, we should ignore 
> {{UNKNOWN}} replicas and maximize availability. If the UNKNOWN replica is 
> going to become {{BUILD_SUCCEEDED}} shortly, it will happily start taking 
> requests at that point and spread the load. If not, we’ll avoid futile 
> attempts to query it too early.



--
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-19704) UnsupportedOperationException is thrown when no space for LCS

2024-07-02 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19704:

Status: Ready to Commit  (was: Review In Progress)

[~jasonstack] Partly because I'm going to be out until next Monday, I'm going 
to just move forward to commit the {{level == 0}} version of the fix. We may 
miss an opportunity to compact some expired SSTables, but that can be improved 
later.

> UnsupportedOperationException is thrown when no space for LCS
> -
>
> Key: CASSANDRA-19704
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19704
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Compaction/LCS
>Reporter: Zhao Yang
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 4.0.x, 4.1.x, 5.0.x, 5.x
>
> Attachments: ci_summary-1.html, ci_summary-2.html, ci_summary-3.html, 
> ci_summary.html
>
>
> In {{CompactionTask#buildCompactionCandidatesForAvailableDiskSpace}} with 
> LCS, if node has limited disk space and can't remove any sstable from L0 or 
> L1 in {{{}LeveledCompactionTask#reduceScopeForLimitedSpace{}}}, 
> {{LeveledCompactionTask#partialCompactionsAcceptable}} will throw 
> {{UnsupportedOperationException}}.
> We should handle {{LeveledCompactionTask#partialCompactionsAcceptable}} more 
> gracefully with {{return level <= 1}} or simply {{true}} since 
> {{reduceScopeForLimitedSpace}} only removes sstable from L0 or L1.
> Related https://issues.apache.org/jira/browse/CASSANDRA-17272



--
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-19704) UnsupportedOperationException is thrown when no space for LCS

2024-07-02 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19704:

Reviewers: Marcus Eriksson, Zhao Yang  (was: Zhao Yang)

> UnsupportedOperationException is thrown when no space for LCS
> -
>
> Key: CASSANDRA-19704
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19704
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Compaction/LCS
>Reporter: Zhao Yang
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 4.0.x, 4.1.x, 5.0.x, 5.x
>
> Attachments: ci_summary-1.html, ci_summary-2.html, ci_summary-3.html, 
> ci_summary.html
>
>
> In {{CompactionTask#buildCompactionCandidatesForAvailableDiskSpace}} with 
> LCS, if node has limited disk space and can't remove any sstable from L0 or 
> L1 in {{{}LeveledCompactionTask#reduceScopeForLimitedSpace{}}}, 
> {{LeveledCompactionTask#partialCompactionsAcceptable}} will throw 
> {{UnsupportedOperationException}}.
> We should handle {{LeveledCompactionTask#partialCompactionsAcceptable}} more 
> gracefully with {{return level <= 1}} or simply {{true}} since 
> {{reduceScopeForLimitedSpace}} only removes sstable from L0 or L1.
> Related https://issues.apache.org/jira/browse/CASSANDRA-17272



--
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-19604) Add support for BETWEEN operator

2024-07-01 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe commented on CASSANDRA-19604:
-

Was taking a look at this. Is this bit unused in the grammar? (i.e. in 
{{Parser.g}})

{noformat}
betweenLiterals returns [Terms.Raw literals]
@init { List list = new ArrayList<>(); }
@after { $literals = Terms.Raw.of(list); }
: t1=tupleLiteral { list.add(t1); } K_AND t2=tupleLiteral { list.add(t2); }
;
{noformat}

> Add support for BETWEEN operator
> 
>
> Key: CASSANDRA-19604
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19604
> Project: Cassandra
>  Issue Type: Improvement
>  Components: CQL/Interpreter
>Reporter: Benjamin Lerer
>Assignee: Simon Chess
>Priority: Normal
> Fix For: 5.1
>
>  Time Spent: 3h 20m
>  Remaining Estimate: 0h
>
> CQL support the {{>=}} and {{<=}} but does not support yet the {{BETWEEN}} 
> operator. After CASSANDRA-19341 adding new operators should be much simpler 
> and safer than it use to be.
> For the scope of this ticket {{BETWEEN}} support should be added for 
> {{WHERE}} clauses of {{SELECT}} and {{DELETE}} queries (for single column and 
> multi-column restrictions). NOT BETWEEN should be added and should be 
> supported everywhere BETWEEN is.
> +Additional information for newcomers:+
> Parts that will need to be modified:
>  * {{Lexer.g}} and {{Parser.g}} to add support for the new keyword and syntax
>  * The {{Operator.class}} to add the new {{BETWEEN}} operator
>  * Unit tests in {{SelectSingleColumnRelationTest}} and 
> {{SelectMultiColumnRelationTest}} classes for the different types of columns 
> (partition key, clustering, static and regular).
>  * CQLSH auto completion in {{cql3handling.py}} and test for it in 
> {{test_cqlsh_completion.py}}
>  * Update the documentation
> Of course this is just an overview and some other parts might have to be 
> changed as well.



--
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-19321) Accord: Command to mark replicas as “stale" for decommission

2024-06-28 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe edited comment on CASSANDRA-19321 at 6/28/24 5:14 PM:
--

bq. the node will be offline for some time

Fair. From a UX perspective, I guess there are a couple options:

{{nodetool accord mark_stale }}, {{nodetool accord mark_active }}

This might be the simplest, but if there are other states, that might get 
unwieldy.

{{nodetool accord set_durability_status  [stale|active]}}

One command, specific, would accommodate other statuses...this might be my 
pick. WDYT?

CC [~aweisberg] [~dcapwell]


was (Author: maedhroz):
bq. the node will be offline for some time

Fair. From a UX perspective, I guess there are a couple options:

{{nodetool accord mark_stale }}, {{nodetool accord mark_active }}

This might be the simplest, but if there are other states, that might get 
unwieldy.

{{nodetool accord set_durability_status  [stale|active]}}

One command, would accommodate other statuses...this might be my pick. WDYT?

CC [~aweisberg] [~dcapwell]

> Accord: Command to mark replicas as “stale" for decommission
> 
>
> Key: CASSANDRA-19321
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19321
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Accord
>Reporter: Benedict Elliott Smith
>Assignee: Caleb Rackliffe
>Priority: Normal
>
> So that other replicas may continue to cleanup their state, we must have an 
> operator command for marking replicas as stale so that the remaining replicas 
> do not wait for them to coordinate their durability status.



--
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-19321) Accord: Command to mark replicas as “stale" for decommission

2024-06-28 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe commented on CASSANDRA-19321:
-

bq. the node will be offline for some time

Fair. From a UX perspective, I guess there are a couple options:

{{nodetool accord mark_stale }}, {{nodetool accord mark_active }}

This might be the simplest, but if there are other states, that might get 
unwieldy.

{{nodetool accord set_durability_status  [stale|active]}}

One command, would accommodate other statuses...this might be my pick. WDYT?

CC [~aweisberg] [~dcapwell]

> Accord: Command to mark replicas as “stale" for decommission
> 
>
> Key: CASSANDRA-19321
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19321
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Accord
>Reporter: Benedict Elliott Smith
>Assignee: Caleb Rackliffe
>Priority: Normal
>
> So that other replicas may continue to cleanup their state, we must have an 
> operator command for marking replicas as stale so that the remaining replicas 
> do not wait for them to coordinate their durability status.



--
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-19321) Accord: Command to mark replicas as “stale" for decommission

2024-06-27 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe commented on CASSANDRA-19321:
-

Implementation Notes (draft)

- {{ClusterMetadata}} contains a set of CMS node IDs for replicas that should 
be considered stale
-- This could initially sit alongside {{AccordFastPath}}

- nodetool command group for Accord, similar to {{CMSAdmin}}
-- {{nodetool accord mark_stale }} feeds hostname to the server, where 
it's mapped to a CMS node ID
-- {{ClusterMetadata}} is updated, i.e. a transformation committed that 
resembles {{ReconfigureAccordFastPath}}, but adds replica to the stale set and 
produces the new metadata.

- 
{{CoordinateDurabilityScheduling#coordinateShardDurableAfterExclusiveSyncPoint()}},
 via {{CoordinateShardDurable#coordinate()}}, uses updated {{Topology}} to 
exclude stale replicas from the set we need to wait for.
-- {{AccordTopology}} and related classes may need additional logic to 
synthesize Accord {{Topology}} instances from {{ClusterMetadata}}.

> Accord: Command to mark replicas as “stale" for decommission
> 
>
> Key: CASSANDRA-19321
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19321
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Accord
>Reporter: Benedict Elliott Smith
>Assignee: Caleb Rackliffe
>Priority: Normal
>
> So that other replicas may continue to cleanup their state, we must have an 
> operator command for marking replicas as stale so that the remaining replicas 
> do not wait for them to coordinate their durability status.



--
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-18107) CEP-15: Multi-Partition Transaction CQL Support (Alpha -> v1)

2024-06-26 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe commented on CASSANDRA-18107:
-

[~ifesdjeen] I might be able to roll selecting entire partitions into this 
issue. (I've made a note above under "Features" for now.)

> CEP-15: Multi-Partition Transaction CQL Support (Alpha -> v1)
> -
>
> Key: CASSANDRA-18107
> URL: https://issues.apache.org/jira/browse/CASSANDRA-18107
> Project: Cassandra
>  Issue Type: New Feature
>  Components: Accord, CQL/Semantics, CQL/Syntax
>Reporter: Caleb Rackliffe
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 5.x
>
>
> With CASSANDRA-17719 complete, basic/alpha CQL support for Accord is now 
> available in the 
> [cep-15-accord|https://github.com/apache/cassandra/commits/cep-15-accord] 
> branch. There are, however, a number of features and enhancements that we 
> would still like to add before we make it available to users. Here is a 
> summary of those items, broadly categorized:
> h3. *High Priority*
> *Error Messages and UX*
>  - Fix the element/field names in result metadata to match the user query
>  - Better error messages
>  -- Append/subtracting to/from frozen list
>  -- attempts to use reference in WHERE clause
>  -- LET using a reserved word
> *Testing*
>  - Figure out the original intent of placeholder tests in 
> {{AccordIntegrationTest}} (ex. {{{}acceptInvalidationTest(){}}})
> *Features*
>  - Support for returning the result of an {{{}IF{}}}/condition
>  - Constant terms on the RHS of LET
>  - Support for having a reference on both LHS and RHS of {{IF}} predicates
>  - Support for {{{}CONTAINS{}}}, {{{}CONTAINS KEY{}}}, and {{IN}} (important 
> for CAS parity)
>  - Mixed conditional and unconditional updates
>  - Arithmetic operations on references in {{{}INSERT{}}}/{{{}UPDATE{}}} (ex. 
> INSERT INTO ks.tbl1 (k, c, v) VALUES (0, 0, a.v + 1)
>  - Support TTLs specified in txn updates.
>  - Allow partition reads in SELECT (i.e. only limit to one row on the 
> right-hand side of LET statements)
> *Tooling*
>  - Remove {{reateepochunsafe}} references in {{JMXGetterCheckTest}}
>  *Documentation*
>  - JavaDoc for all new statement classes
> h3. *Nice to Have*
> *Domain Object Cleanup*
>  - Given {{Selector}} is serializable, attempt to reuse it in 
> {{TxnReference}} rather than hard coding data conversion cases
>  - Separate current current {{LET}} statement from {{{}SelectStatement{}}}, 
> likely as a new {{LetStatement}} that names a {{SelectStatement}}
>  - Explore unifying {{Operation}} and {{ReferenceOperation}}
>  - Include non-Row items of {{FilteredPartition}} in 
> {{TxnData#estimatedSizeOnHeap()}}
>  - Explore possibility of making {{Bound}} serializable and using it directly 
> in {{TxnCondition}}
>  - Change internal representation of {{TxnDataName}} to avoid {{String}} -> 
> {{ByteBuffer}} conversions
>  - Have {{{}TxnCondition{}}}/{{{}TxnUpdate{}}} support {{slice()}} to full 
> take advantage of partial state replication
>  - Update serialization logic to reflect CASSANDRA-18099
> *Features*
>  - Full JSON support
>  - Nested UDT support
>  *Documentation*
>  - CQL language documentation and bump the CQL language specification version
>  - JavaDoc for all new statement classes
>  - Integrate {{demo.txt}} into broader documentation somewhere or remove



--
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-18107) CEP-15: Multi-Partition Transaction CQL Support (Alpha -> v1)

2024-06-26 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-18107:

Description: 
With CASSANDRA-17719 complete, basic/alpha CQL support for Accord is now 
available in the 
[cep-15-accord|https://github.com/apache/cassandra/commits/cep-15-accord] 
branch. There are, however, a number of features and enhancements that we would 
still like to add before we make it available to users. Here is a summary of 
those items, broadly categorized:
h3. *High Priority*

*Error Messages and UX*
 - Fix the element/field names in result metadata to match the user query
 - Better error messages
 -- Append/subtracting to/from frozen list
 -- attempts to use reference in WHERE clause
 -- LET using a reserved word

*Testing*
 - Figure out the original intent of placeholder tests in 
{{AccordIntegrationTest}} (ex. {{{}acceptInvalidationTest(){}}})

*Features*
 - Support for returning the result of an {{{}IF{}}}/condition
 - Constant terms on the RHS of LET
 - Support for having a reference on both LHS and RHS of {{IF}} predicates
 - Support for {{{}CONTAINS{}}}, {{{}CONTAINS KEY{}}}, and {{IN}} (important 
for CAS parity)
 - Mixed conditional and unconditional updates
 - Arithmetic operations on references in {{{}INSERT{}}}/{{{}UPDATE{}}} (ex. 
INSERT INTO ks.tbl1 (k, c, v) VALUES (0, 0, a.v + 1)
 - Support TTLs specified in txn updates.
 - Allow partition reads in SELECT (i.e. only limit to one row on the 
right-hand side of LET statements)

*Tooling*
 - Remove {{reateepochunsafe}} references in {{JMXGetterCheckTest}}

 *Documentation*
 - JavaDoc for all new statement classes

h3. *Nice to Have*

*Domain Object Cleanup*
 - Given {{Selector}} is serializable, attempt to reuse it in {{TxnReference}} 
rather than hard coding data conversion cases
 - Separate current current {{LET}} statement from {{{}SelectStatement{}}}, 
likely as a new {{LetStatement}} that names a {{SelectStatement}}
 - Explore unifying {{Operation}} and {{ReferenceOperation}}
 - Include non-Row items of {{FilteredPartition}} in 
{{TxnData#estimatedSizeOnHeap()}}
 - Explore possibility of making {{Bound}} serializable and using it directly 
in {{TxnCondition}}
 - Change internal representation of {{TxnDataName}} to avoid {{String}} -> 
{{ByteBuffer}} conversions
 - Have {{{}TxnCondition{}}}/{{{}TxnUpdate{}}} support {{slice()}} to full take 
advantage of partial state replication
 - Update serialization logic to reflect CASSANDRA-18099

*Features*
 - Full JSON support
 - Nested UDT support

 *Documentation*
 - CQL language documentation and bump the CQL language specification version
 - JavaDoc for all new statement classes
 - Integrate {{demo.txt}} into broader documentation somewhere or remove

  was:
With CASSANDRA-17719 complete, basic/alpha CQL support for Accord is now 
available in the 
[cep-15-accord|https://github.com/apache/cassandra/commits/cep-15-accord] 
branch. There are, however, a number of features and enhancements that we would 
still like to add before we make it available to users. Here is a summary of 
those items, broadly categorized:
h3. *High Priority*

*Error Messages and UX*
 - Fix the element/field names in result metadata to match the user query
 - Better error messages
 -- Append/subtracting to/from frozen list
 -- attempts to use reference in WHERE clause
 -- LET using a reserved word

*Testing*
 - Figure out the original intent of placeholder tests in 
{{AccordIntegrationTest}} (ex. {{{}acceptInvalidationTest(){}}})

*Features*
 - Support for returning the result of an {{{}IF{}}}/condition
 - Constant terms on the RHS of LET
 - Support for having a reference on both LHS and RHS of {{IF}} predicates
 - Support for {{{}CONTAINS{}}}, {{{}CONTAINS KEY{}}}, and {{IN}} (important 
for CAS parity)
 - Mixed conditional and unconditional updates
 - Arithmetic operations on references in {{{}INSERT{}}}/{{{}UPDATE{}}} (ex. 
INSERT INTO ks.tbl1 (k, c, v) VALUES (0, 0, a.v + 1)
 - Support TTLs specified in txn updates.

*Tooling*
 - Remove {{reateepochunsafe}} references in {{JMXGetterCheckTest}}

 *Documentation*
 - JavaDoc for all new statement classes

h3. *Nice to Have*

*Domain Object Cleanup*
 - Given {{Selector}} is serializable, attempt to reuse it in {{TxnReference}} 
rather than hard coding data conversion cases
 - Separate current current {{LET}} statement from {{{}SelectStatement{}}}, 
likely as a new {{LetStatement}} that names a {{SelectStatement}}
 - Explore unifying {{Operation}} and {{ReferenceOperation}}
 - Include non-Row items of {{FilteredPartition}} in 
{{TxnData#estimatedSizeOnHeap()}}
 - Explore possibility of making {{Bound}} serializable and using it directly 
in {{TxnCondition}}
 - Change internal representation of {{TxnDataName}} to avoid {{String}} -> 
{{ByteBuffer}} conversions
 - Have {{{}TxnCondition{}}}/{{{}TxnUpdate{}}} support {{slice()}} to full take 

[jira] [Commented] (CASSANDRA-19704) UnsupportedOperationException is thrown when no space for LCS

2024-06-26 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe commented on CASSANDRA-19704:
-

I'm not seeing anything in CI that's being caused by this patch, so I'll likely 
move to commit as soon as Marcus has a chance to take a quick look.

> UnsupportedOperationException is thrown when no space for LCS
> -
>
> Key: CASSANDRA-19704
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19704
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Compaction/LCS
>Reporter: Zhao Yang
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 4.0.x, 4.1.x, 5.0.x, 5.x
>
> Attachments: ci_summary-1.html, ci_summary-2.html, ci_summary-3.html, 
> ci_summary.html
>
>
> In {{CompactionTask#buildCompactionCandidatesForAvailableDiskSpace}} with 
> LCS, if node has limited disk space and can't remove any sstable from L0 or 
> L1 in {{{}LeveledCompactionTask#reduceScopeForLimitedSpace{}}}, 
> {{LeveledCompactionTask#partialCompactionsAcceptable}} will throw 
> {{UnsupportedOperationException}}.
> We should handle {{LeveledCompactionTask#partialCompactionsAcceptable}} more 
> gracefully with {{return level <= 1}} or simply {{true}} since 
> {{reduceScopeForLimitedSpace}} only removes sstable from L0 or L1.
> Related https://issues.apache.org/jira/browse/CASSANDRA-17272



--
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-19704) UnsupportedOperationException is thrown when no space for LCS

2024-06-26 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19704:

Attachment: ci_summary-3.html

> UnsupportedOperationException is thrown when no space for LCS
> -
>
> Key: CASSANDRA-19704
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19704
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Compaction/LCS
>Reporter: Zhao Yang
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 4.0.x, 4.1.x, 5.0.x, 5.x
>
> Attachments: ci_summary-1.html, ci_summary-2.html, ci_summary-3.html, 
> ci_summary.html
>
>
> In {{CompactionTask#buildCompactionCandidatesForAvailableDiskSpace}} with 
> LCS, if node has limited disk space and can't remove any sstable from L0 or 
> L1 in {{{}LeveledCompactionTask#reduceScopeForLimitedSpace{}}}, 
> {{LeveledCompactionTask#partialCompactionsAcceptable}} will throw 
> {{UnsupportedOperationException}}.
> We should handle {{LeveledCompactionTask#partialCompactionsAcceptable}} more 
> gracefully with {{return level <= 1}} or simply {{true}} since 
> {{reduceScopeForLimitedSpace}} only removes sstable from L0 or L1.
> Related https://issues.apache.org/jira/browse/CASSANDRA-17272



--
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-19704) UnsupportedOperationException is thrown when no space for LCS

2024-06-26 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe edited comment on CASSANDRA-19704 at 6/26/24 6:43 PM:
--

4.0 patch: [https://github.com/apache/cassandra/pull/3385] CI: 
[^ci_summary.html]

4.1 patch: [https://github.com/apache/cassandra/pull/3386] CI: 
[^ci_summary-1.html]

5.0 patch: [https://github.com/apache/cassandra/pull/3387] CI: 
[^ci_summary-2.html]

trunk: [https://github.com/apache/cassandra/pull/3388] CI: [^ci_summary-3.html]


was (Author: maedhroz):
4.0 patch: [https://github.com/apache/cassandra/pull/3385] CI: 
[^ci_summary.html]

4.1 patch: [https://github.com/apache/cassandra/pull/3386] CI: 
[^ci_summary-1.html]

5.0 patch: [https://github.com/apache/cassandra/pull/3387] CI: 
[^ci_summary-2.html]

trunk: [https://github.com/apache/cassandra/pull/3388] CI: TODO

> UnsupportedOperationException is thrown when no space for LCS
> -
>
> Key: CASSANDRA-19704
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19704
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Compaction/LCS
>Reporter: Zhao Yang
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 4.0.x, 4.1.x, 5.0.x, 5.x
>
> Attachments: ci_summary-1.html, ci_summary-2.html, ci_summary-3.html, 
> ci_summary.html
>
>
> In {{CompactionTask#buildCompactionCandidatesForAvailableDiskSpace}} with 
> LCS, if node has limited disk space and can't remove any sstable from L0 or 
> L1 in {{{}LeveledCompactionTask#reduceScopeForLimitedSpace{}}}, 
> {{LeveledCompactionTask#partialCompactionsAcceptable}} will throw 
> {{UnsupportedOperationException}}.
> We should handle {{LeveledCompactionTask#partialCompactionsAcceptable}} more 
> gracefully with {{return level <= 1}} or simply {{true}} since 
> {{reduceScopeForLimitedSpace}} only removes sstable from L0 or L1.
> Related https://issues.apache.org/jira/browse/CASSANDRA-17272



--
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-19704) UnsupportedOperationException is thrown when no space for LCS

2024-06-26 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe edited comment on CASSANDRA-19704 at 6/26/24 3:56 PM:
--

4.0 patch: [https://github.com/apache/cassandra/pull/3385] CI: 
[^ci_summary.html]

4.1 patch: [https://github.com/apache/cassandra/pull/3386] CI: 
[^ci_summary-1.html]

5.0 patch: [https://github.com/apache/cassandra/pull/3387] CI: 
[^ci_summary-2.html]

trunk: [https://github.com/apache/cassandra/pull/3388] CI: TODO


was (Author: maedhroz):
4.0 patch: [https://github.com/apache/cassandra/pull/3385] CI: 
[^ci_summary.html]

4.1 patch: [https://github.com/apache/cassandra/pull/3386] CI: 
[^ci_summary-1.html]

5.0 patch: [https://github.com/apache/cassandra/pull/3387] CI: 
[^ci_summary-2.html]

> UnsupportedOperationException is thrown when no space for LCS
> -
>
> Key: CASSANDRA-19704
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19704
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Compaction/LCS
>Reporter: Zhao Yang
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 4.0.x, 4.1.x, 5.0.x, 5.x
>
> Attachments: ci_summary-1.html, ci_summary-2.html, ci_summary.html
>
>
> In {{CompactionTask#buildCompactionCandidatesForAvailableDiskSpace}} with 
> LCS, if node has limited disk space and can't remove any sstable from L0 or 
> L1 in {{{}LeveledCompactionTask#reduceScopeForLimitedSpace{}}}, 
> {{LeveledCompactionTask#partialCompactionsAcceptable}} will throw 
> {{UnsupportedOperationException}}.
> We should handle {{LeveledCompactionTask#partialCompactionsAcceptable}} more 
> gracefully with {{return level <= 1}} or simply {{true}} since 
> {{reduceScopeForLimitedSpace}} only removes sstable from L0 or L1.
> Related https://issues.apache.org/jira/browse/CASSANDRA-17272



--
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-19704) UnsupportedOperationException is thrown when no space for LCS

2024-06-26 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe edited comment on CASSANDRA-19704 at 6/26/24 2:54 PM:
--

4.0 patch: [https://github.com/apache/cassandra/pull/3385] CI: 
[^ci_summary.html]

4.1 patch: [https://github.com/apache/cassandra/pull/3386] CI: 
[^ci_summary-1.html]

5.0 patch: [https://github.com/apache/cassandra/pull/3387] CI: 
[^ci_summary-2.html]


was (Author: maedhroz):
4.0 patch: [https://github.com/apache/cassandra/pull/3385] CI: 
[^ci_summary.html]

4.1 patch: [https://github.com/apache/cassandra/pull/3386] CI: 
[^ci_summary-1.html]

5.0 patch: [https://github.com/apache/cassandra/pull/3387] CI: TODO

> UnsupportedOperationException is thrown when no space for LCS
> -
>
> Key: CASSANDRA-19704
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19704
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Compaction/LCS
>Reporter: Zhao Yang
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 4.0.x, 4.1.x, 5.0.x, 5.x
>
> Attachments: ci_summary-1.html, ci_summary-2.html, ci_summary.html
>
>
> In {{CompactionTask#buildCompactionCandidatesForAvailableDiskSpace}} with 
> LCS, if node has limited disk space and can't remove any sstable from L0 or 
> L1 in {{{}LeveledCompactionTask#reduceScopeForLimitedSpace{}}}, 
> {{LeveledCompactionTask#partialCompactionsAcceptable}} will throw 
> {{UnsupportedOperationException}}.
> We should handle {{LeveledCompactionTask#partialCompactionsAcceptable}} more 
> gracefully with {{return level <= 1}} or simply {{true}} since 
> {{reduceScopeForLimitedSpace}} only removes sstable from L0 or L1.
> Related https://issues.apache.org/jira/browse/CASSANDRA-17272



--
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-19704) UnsupportedOperationException is thrown when no space for LCS

2024-06-26 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19704:

Attachment: ci_summary-2.html

> UnsupportedOperationException is thrown when no space for LCS
> -
>
> Key: CASSANDRA-19704
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19704
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Compaction/LCS
>Reporter: Zhao Yang
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 4.0.x, 4.1.x, 5.0.x, 5.x
>
> Attachments: ci_summary-1.html, ci_summary-2.html, ci_summary.html
>
>
> In {{CompactionTask#buildCompactionCandidatesForAvailableDiskSpace}} with 
> LCS, if node has limited disk space and can't remove any sstable from L0 or 
> L1 in {{{}LeveledCompactionTask#reduceScopeForLimitedSpace{}}}, 
> {{LeveledCompactionTask#partialCompactionsAcceptable}} will throw 
> {{UnsupportedOperationException}}.
> We should handle {{LeveledCompactionTask#partialCompactionsAcceptable}} more 
> gracefully with {{return level <= 1}} or simply {{true}} since 
> {{reduceScopeForLimitedSpace}} only removes sstable from L0 or L1.
> Related https://issues.apache.org/jira/browse/CASSANDRA-17272



--
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-19704) UnsupportedOperationException is thrown when no space for LCS

2024-06-25 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19704:

Description: 
In {{CompactionTask#buildCompactionCandidatesForAvailableDiskSpace}} with LCS, 
if node has limited disk space and can't remove any sstable from L0 or L1 in 
{{{}LeveledCompactionTask#reduceScopeForLimitedSpace{}}}, 
{{LeveledCompactionTask#partialCompactionsAcceptable}} will throw 
{{UnsupportedOperationException}}.

We should handle {{LeveledCompactionTask#partialCompactionsAcceptable}} more 
gracefully with {{return level <= 1}} or simply {{true}} since 
{{reduceScopeForLimitedSpace}} only removes sstable from L0 or L1.

Related https://issues.apache.org/jira/browse/CASSANDRA-17272

  was:
In `CompactionTask#buildCompactionCandidatesForAvailableDiskSpace` with LCS, if 
node has limited disk space and can't remove any sstable from L0 or L1 in 
`LeveledCompactionTask#reduceScopeForLimitedSpace`, 
`LeveledCompactionTask#partialCompactionsAcceptable` will throw 
`UnsupportedOperationException`.

We should handle `LeveledCompactionTask#partialCompactionsAcceptable` more 
gracefully with `return level <= 1` or simply `true` since 
`reduceScopeForLimitedSpace` only removes sstable from L0 or L1.

Related https://issues.apache.org/jira/browse/CASSANDRA-17272


> UnsupportedOperationException is thrown when no space for LCS
> -
>
> Key: CASSANDRA-19704
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19704
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Compaction/LCS
>Reporter: Zhao Yang
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 4.0.x, 4.1.x, 5.0.x, 5.x
>
> Attachments: ci_summary-1.html, ci_summary.html
>
>
> In {{CompactionTask#buildCompactionCandidatesForAvailableDiskSpace}} with 
> LCS, if node has limited disk space and can't remove any sstable from L0 or 
> L1 in {{{}LeveledCompactionTask#reduceScopeForLimitedSpace{}}}, 
> {{LeveledCompactionTask#partialCompactionsAcceptable}} will throw 
> {{UnsupportedOperationException}}.
> We should handle {{LeveledCompactionTask#partialCompactionsAcceptable}} more 
> gracefully with {{return level <= 1}} or simply {{true}} since 
> {{reduceScopeForLimitedSpace}} only removes sstable from L0 or L1.
> Related https://issues.apache.org/jira/browse/CASSANDRA-17272



--
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-19704) UnsupportedOperationException is thrown when no space for LCS

2024-06-25 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe commented on CASSANDRA-19704:
-

[~brandon.williams] [~jasonstack] [~marcuse] Anyone up to review?

> UnsupportedOperationException is thrown when no space for LCS
> -
>
> Key: CASSANDRA-19704
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19704
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Compaction/LCS
>Reporter: Zhao Yang
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 4.0.x, 4.1.x, 5.0.x, 5.x
>
> Attachments: ci_summary-1.html, ci_summary.html
>
>
> In `CompactionTask#buildCompactionCandidatesForAvailableDiskSpace` with LCS, 
> if node has limited disk space and can't remove any sstable from L0 or L1 in 
> `LeveledCompactionTask#reduceScopeForLimitedSpace`, 
> `LeveledCompactionTask#partialCompactionsAcceptable` will throw 
> `UnsupportedOperationException`.
> We should handle `LeveledCompactionTask#partialCompactionsAcceptable` more 
> gracefully with `return level <= 1` or simply `true` since 
> `reduceScopeForLimitedSpace` only removes sstable from L0 or L1.
> Related https://issues.apache.org/jira/browse/CASSANDRA-17272



--
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-19726) User documentation for Accord CQL transaction syntax

2024-06-25 Thread Caleb Rackliffe (Jira)
Caleb Rackliffe created CASSANDRA-19726:
---

 Summary: User documentation for Accord CQL transaction syntax
 Key: CASSANDRA-19726
 URL: https://issues.apache.org/jira/browse/CASSANDRA-19726
 Project: Cassandra
  Issue Type: Task
Reporter: Caleb Rackliffe


With a brand new CQL transaction syntax, we'll need new user-facing 
documentation, covering what's possible, what's not (yet) possible, and what 
the best ways are to express common patterns.



--
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-19725) Integrate tracing with Accord transaction execution

2024-06-25 Thread Caleb Rackliffe (Jira)
Caleb Rackliffe created CASSANDRA-19725:
---

 Summary: Integrate tracing with Accord transaction execution
 Key: CASSANDRA-19725
 URL: https://issues.apache.org/jira/browse/CASSANDRA-19725
 Project: Cassandra
  Issue Type: Improvement
  Components: Accord, Observability/Tracing
Reporter: Caleb Rackliffe
Assignee: Caleb Rackliffe


Accord transactions contain potentially multiple read and write operations, as 
well as the evaluation of conditions. As of right now, they are not integrated 
holistically into the CQL query tracing mechanism, at least not completely.

There are two things (or categories of events) we might want here. The first is 
logging events during transaction execution that would be new and specific to 
Accord. The second is making sure that existing tracing information around 
local reads and writes are persisted as expected to tracing sessions.



--
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-19704) UnsupportedOperationException is thrown when no space for LCS

2024-06-25 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe edited comment on CASSANDRA-19704 at 6/25/24 9:38 PM:
--

4.0 patch: [https://github.com/apache/cassandra/pull/3385] CI: 
[^ci_summary.html]

4.1 patch: [https://github.com/apache/cassandra/pull/3386] CI: 
[^ci_summary-1.html]

5.0 patch: [https://github.com/apache/cassandra/pull/3387] CI: TODO


was (Author: maedhroz):
4.0 patch: [https://github.com/apache/cassandra/pull/3385] CI: 
[^ci_summary.html]

4.1 patch: [https://github.com/apache/cassandra/pull/3386] CI: 
[^ci_summary-1.html]

> UnsupportedOperationException is thrown when no space for LCS
> -
>
> Key: CASSANDRA-19704
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19704
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Compaction/LCS
>Reporter: Zhao Yang
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 4.0.x, 4.1.x, 5.0.x, 5.x
>
> Attachments: ci_summary-1.html, ci_summary.html
>
>
> In `CompactionTask#buildCompactionCandidatesForAvailableDiskSpace` with LCS, 
> if node has limited disk space and can't remove any sstable from L0 or L1 in 
> `LeveledCompactionTask#reduceScopeForLimitedSpace`, 
> `LeveledCompactionTask#partialCompactionsAcceptable` will throw 
> `UnsupportedOperationException`.
> We should handle `LeveledCompactionTask#partialCompactionsAcceptable` more 
> gracefully with `return level <= 1` or simply `true` since 
> `reduceScopeForLimitedSpace` only removes sstable from L0 or L1.
> Related https://issues.apache.org/jira/browse/CASSANDRA-17272



--
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-19724) Disable guardrails that may affect Accord transaction outcome

2024-06-25 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19724:

 Bug Category: Parent values: Availability(12983)
   Complexity: Normal
Discovered By: Code Inspection
Fix Version/s: 5.x
 Severity: Normal
 Assignee: Caleb Rackliffe
   Status: Open  (was: Triage Needed)

> Disable guardrails that may affect Accord transaction outcome
> -
>
> Key: CASSANDRA-19724
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19724
> Project: Cassandra
>  Issue Type: Bug
>  Components: Accord
>Reporter: Caleb Rackliffe
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 5.x
>
>
> The Guardrails subsystem is comprised of items configured on a per-node 
> basis. We need to do an inventory of these items and consider disabling the 
> ones that could affect transaction outcome before execution begins.



--
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-19704) UnsupportedOperationException is thrown when no space for LCS

2024-06-25 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe edited comment on CASSANDRA-19704 at 6/25/24 9:17 PM:
--

4.0 patch: [https://github.com/apache/cassandra/pull/3385] CI: 
[^ci_summary.html]

4.1 patch: [https://github.com/apache/cassandra/pull/3386] CI: 
[^ci_summary-1.html]


was (Author: maedhroz):
4.0 patch: [https://github.com/apache/cassandra/pull/3385] CI: 
[^ci_summary.html]

4.1 patch: [https://github.com/apache/cassandra/pull/3386] CI: TODO

> UnsupportedOperationException is thrown when no space for LCS
> -
>
> Key: CASSANDRA-19704
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19704
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Compaction/LCS
>Reporter: Zhao Yang
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 4.0.x, 4.1.x, 5.0.x, 5.x
>
> Attachments: ci_summary-1.html, ci_summary.html
>
>
> In `CompactionTask#buildCompactionCandidatesForAvailableDiskSpace` with LCS, 
> if node has limited disk space and can't remove any sstable from L0 or L1 in 
> `LeveledCompactionTask#reduceScopeForLimitedSpace`, 
> `LeveledCompactionTask#partialCompactionsAcceptable` will throw 
> `UnsupportedOperationException`.
> We should handle `LeveledCompactionTask#partialCompactionsAcceptable` more 
> gracefully with `return level <= 1` or simply `true` since 
> `reduceScopeForLimitedSpace` only removes sstable from L0 or L1.
> Related https://issues.apache.org/jira/browse/CASSANDRA-17272



--
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-19704) UnsupportedOperationException is thrown when no space for LCS

2024-06-25 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19704:

Attachment: ci_summary-1.html

> UnsupportedOperationException is thrown when no space for LCS
> -
>
> Key: CASSANDRA-19704
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19704
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Compaction/LCS
>Reporter: Zhao Yang
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 4.0.x, 4.1.x, 5.0.x, 5.x
>
> Attachments: ci_summary-1.html, ci_summary.html
>
>
> In `CompactionTask#buildCompactionCandidatesForAvailableDiskSpace` with LCS, 
> if node has limited disk space and can't remove any sstable from L0 or L1 in 
> `LeveledCompactionTask#reduceScopeForLimitedSpace`, 
> `LeveledCompactionTask#partialCompactionsAcceptable` will throw 
> `UnsupportedOperationException`.
> We should handle `LeveledCompactionTask#partialCompactionsAcceptable` more 
> gracefully with `return level <= 1` or simply `true` since 
> `reduceScopeForLimitedSpace` only removes sstable from L0 or L1.
> Related https://issues.apache.org/jira/browse/CASSANDRA-17272



--
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-19724) Disable guardrails that may affect Accord transaction outcome

2024-06-25 Thread Caleb Rackliffe (Jira)
Caleb Rackliffe created CASSANDRA-19724:
---

 Summary: Disable guardrails that may affect Accord transaction 
outcome
 Key: CASSANDRA-19724
 URL: https://issues.apache.org/jira/browse/CASSANDRA-19724
 Project: Cassandra
  Issue Type: Bug
  Components: Accord
Reporter: Caleb Rackliffe


The Guardrails subsystem is comprised of items configured on a per-node basis. 
We need to do an inventory of these items and consider disabling the ones that 
could affect transaction outcome before execution begins.



--
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-19704) UnsupportedOperationException is thrown when no space for LCS

2024-06-25 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe edited comment on CASSANDRA-19704 at 6/25/24 7:33 PM:
--

4.0 patch: [https://github.com/apache/cassandra/pull/3385] CI: 
[^ci_summary.html]

4.1 patch: [https://github.com/apache/cassandra/pull/3386] CI: TODO


was (Author: maedhroz):
4.0 patch: [https://github.com/apache/cassandra/pull/3385] CI: 
[^ci_summary.html]

> UnsupportedOperationException is thrown when no space for LCS
> -
>
> Key: CASSANDRA-19704
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19704
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Compaction/LCS
>Reporter: Zhao Yang
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 4.0.x, 4.1.x, 5.0.x, 5.x
>
> Attachments: ci_summary.html
>
>
> In `CompactionTask#buildCompactionCandidatesForAvailableDiskSpace` with LCS, 
> if node has limited disk space and can't remove any sstable from L0 or L1 in 
> `LeveledCompactionTask#reduceScopeForLimitedSpace`, 
> `LeveledCompactionTask#partialCompactionsAcceptable` will throw 
> `UnsupportedOperationException`.
> We should handle `LeveledCompactionTask#partialCompactionsAcceptable` more 
> gracefully with `return level <= 1` or simply `true` since 
> `reduceScopeForLimitedSpace` only removes sstable from L0 or L1.
> Related https://issues.apache.org/jira/browse/CASSANDRA-17272



--
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-19704) UnsupportedOperationException is thrown when no space for LCS

2024-06-25 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe edited comment on CASSANDRA-19704 at 6/25/24 7:30 PM:
--

4.0 patch: [https://github.com/apache/cassandra/pull/3385] CI: 
[^ci_summary.html]


was (Author: maedhroz):
4.0 patch: [https://github.com/apache/cassandra/pull/3385]

> UnsupportedOperationException is thrown when no space for LCS
> -
>
> Key: CASSANDRA-19704
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19704
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Compaction/LCS
>Reporter: Zhao Yang
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 4.0.x, 4.1.x, 5.0.x, 5.x
>
> Attachments: ci_summary.html
>
>
> In `CompactionTask#buildCompactionCandidatesForAvailableDiskSpace` with LCS, 
> if node has limited disk space and can't remove any sstable from L0 or L1 in 
> `LeveledCompactionTask#reduceScopeForLimitedSpace`, 
> `LeveledCompactionTask#partialCompactionsAcceptable` will throw 
> `UnsupportedOperationException`.
> We should handle `LeveledCompactionTask#partialCompactionsAcceptable` more 
> gracefully with `return level <= 1` or simply `true` since 
> `reduceScopeForLimitedSpace` only removes sstable from L0 or L1.
> Related https://issues.apache.org/jira/browse/CASSANDRA-17272



--
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-19704) UnsupportedOperationException is thrown when no space for LCS

2024-06-25 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19704:

Attachment: ci_summary.html

> UnsupportedOperationException is thrown when no space for LCS
> -
>
> Key: CASSANDRA-19704
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19704
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Compaction/LCS
>Reporter: Zhao Yang
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 4.0.x, 4.1.x, 5.0.x, 5.x
>
> Attachments: ci_summary.html
>
>
> In `CompactionTask#buildCompactionCandidatesForAvailableDiskSpace` with LCS, 
> if node has limited disk space and can't remove any sstable from L0 or L1 in 
> `LeveledCompactionTask#reduceScopeForLimitedSpace`, 
> `LeveledCompactionTask#partialCompactionsAcceptable` will throw 
> `UnsupportedOperationException`.
> We should handle `LeveledCompactionTask#partialCompactionsAcceptable` more 
> gracefully with `return level <= 1` or simply `true` since 
> `reduceScopeForLimitedSpace` only removes sstable from L0 or L1.
> Related https://issues.apache.org/jira/browse/CASSANDRA-17272



--
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-19704) UnsupportedOperationException is thrown when no space for LCS

2024-06-25 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe commented on CASSANDRA-19704:
-

Note: I wasn't able to reproduce this before 4.0, as 
\{{buildCompactionCandidatesForAvailableDiskSpace()}} does not exist.

> UnsupportedOperationException is thrown when no space for LCS
> -
>
> Key: CASSANDRA-19704
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19704
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Compaction/LCS
>Reporter: Zhao Yang
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 4.0.x, 4.1.x, 5.0.x, 5.x
>
>
> In `CompactionTask#buildCompactionCandidatesForAvailableDiskSpace` with LCS, 
> if node has limited disk space and can't remove any sstable from L0 or L1 in 
> `LeveledCompactionTask#reduceScopeForLimitedSpace`, 
> `LeveledCompactionTask#partialCompactionsAcceptable` will throw 
> `UnsupportedOperationException`.
> We should handle `LeveledCompactionTask#partialCompactionsAcceptable` more 
> gracefully with `return level <= 1` or simply `true` since 
> `reduceScopeForLimitedSpace` only removes sstable from L0 or L1.
> Related https://issues.apache.org/jira/browse/CASSANDRA-17272



--
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-19704) UnsupportedOperationException is thrown when no space for LCS

2024-06-25 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19704:

Fix Version/s: (was: 3.0.x)
   (was: 3.11.x)

> UnsupportedOperationException is thrown when no space for LCS
> -
>
> Key: CASSANDRA-19704
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19704
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Compaction/LCS
>Reporter: Zhao Yang
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 4.0.x, 4.1.x, 5.0.x, 5.x
>
>
> In `CompactionTask#buildCompactionCandidatesForAvailableDiskSpace` with LCS, 
> if node has limited disk space and can't remove any sstable from L0 or L1 in 
> `LeveledCompactionTask#reduceScopeForLimitedSpace`, 
> `LeveledCompactionTask#partialCompactionsAcceptable` will throw 
> `UnsupportedOperationException`.
> We should handle `LeveledCompactionTask#partialCompactionsAcceptable` more 
> gracefully with `return level <= 1` or simply `true` since 
> `reduceScopeForLimitedSpace` only removes sstable from L0 or L1.
> Related https://issues.apache.org/jira/browse/CASSANDRA-17272



--
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-19704) UnsupportedOperationException is thrown when no space for LCS

2024-06-25 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19704:

Test and Documentation Plan: new test that reproduces the UOE in the 
description
 Status: Patch Available  (was: In Progress)

4.0 patch: [https://github.com/apache/cassandra/pull/3385]

> UnsupportedOperationException is thrown when no space for LCS
> -
>
> Key: CASSANDRA-19704
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19704
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Compaction/LCS
>Reporter: Zhao Yang
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 3.0.x, 3.11.x, 4.0.x, 4.1.x, 5.0.x, 5.x
>
>
> In `CompactionTask#buildCompactionCandidatesForAvailableDiskSpace` with LCS, 
> if node has limited disk space and can't remove any sstable from L0 or L1 in 
> `LeveledCompactionTask#reduceScopeForLimitedSpace`, 
> `LeveledCompactionTask#partialCompactionsAcceptable` will throw 
> `UnsupportedOperationException`.
> We should handle `LeveledCompactionTask#partialCompactionsAcceptable` more 
> gracefully with `return level <= 1` or simply `true` since 
> `reduceScopeForLimitedSpace` only removes sstable from L0 or L1.
> Related https://issues.apache.org/jira/browse/CASSANDRA-17272



--
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-18988) Updating the column of a non-existent row in an Accord transaction results in Atomicity violation

2024-06-25 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-18988:

Resolution: Not A Problem
Status: Resolved  (was: Open)

> Updating the column of a non-existent row in an Accord transaction results in 
> Atomicity violation
> -
>
> Key: CASSANDRA-18988
> URL: https://issues.apache.org/jira/browse/CASSANDRA-18988
> Project: Cassandra
>  Issue Type: Bug
>  Components: Accord
>Reporter: Luis E Fernandez
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 5.x
>
>
> *System configuration and information:*
> Single node Cassandra with Accord transactions enabled running on docker
> Built from commit: 
> [a7cd114435704b988c81f47ef53d0bfd6441f38b|https://github.com/apache/cassandra/commit/a7cd114435704b988c81f47ef53d0bfd6441f38b]
> CQLSH: [cqlsh 6.2.0 | Cassandra 5.0-alpha2-SNAPSHOT | CQL spec 3.4.7 | Native 
> protocol v5]
>  
> *Steps to reproduce in CQLSH:*
> {code:java}
> CREATE KEYSPACE accord WITH replication = {'class': 'SimpleStrategy', 
> 'replication_factor': '1'} AND durable_writes = true;{code}
> {code:java}
> CREATE TABLE accord.accounts (
>     partition text,
>     account_id int,
>     balance int,
>     PRIMARY KEY (partition, account_id)
> ) WITH CLUSTERING ORDER BY (account_id ASC);
> {code}
> {code:java}
> BEGIN TRANSACTION
> INSERT INTO accord.accounts (partition, account_id, balance) VALUES 
> ('default', 0, 100);
> INSERT INTO accord.accounts (partition, account_id, balance) VALUES 
> ('default', 1, 100);
> COMMIT TRANSACTION;{code}
> atomicity bug happens after executing the following statement:
> Based on [Cassandra 
> documentation|https://cassandra.apache.org/doc/4.1/cassandra/cql/dml.html#update-statement]
>  regarding the use of UPDATE statements, I expect the result of this 
> transaction to be the insertion of a new account (\{ account_id: 3, balance: 
> 10 }). The total balance across the three (3) accounts should be maintained 
> (200). After executing the below transaction, the total number of accounts 
> remains at two (2) and the total balance drops to 190. Basically, it appears 
> as if only one half of the transaction proceeds.
> {code:java}
> BEGIN TRANSACTION
> UPDATE accord.accounts
> SET balance -= 10
> WHERE
>   partition = 'default'
>   AND account_id = 1;
> UPDATE accord.accounts
> SET balance += 10
> WHERE
>   partition = 'default'
>   AND account_id = 3;
> COMMIT TRANSACTION;{code}
> Bug / Error:
> ==
> The result of performing a table read after executing the buggy transaction 
> is:
> {code:java}
>  partition | account_id | balance
> ---++-
>    default |          0 |     100
>    default |          1 |      90
> {code}
> {color:#172b4d}Note that the above transactions are not possible without a 
> transaction block because only counter type columns can be updated with += or 
> -= syntax in normal (non-transactional) cql statements. Using counter type 
> columns also results in a separate, related bug: 
> [CASSANDRA-18987|https://issues.apache.org/jira/browse/CASSANDRA-18987]{color}
> {color:#172b4d}This was found while testing Accord transactions with 
> [~henrik.ingo] and team.{color}



--
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-18988) Updating the column of a non-existent row in an Accord transaction results in Atomicity violation

2024-06-25 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe commented on CASSANDRA-18988:
-

It looks like the discussion has settled on the dev list, and this behavior 
will stay the same for the time being. However, there is still a question of 
what we might return to the user generally when no explicit SELECT is defined 
in the transaction and we have updates that may or not be applied. That and 
mixed conditional/non-conditional updates can be handled as part of 
CASSANDRA-18107.

> Updating the column of a non-existent row in an Accord transaction results in 
> Atomicity violation
> -
>
> Key: CASSANDRA-18988
> URL: https://issues.apache.org/jira/browse/CASSANDRA-18988
> Project: Cassandra
>  Issue Type: Bug
>  Components: Accord
>Reporter: Luis E Fernandez
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 5.x
>
>
> *System configuration and information:*
> Single node Cassandra with Accord transactions enabled running on docker
> Built from commit: 
> [a7cd114435704b988c81f47ef53d0bfd6441f38b|https://github.com/apache/cassandra/commit/a7cd114435704b988c81f47ef53d0bfd6441f38b]
> CQLSH: [cqlsh 6.2.0 | Cassandra 5.0-alpha2-SNAPSHOT | CQL spec 3.4.7 | Native 
> protocol v5]
>  
> *Steps to reproduce in CQLSH:*
> {code:java}
> CREATE KEYSPACE accord WITH replication = {'class': 'SimpleStrategy', 
> 'replication_factor': '1'} AND durable_writes = true;{code}
> {code:java}
> CREATE TABLE accord.accounts (
>     partition text,
>     account_id int,
>     balance int,
>     PRIMARY KEY (partition, account_id)
> ) WITH CLUSTERING ORDER BY (account_id ASC);
> {code}
> {code:java}
> BEGIN TRANSACTION
> INSERT INTO accord.accounts (partition, account_id, balance) VALUES 
> ('default', 0, 100);
> INSERT INTO accord.accounts (partition, account_id, balance) VALUES 
> ('default', 1, 100);
> COMMIT TRANSACTION;{code}
> atomicity bug happens after executing the following statement:
> Based on [Cassandra 
> documentation|https://cassandra.apache.org/doc/4.1/cassandra/cql/dml.html#update-statement]
>  regarding the use of UPDATE statements, I expect the result of this 
> transaction to be the insertion of a new account (\{ account_id: 3, balance: 
> 10 }). The total balance across the three (3) accounts should be maintained 
> (200). After executing the below transaction, the total number of accounts 
> remains at two (2) and the total balance drops to 190. Basically, it appears 
> as if only one half of the transaction proceeds.
> {code:java}
> BEGIN TRANSACTION
> UPDATE accord.accounts
> SET balance -= 10
> WHERE
>   partition = 'default'
>   AND account_id = 1;
> UPDATE accord.accounts
> SET balance += 10
> WHERE
>   partition = 'default'
>   AND account_id = 3;
> COMMIT TRANSACTION;{code}
> Bug / Error:
> ==
> The result of performing a table read after executing the buggy transaction 
> is:
> {code:java}
>  partition | account_id | balance
> ---++-
>    default |          0 |     100
>    default |          1 |      90
> {code}
> {color:#172b4d}Note that the above transactions are not possible without a 
> transaction block because only counter type columns can be updated with += or 
> -= syntax in normal (non-transactional) cql statements. Using counter type 
> columns also results in a separate, related bug: 
> [CASSANDRA-18987|https://issues.apache.org/jira/browse/CASSANDRA-18987]{color}
> {color:#172b4d}This was found while testing Accord transactions with 
> [~henrik.ingo] and team.{color}



--
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-19704) UnsupportedOperationException is thrown when no space for LCS

2024-06-24 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe commented on CASSANDRA-19704:
-

[~marcuse] and I have a patch for this. I'll try to get it posted this week 
some time.

> UnsupportedOperationException is thrown when no space for LCS
> -
>
> Key: CASSANDRA-19704
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19704
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Compaction/LCS
>Reporter: Zhao Yang
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 3.0.x, 3.11.x, 4.0.x, 4.1.x, 5.0.x, 5.x
>
>
> In `CompactionTask#buildCompactionCandidatesForAvailableDiskSpace` with LCS, 
> if node has limited disk space and can't remove any sstable from L0 or L1 in 
> `LeveledCompactionTask#reduceScopeForLimitedSpace`, 
> `LeveledCompactionTask#partialCompactionsAcceptable` will throw 
> `UnsupportedOperationException`.
> We should handle `LeveledCompactionTask#partialCompactionsAcceptable` more 
> gracefully with `return level <= 1` or simply `true` since 
> `reduceScopeForLimitedSpace` only removes sstable from L0 or L1.
> Related https://issues.apache.org/jira/browse/CASSANDRA-17272



--
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] [Assigned] (CASSANDRA-19704) UnsupportedOperationException is thrown when no space for LCS

2024-06-24 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe reassigned CASSANDRA-19704:
---

Assignee: Caleb Rackliffe

> UnsupportedOperationException is thrown when no space for LCS
> -
>
> Key: CASSANDRA-19704
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19704
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Compaction/LCS
>Reporter: Zhao Yang
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 3.0.x, 3.11.x, 4.0.x, 4.1.x, 5.0.x, 5.x
>
>
> In `CompactionTask#buildCompactionCandidatesForAvailableDiskSpace` with LCS, 
> if node has limited disk space and can't remove any sstable from L0 or L1 in 
> `LeveledCompactionTask#reduceScopeForLimitedSpace`, 
> `LeveledCompactionTask#partialCompactionsAcceptable` will throw 
> `UnsupportedOperationException`.
> We should handle `LeveledCompactionTask#partialCompactionsAcceptable` more 
> gracefully with `return level <= 1` or simply `true` since 
> `reduceScopeForLimitedSpace` only removes sstable from L0 or L1.
> Related https://issues.apache.org/jira/browse/CASSANDRA-17272



--
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-18107) CEP-15: Multi-Partition Transaction CQL Support (Alpha -> v1)

2024-06-24 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-18107:

Description: 
With CASSANDRA-17719 complete, basic/alpha CQL support for Accord is now 
available in the 
[cep-15-accord|https://github.com/apache/cassandra/commits/cep-15-accord] 
branch. There are, however, a number of features and enhancements that we would 
still like to add before we make it available to users. Here is a summary of 
those items, broadly categorized:
h3. *High Priority*

*Error Messages and UX*
 - Fix the element/field names in result metadata to match the user query
 - Better error messages
 -- Append/subtracting to/from frozen list
 -- attempts to use reference in WHERE clause
 -- LET using a reserved word

*Testing*
 - Figure out the original intent of placeholder tests in 
{{AccordIntegrationTest}} (ex. {{{}acceptInvalidationTest(){}}})

*Features*
 - Support for returning the result of an {{{}IF{}}}/condition
 - Constant terms on the RHS of LET
 - Support for having a reference on both LHS and RHS of {{IF}} predicates
 - Support for {{{}CONTAINS{}}}, {{{}CONTAINS KEY{}}}, and {{IN}} (important 
for CAS parity)
 - Mixed conditional and unconditional updates
 - Arithmetic operations on references in {{{}INSERT{}}}/{{{}UPDATE{}}} (ex. 
INSERT INTO ks.tbl1 (k, c, v) VALUES (0, 0, a.v + 1)
 - Support TTLs specified in txn updates.

*Tooling*
 - Remove {{reateepochunsafe}} references in {{JMXGetterCheckTest}}

 *Documentation*
 - JavaDoc for all new statement classes

h3. *Nice to Have*

*Domain Object Cleanup*
 - Given {{Selector}} is serializable, attempt to reuse it in {{TxnReference}} 
rather than hard coding data conversion cases
 - Separate current current {{LET}} statement from {{{}SelectStatement{}}}, 
likely as a new {{LetStatement}} that names a {{SelectStatement}}
 - Explore unifying {{Operation}} and {{ReferenceOperation}}
 - Include non-Row items of {{FilteredPartition}} in 
{{TxnData#estimatedSizeOnHeap()}}
 - Explore possibility of making {{Bound}} serializable and using it directly 
in {{TxnCondition}}
 - Change internal representation of {{TxnDataName}} to avoid {{String}} -> 
{{ByteBuffer}} conversions
 - Have {{{}TxnCondition{}}}/{{{}TxnUpdate{}}} support {{slice()}} to full take 
advantage of partial state replication
 - Update serialization logic to reflect CASSANDRA-18099

*Features*
 - Full JSON support
 - Nested UDT support

 *Documentation*
 - CQL language documentation and bump the CQL language specification version
 - JavaDoc for all new statement classes
 - Integrate {{demo.txt}} into broader documentation somewhere or remove

  was:
With CASSANDRA-17719 complete, basic/alpha CQL support for Accord is now 
available in the 
[cep-15-accord|https://github.com/apache/cassandra/commits/cep-15-accord] 
branch. There are, however, a number of features and enhancements that we would 
still like to add before we make it available to users. Here is a summary of 
those items, broadly categorized:

h3. *High Priority*

*Error Messages and UX*
 - Fix the element/field names in result metadata to match the user query
 - Better error messages
 -- Append/subtracting to/from frozen list
 -- attempts to use reference in WHERE clause
 -- LET using a reserved word

*Testing*
 - Figure out the original intent of placeholder tests in 
{{AccordIntegrationTest}} (ex. {{{}acceptInvalidationTest(){}}}){-}{{-}}

*Features*
 - Support for returning the result of an {{{}IF{}}}/condition
 - Constant terms on the RHS of LET
 - Support for having a reference on both LHS and RHS of {{IF}} predicates
 - Support for {{{}CONTAINS{}}}, {{{}CONTAINS KEY{}}}, and {{IN}} (important 
for CAS parity)
 - Mixed conditional and unconditional updates
 - Arithmetic operations on references in {{{}INSERT{}}}/{{{}UPDATE{}}} (ex. 
INSERT INTO ks.tbl1 (k, c, v) VALUES (0, 0, a.v + 1)
 - Support TTLs specified in txn updates.

*Tooling*
 - Remove {{reateepochunsafe}} references in {{JMXGetterCheckTest}}

 *Documentation*
 - JavaDoc for all new statement classes

h3. *Nice to Have*

*Domain Object Cleanup*
 - Given {{Selector}} is serializable, attempt to reuse it in {{TxnReference}} 
rather than hard coding data conversion cases
 - Separate current current {{LET}} statement from {{{}SelectStatement{}}}, 
likely as a new {{LetStatement}} that names a {{SelectStatement}}
 - Explore unifying {{Operation}} and {{ReferenceOperation}}
 - Include non-Row items of {{FilteredPartition}} in 
{{TxnData#estimatedSizeOnHeap()}}
 - Explore possibility of making {{Bound}} serializable and using it directly 
in {{TxnCondition}}
 - Change internal representation of {{TxnDataName}} to avoid {{String}} -> 
{{ByteBuffer}} conversions
 - Have {{{}TxnCondition{}}}/{{{}TxnUpdate{}}} support {{slice()}} to full take 
advantage of partial state replication
 - Update serialization logic to reflect CASSANDRA-18099


[jira] [Assigned] (CASSANDRA-19321) Accord: Command to mark replicas as “stale" for decommission

2024-06-24 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe reassigned CASSANDRA-19321:
---

Assignee: Caleb Rackliffe

> Accord: Command to mark replicas as “stale" for decommission
> 
>
> Key: CASSANDRA-19321
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19321
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Accord
>Reporter: Benedict Elliott Smith
>Assignee: Caleb Rackliffe
>Priority: Normal
>
> So that other replicas may continue to cleanup their state, we must have an 
> operator command for marking replicas as stale so that the remaining replicas 
> do not wait for them to coordinate their durability status.



--
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-18107) CEP-15: Multi-Partition Transaction CQL Support (Alpha -> v1)

2024-06-20 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-18107:

Description: 
With CASSANDRA-17719 complete, basic/alpha CQL support for Accord is now 
available in the 
[cep-15-accord|https://github.com/apache/cassandra/commits/cep-15-accord] 
branch. There are, however, a number of features and enhancements that we would 
still like to add before we make it available to users. Here is a summary of 
those items, broadly categorized:
h3. {*}High Priority{*}{*}{*}

*Error Messages and UX*
 - Fix the element/field names in result metadata to match the user query
 - Better error messages
 -- Append/subtracting to/from frozen list
 -- attempts to use reference in WHERE clause
 -- LET using a reserved word

*Testing*
 - Figure out the original intent of placeholder tests in 
{{AccordIntegrationTest}} (ex. {{{}acceptInvalidationTest(){}}}){-}{{-}}

*Features*
 - Support for returning the result of an {{{}IF{}}}/condition
 - Constant terms on the RHS of LET
 - Support for having a reference on both LHS and RHS of {{IF}} predicates
 - Support for {{{}CONTAINS{}}}, {{{}CONTAINS KEY{}}}, and {{IN}} (important 
for CAS parity)
 - Mixed conditional and unconditional updates
 - Arithmetic operations on references in {{{}INSERT{}}}/{{{}UPDATE{}}} (ex. 
INSERT INTO ks.tbl1 (k, c, v) VALUES (0, 0, a.v + 1)
 - Support TTLs specified in txn updates.

*Tooling*
 - Remove {{reateepochunsafe}} references in {{JMXGetterCheckTest}}

 *Documentation*
 - JavaDoc for all new statement classes

h3. *Nice to Have*

*Domain Object Cleanup*
 - Given {{Selector}} is serializable, attempt to reuse it in {{TxnReference}} 
rather than hard coding data conversion cases
 - Separate current current {{LET}} statement from {{{}SelectStatement{}}}, 
likely as a new {{LetStatement}} that names a {{SelectStatement}}
 - Explore unifying {{Operation}} and {{ReferenceOperation}}
 - Include non-Row items of {{FilteredPartition}} in 
{{TxnData#estimatedSizeOnHeap()}}
 - Explore possibility of making {{Bound}} serializable and using it directly 
in {{TxnCondition}}
 - Change internal representation of {{TxnDataName}} to avoid {{String}} -> 
{{ByteBuffer}} conversions
 - Have {{{}TxnCondition{}}}/{{{}TxnUpdate{}}} support {{slice()}} to full take 
advantage of partial state replication
 - Update serialization logic to reflect CASSANDRA-18099

*Features*
 - Full JSON support
 - Nested UDT support

 *Documentation*
 - CQL language documentation and bump the CQL language specification version
 - JavaDoc for all new statement classes
 - Integrate {{demo.txt}} into broader documentation somewhere or remove

  was:
With CASSANDRA-17719 complete, basic/alpha CQL support for Accord is now 
available in the 
[cep-15-accord|https://github.com/apache/cassandra/commits/cep-15-accord] 
branch. There are, however, a number of features and enhancements that we would 
still like to add before we make it available to users. Here is a summary of 
those items, broadly categorized:
h3. {*}High Priority{*}{*}{*}

*Error Messages and UX*
 - Fix the element/field names in result metadata to match the user query
 - Better error messages
 -- Append/subtracting to/from frozen list
 -- attempts to use reference in WHERE clause
 -- LET using a reserved word

*Testing*
 - Figure out the original intent of placeholder tests in 
{{AccordIntegrationTest}} (ex. {{{}acceptInvalidationTest(){}}}){-}{-}

*Features*
 - Support for returning the result of an {{{}IF{}}}/condition
 - Constant terms on the RHS of LET
 - Support for having a reference on both LHS and RHS of {{IF}} predicates
 - Support for {{{}CONTAINS{}}}, {{{}CONTAINS KEY{}}}, and {{IN}} (important 
for CAS parity)
 - Mixed conditional and unconditional updates
 - Arithmetic operations on references in {{{}INSERT{}}}/{{{}UPDATE{}}} (ex. 
INSERT INTO ks.tbl1 (k, c, v) VALUES (0, 0, a.v + 1)
 - Support TTLs specified in txn updates.

*Tooling*
 - Remove {{reateepochunsafe}} references in {{JMXGetterCheckTest}}

 *Documentation*
 - JavaDoc for all new statement classes

h3. *Nice to Have*

*Domain Object Cleanup*
 - Given {{Selector}} is serializable, attempt to reuse it in {{TxnReference}} 
rather than hard coding data conversion cases
 - Separate current current {{LET}} statement from {{{}SelectStatement{}}}, 
likely as a new {{LetStatement}} that names a {{SelectStatement}}
 - Explore unifying {{Operation}} and {{ReferenceOperation}}
 - Include non-Row items of {{FilteredPartition}} in 
{{TxnData#estimatedSizeOnHeap()}}
 - Explore possibility of making {{Bound}} serializable and using it directly 
in {{TxnCondition}}
 - Change internal representation of {{TxnDataName}} to avoid {{String}} -> 
{{ByteBuffer}} conversions
 - Have {{{}TxnCondition{}}}/{{{}TxnUpdate{}}} support {{slice()}} to full take 
advantage of partial state replication
 - Update serialization logic to 

[jira] [Updated] (CASSANDRA-18107) CEP-15: Multi-Partition Transaction CQL Support (Alpha -> v1)

2024-06-20 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-18107:

Description: 
With CASSANDRA-17719 complete, basic/alpha CQL support for Accord is now 
available in the 
[cep-15-accord|https://github.com/apache/cassandra/commits/cep-15-accord] 
branch. There are, however, a number of features and enhancements that we would 
still like to add before we make it available to users. Here is a summary of 
those items, broadly categorized:

h3. *High Priority*

*Error Messages and UX*
 - Fix the element/field names in result metadata to match the user query
 - Better error messages
 -- Append/subtracting to/from frozen list
 -- attempts to use reference in WHERE clause
 -- LET using a reserved word

*Testing*
 - Figure out the original intent of placeholder tests in 
{{AccordIntegrationTest}} (ex. {{{}acceptInvalidationTest(){}}}){-}{{-}}

*Features*
 - Support for returning the result of an {{{}IF{}}}/condition
 - Constant terms on the RHS of LET
 - Support for having a reference on both LHS and RHS of {{IF}} predicates
 - Support for {{{}CONTAINS{}}}, {{{}CONTAINS KEY{}}}, and {{IN}} (important 
for CAS parity)
 - Mixed conditional and unconditional updates
 - Arithmetic operations on references in {{{}INSERT{}}}/{{{}UPDATE{}}} (ex. 
INSERT INTO ks.tbl1 (k, c, v) VALUES (0, 0, a.v + 1)
 - Support TTLs specified in txn updates.

*Tooling*
 - Remove {{reateepochunsafe}} references in {{JMXGetterCheckTest}}

 *Documentation*
 - JavaDoc for all new statement classes

h3. *Nice to Have*

*Domain Object Cleanup*
 - Given {{Selector}} is serializable, attempt to reuse it in {{TxnReference}} 
rather than hard coding data conversion cases
 - Separate current current {{LET}} statement from {{{}SelectStatement{}}}, 
likely as a new {{LetStatement}} that names a {{SelectStatement}}
 - Explore unifying {{Operation}} and {{ReferenceOperation}}
 - Include non-Row items of {{FilteredPartition}} in 
{{TxnData#estimatedSizeOnHeap()}}
 - Explore possibility of making {{Bound}} serializable and using it directly 
in {{TxnCondition}}
 - Change internal representation of {{TxnDataName}} to avoid {{String}} -> 
{{ByteBuffer}} conversions
 - Have {{{}TxnCondition{}}}/{{{}TxnUpdate{}}} support {{slice()}} to full take 
advantage of partial state replication
 - Update serialization logic to reflect CASSANDRA-18099

*Features*
 - Full JSON support
 - Nested UDT support

 *Documentation*
 - CQL language documentation and bump the CQL language specification version
 - JavaDoc for all new statement classes
 - Integrate {{demo.txt}} into broader documentation somewhere or remove

  was:
With CASSANDRA-17719 complete, basic/alpha CQL support for Accord is now 
available in the 
[cep-15-accord|https://github.com/apache/cassandra/commits/cep-15-accord] 
branch. There are, however, a number of features and enhancements that we would 
still like to add before we make it available to users. Here is a summary of 
those items, broadly categorized:
h3. {*}High Priority{*}{*}{*}

*Error Messages and UX*
 - Fix the element/field names in result metadata to match the user query
 - Better error messages
 -- Append/subtracting to/from frozen list
 -- attempts to use reference in WHERE clause
 -- LET using a reserved word

*Testing*
 - Figure out the original intent of placeholder tests in 
{{AccordIntegrationTest}} (ex. {{{}acceptInvalidationTest(){}}}){-}{{-}}

*Features*
 - Support for returning the result of an {{{}IF{}}}/condition
 - Constant terms on the RHS of LET
 - Support for having a reference on both LHS and RHS of {{IF}} predicates
 - Support for {{{}CONTAINS{}}}, {{{}CONTAINS KEY{}}}, and {{IN}} (important 
for CAS parity)
 - Mixed conditional and unconditional updates
 - Arithmetic operations on references in {{{}INSERT{}}}/{{{}UPDATE{}}} (ex. 
INSERT INTO ks.tbl1 (k, c, v) VALUES (0, 0, a.v + 1)
 - Support TTLs specified in txn updates.

*Tooling*
 - Remove {{reateepochunsafe}} references in {{JMXGetterCheckTest}}

 *Documentation*
 - JavaDoc for all new statement classes

h3. *Nice to Have*

*Domain Object Cleanup*
 - Given {{Selector}} is serializable, attempt to reuse it in {{TxnReference}} 
rather than hard coding data conversion cases
 - Separate current current {{LET}} statement from {{{}SelectStatement{}}}, 
likely as a new {{LetStatement}} that names a {{SelectStatement}}
 - Explore unifying {{Operation}} and {{ReferenceOperation}}
 - Include non-Row items of {{FilteredPartition}} in 
{{TxnData#estimatedSizeOnHeap()}}
 - Explore possibility of making {{Bound}} serializable and using it directly 
in {{TxnCondition}}
 - Change internal representation of {{TxnDataName}} to avoid {{String}} -> 
{{ByteBuffer}} conversions
 - Have {{{}TxnCondition{}}}/{{{}TxnUpdate{}}} support {{slice()}} to full take 
advantage of partial state replication
 - Update serialization logic to reflect 

[jira] [Updated] (CASSANDRA-18107) CEP-15: Multi-Partition Transaction CQL Support (Alpha -> v1)

2024-06-20 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-18107:

Description: 
With CASSANDRA-17719 complete, basic/alpha CQL support for Accord is now 
available in the 
[cep-15-accord|https://github.com/apache/cassandra/commits/cep-15-accord] 
branch. There are, however, a number of features and enhancements that we would 
still like to add before we make it available to users. Here is a summary of 
those items, broadly categorized:
h3. {*}High Priority{*}{*}{*}

*Error Messages and UX*
 - Fix the element/field names in result metadata to match the user query
 - Better error messages
 -- Append/subtracting to/from frozen list
 -- attempts to use reference in WHERE clause
 -- LET using a reserved word

*Testing*
 - Figure out the original intent of placeholder tests in 
{{AccordIntegrationTest}} (ex. {{{}acceptInvalidationTest(){}}}){-}{-}

*Features*
 - Support for returning the result of an {{{}IF{}}}/condition
 - Constant terms on the RHS of LET
 - Support for having a reference on both LHS and RHS of {{IF}} predicates
 - Support for {{{}CONTAINS{}}}, {{{}CONTAINS KEY{}}}, and {{IN}} (important 
for CAS parity)
 - Mixed conditional and unconditional updates
 - Arithmetic operations on references in {{{}INSERT{}}}/{{{}UPDATE{}}} (ex. 
INSERT INTO ks.tbl1 (k, c, v) VALUES (0, 0, a.v + 1)
 - Support TTLs specified in txn updates.

*Tooling*
 - Remove {{reateepochunsafe}} references in {{JMXGetterCheckTest}}

 *Documentation*
 - JavaDoc for all new statement classes

h3. *Nice to Have*

*Domain Object Cleanup*
 - Given {{Selector}} is serializable, attempt to reuse it in {{TxnReference}} 
rather than hard coding data conversion cases
 - Separate current current {{LET}} statement from {{{}SelectStatement{}}}, 
likely as a new {{LetStatement}} that names a {{SelectStatement}}
 - Explore unifying {{Operation}} and {{ReferenceOperation}}
 - Include non-Row items of {{FilteredPartition}} in 
{{TxnData#estimatedSizeOnHeap()}}
 - Explore possibility of making {{Bound}} serializable and using it directly 
in {{TxnCondition}}
 - Change internal representation of {{TxnDataName}} to avoid {{String}} -> 
{{ByteBuffer}} conversions
 - Have {{{}TxnCondition{}}}/{{{}TxnUpdate{}}} support {{slice()}} to full take 
advantage of partial state replication
 - Update serialization logic to reflect CASSANDRA-18099

*Features*
 - Full JSON support
 - Nested UDT support

 *Documentation*
 - CQL language documentation and bump the CQL language specification version
 - JavaDoc for all new statement classes
 - Integrate {{demo.txt}} into broader documentation somewhere or remove

  was:
With CASSANDRA-17719 complete, basic/alpha CQL support for Accord is now 
available in the 
[cep-15-accord|https://github.com/apache/cassandra/commits/cep-15-accord] 
branch. There are, however, a number of features and enhancements that we would 
still like to add before we make it available to users. Here is a summary of 
those items, broadly categorized:

*Error Messages and UX*
 - Fix the element/field names in result metadata to match the user query
 - Better error messages
 -- Append/subtracting to/from frozen list
 -- attempts to use reference in WHERE clause
 -- LET using a reserved word

*Domain Object Cleanup* (Potentially move to post v1)
 - Given {{Selector}} is serializable, attempt to reuse it in {{TxnReference}} 
rather than hard coding data conversion cases
 - Separate current current {{LET}} statement from {{{}SelectStatement{}}}, 
likely as a new {{LetStatement}} that names a {{SelectStatement}}
 - Explore unifying {{Operation}} and {{ReferenceOperation}}
 - Include non-Row items of {{FilteredPartition}} in 
{{TxnData#estimatedSizeOnHeap()}}
 - Explore possibility of making {{Bound}} serializable and using it directly 
in {{TxnCondition}}
 - Change internal representation of {{TxnDataName}} to avoid {{String}} -> 
{{ByteBuffer}} conversions
 - Have {{{}TxnCondition{}}}/{{{}TxnUpdate{}}} support {{slice()}} to full take 
advantage of partial state replication
 - Update serialization logic to reflect CASSANDRA-18099

*Testing*
 - Figure out the original intent of placeholder tests in 
{{AccordIntegrationTest}} (ex. {{{}acceptInvalidationTest(){}}})
 - -Remove hack in {{AccordConfigurationService}} (when we have Transactional 
Metadata)-
 - Verify concretely that we disable Guardrails (TODO: Break out into its own 
Jira?)
 - -Audit the way we propagate timestamps through execution.-

*Features*
 - Full JSON support
 - Final decision of whether we should support returning the result of an 
{{{}IF{}}}/condition
 - Constant terms on the RHS of LET
 - Support for having a reference on both LHS and RHS of {{IF}} predicates
 - Support for {{{}CONTAINS{}}}, {{{}CONTAINS KEY{}}}, and {{IN}} (important 
for CAS parity)
 - Nested UDT support
 - Mixed conditional and unconditional updates 

[jira] [Commented] (CASSANDRA-18988) Updating the column of a non-existent row in an Accord transaction results in Atomicity violation

2024-06-20 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe commented on CASSANDRA-18988:
-

I've started a thread on the dev mailing list to see if there's any appetite to 
change this behavior, which is, as [~benedict] has mentioned, the intended one.

 

[https://lists.apache.org/thread/rb29cbdkqv20gmbsx6w92r4lj0h4tmq8]

> Updating the column of a non-existent row in an Accord transaction results in 
> Atomicity violation
> -
>
> Key: CASSANDRA-18988
> URL: https://issues.apache.org/jira/browse/CASSANDRA-18988
> Project: Cassandra
>  Issue Type: Bug
>  Components: Accord
>Reporter: Luis E Fernandez
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 5.x
>
>
> *System configuration and information:*
> Single node Cassandra with Accord transactions enabled running on docker
> Built from commit: 
> [a7cd114435704b988c81f47ef53d0bfd6441f38b|https://github.com/apache/cassandra/commit/a7cd114435704b988c81f47ef53d0bfd6441f38b]
> CQLSH: [cqlsh 6.2.0 | Cassandra 5.0-alpha2-SNAPSHOT | CQL spec 3.4.7 | Native 
> protocol v5]
>  
> *Steps to reproduce in CQLSH:*
> {code:java}
> CREATE KEYSPACE accord WITH replication = {'class': 'SimpleStrategy', 
> 'replication_factor': '1'} AND durable_writes = true;{code}
> {code:java}
> CREATE TABLE accord.accounts (
>     partition text,
>     account_id int,
>     balance int,
>     PRIMARY KEY (partition, account_id)
> ) WITH CLUSTERING ORDER BY (account_id ASC);
> {code}
> {code:java}
> BEGIN TRANSACTION
> INSERT INTO accord.accounts (partition, account_id, balance) VALUES 
> ('default', 0, 100);
> INSERT INTO accord.accounts (partition, account_id, balance) VALUES 
> ('default', 1, 100);
> COMMIT TRANSACTION;{code}
> atomicity bug happens after executing the following statement:
> Based on [Cassandra 
> documentation|https://cassandra.apache.org/doc/4.1/cassandra/cql/dml.html#update-statement]
>  regarding the use of UPDATE statements, I expect the result of this 
> transaction to be the insertion of a new account (\{ account_id: 3, balance: 
> 10 }). The total balance across the three (3) accounts should be maintained 
> (200). After executing the below transaction, the total number of accounts 
> remains at two (2) and the total balance drops to 190. Basically, it appears 
> as if only one half of the transaction proceeds.
> {code:java}
> BEGIN TRANSACTION
> UPDATE accord.accounts
> SET balance -= 10
> WHERE
>   partition = 'default'
>   AND account_id = 1;
> UPDATE accord.accounts
> SET balance += 10
> WHERE
>   partition = 'default'
>   AND account_id = 3;
> COMMIT TRANSACTION;{code}
> Bug / Error:
> ==
> The result of performing a table read after executing the buggy transaction 
> is:
> {code:java}
>  partition | account_id | balance
> ---++-
>    default |          0 |     100
>    default |          1 |      90
> {code}
> {color:#172b4d}Note that the above transactions are not possible without a 
> transaction block because only counter type columns can be updated with += or 
> -= syntax in normal (non-transactional) cql statements. Using counter type 
> columns also results in a separate, related bug: 
> [CASSANDRA-18987|https://issues.apache.org/jira/browse/CASSANDRA-18987]{color}
> {color:#172b4d}This was found while testing Accord transactions with 
> [~henrik.ingo] and team.{color}



--
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-19675) Avoid streams in the common case for UpdateTransaction creation

2024-06-20 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19675:

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

> Avoid streams in the common case for UpdateTransaction creation
> ---
>
> Key: CASSANDRA-19675
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19675
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Feature/SAI
>Reporter: Caleb Rackliffe
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 5.0, 5.1
>
> Attachments: ci_summary-1.html, ci_summary.html, 
> new_update_txn_streams.png
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> Some recent Accord profiling highlighted some easily addressable inefficiency 
> in the way we create new {{UpdateTransaction}} objects in 
> {{SecondaryIndexManager}} that have existed since the introduction of index 
> groups for SAI. We should be able to clean this up by avoiding stream 
> creation or even iteration over the groups when there is a single index 
> group, which is going to be the most common case with SAI anyway. If we do 
> have to iterate, there should also be no reason to copy the collection of 
> index groups via {{listIndexGroups()}}, although that copying can remain in 
> the method itself for external callers.
>  !new_update_txn_streams.png! 



--
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-19675) Avoid streams in the common case for UpdateTransaction creation

2024-06-20 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19675:

Status: Ready to Commit  (was: Review In Progress)

> Avoid streams in the common case for UpdateTransaction creation
> ---
>
> Key: CASSANDRA-19675
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19675
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Feature/SAI
>Reporter: Caleb Rackliffe
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 5.0.x, 5.x
>
> Attachments: ci_summary-1.html, ci_summary.html, 
> new_update_txn_streams.png
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> Some recent Accord profiling highlighted some easily addressable inefficiency 
> in the way we create new {{UpdateTransaction}} objects in 
> {{SecondaryIndexManager}} that have existed since the introduction of index 
> groups for SAI. We should be able to clean this up by avoiding stream 
> creation or even iteration over the groups when there is a single index 
> group, which is going to be the most common case with SAI anyway. If we do 
> have to iterate, there should also be no reason to copy the collection of 
> index groups via {{listIndexGroups()}}, although that copying can remain in 
> the method itself for external callers.
>  !new_update_txn_streams.png! 



--
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-19697) Test failure: materialized_views_test.py::TestMaterializedViews::test_rename_column_atomicity

2024-06-18 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe commented on CASSANDRA-19697:
-

bq. along with my patch to limit waiting on Dispatcher.isDone to 
native_transport_timeout. I feel like that safeguard is a good idea since we 
don't know what other behavior may cause it to hang indefinitely.

+1

> Test failure: 
> materialized_views_test.py::TestMaterializedViews::test_rename_column_atomicity
> -
>
> Key: CASSANDRA-19697
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19697
> Project: Cassandra
>  Issue Type: Bug
>  Components: Feature/Materialized Views
>Reporter: Brandon Williams
>Assignee: Brandon Williams
>Priority: Normal
> Fix For: 5.0-rc, 5.x
>
> Attachments: shutdown_stuck.txt
>
>
> Breaking this out from CASSANDRA-19683.  The byteman script fails to execute 
> in 5.0/trunk after CASSANDRA-19534.



--
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-19675) Avoid streams in the common case for UpdateTransaction creation

2024-06-17 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19675:

Reviewers: David Capwell, Jeremiah Jordan  (was: David Capwell)

> Avoid streams in the common case for UpdateTransaction creation
> ---
>
> Key: CASSANDRA-19675
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19675
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Feature/SAI
>Reporter: Caleb Rackliffe
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 5.0.x, 5.x
>
> Attachments: ci_summary-1.html, ci_summary.html, 
> new_update_txn_streams.png
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> Some recent Accord profiling highlighted some easily addressable inefficiency 
> in the way we create new {{UpdateTransaction}} objects in 
> {{SecondaryIndexManager}} that have existed since the introduction of index 
> groups for SAI. We should be able to clean this up by avoiding stream 
> creation or even iteration over the groups when there is a single index 
> group, which is going to be the most common case with SAI anyway. If we do 
> have to iterate, there should also be no reason to copy the collection of 
> index groups via {{listIndexGroups()}}, although that copying can remain in 
> the method itself for external callers.
>  !new_update_txn_streams.png! 



--
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-19675) Avoid streams in the common case for UpdateTransaction creation

2024-06-17 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19675:

Attachment: ci_summary-1.html

> Avoid streams in the common case for UpdateTransaction creation
> ---
>
> Key: CASSANDRA-19675
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19675
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Feature/SAI
>Reporter: Caleb Rackliffe
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 5.0.x, 5.x
>
> Attachments: ci_summary-1.html, ci_summary.html, 
> new_update_txn_streams.png
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> Some recent Accord profiling highlighted some easily addressable inefficiency 
> in the way we create new {{UpdateTransaction}} objects in 
> {{SecondaryIndexManager}} that have existed since the introduction of index 
> groups for SAI. We should be able to clean this up by avoiding stream 
> creation or even iteration over the groups when there is a single index 
> group, which is going to be the most common case with SAI anyway. If we do 
> have to iterate, there should also be no reason to copy the collection of 
> index groups via {{listIndexGroups()}}, although that copying can remain in 
> the method itself for external callers.
>  !new_update_txn_streams.png! 



--
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-19675) Avoid streams in the common case for UpdateTransaction creation

2024-06-17 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe commented on CASSANDRA-19675:
-

trunk CI looks fine as well  [^ci_summary-1.html] 

> Avoid streams in the common case for UpdateTransaction creation
> ---
>
> Key: CASSANDRA-19675
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19675
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Feature/SAI
>Reporter: Caleb Rackliffe
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 5.0.x, 5.x
>
> Attachments: ci_summary-1.html, ci_summary.html, 
> new_update_txn_streams.png
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> Some recent Accord profiling highlighted some easily addressable inefficiency 
> in the way we create new {{UpdateTransaction}} objects in 
> {{SecondaryIndexManager}} that have existed since the introduction of index 
> groups for SAI. We should be able to clean this up by avoiding stream 
> creation or even iteration over the groups when there is a single index 
> group, which is going to be the most common case with SAI anyway. If we do 
> have to iterate, there should also be no reason to copy the collection of 
> index groups via {{listIndexGroups()}}, although that copying can remain in 
> the method itself for external callers.
>  !new_update_txn_streams.png! 



--
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-19675) Avoid streams in the common case for UpdateTransaction creation

2024-06-17 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19675:

Reviewers: David Capwell
   Status: Review In Progress  (was: Patch Available)

> Avoid streams in the common case for UpdateTransaction creation
> ---
>
> Key: CASSANDRA-19675
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19675
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Feature/SAI
>Reporter: Caleb Rackliffe
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 5.0.x, 5.x
>
> Attachments: ci_summary-1.html, ci_summary.html, 
> new_update_txn_streams.png
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> Some recent Accord profiling highlighted some easily addressable inefficiency 
> in the way we create new {{UpdateTransaction}} objects in 
> {{SecondaryIndexManager}} that have existed since the introduction of index 
> groups for SAI. We should be able to clean this up by avoiding stream 
> creation or even iteration over the groups when there is a single index 
> group, which is going to be the most common case with SAI anyway. If we do 
> have to iterate, there should also be no reason to copy the collection of 
> index groups via {{listIndexGroups()}}, although that copying can remain in 
> the method itself for external callers.
>  !new_update_txn_streams.png! 



--
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-19697) Test failure: materialized_views_test.py::TestMaterializedViews::test_rename_column_atomicity

2024-06-14 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19697:

Reviewers: Caleb Rackliffe, Stefan Miklosovic  (was: Stefan Miklosovic)

> Test failure: 
> materialized_views_test.py::TestMaterializedViews::test_rename_column_atomicity
> -
>
> Key: CASSANDRA-19697
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19697
> Project: Cassandra
>  Issue Type: Bug
>  Components: Feature/Materialized Views
>Reporter: Brandon Williams
>Assignee: Brandon Williams
>Priority: Normal
> Fix For: 5.0-rc, 5.x
>
> Attachments: shutdown_stuck.txt
>
>
> Breaking this out from CASSANDRA-19683.  The byteman script fails to execute 
> in 5.0/trunk after CASSANDRA-19534.



--
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-19697) Test failure: materialized_views_test.py::TestMaterializedViews::test_rename_column_atomicity

2024-06-14 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe commented on CASSANDRA-19697:
-

{{shutdownClientServers()}} looks like it only affects drain and decom, so I 
have no problem w/ the patch, and all it seems to do is revert to pre 
CASSANDRA-19534 behavior. It doesn't matter on 4.1, as that doesn't wait for 
the {{Dispatcher}} anyway. I'm just not entirely sure why 5.0 isn't getting 
into a state where {{Dispatcher#requestExecutor}} is finished.

CC [~ifesdjeen]

> Test failure: 
> materialized_views_test.py::TestMaterializedViews::test_rename_column_atomicity
> -
>
> Key: CASSANDRA-19697
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19697
> Project: Cassandra
>  Issue Type: Bug
>  Components: Feature/Materialized Views
>Reporter: Brandon Williams
>Assignee: Brandon Williams
>Priority: Normal
> Fix For: 5.0-rc, 5.x
>
> Attachments: shutdown_stuck.txt
>
>
> Breaking this out from CASSANDRA-19683.  The byteman script fails to execute 
> in 5.0/trunk after CASSANDRA-19534.



--
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-18107) CEP-15: Multi-Partition Transaction CQL Support (Alpha -> v1)

2024-06-14 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-18107:

Description: 
With CASSANDRA-17719 complete, basic/alpha CQL support for Accord is now 
available in the 
[cep-15-accord|https://github.com/apache/cassandra/commits/cep-15-accord] 
branch. There are, however, a number of features and enhancements that we would 
still like to add before we make it available to users. Here is a summary of 
those items, broadly categorized:

*Error Messages and UX*
 - Fix the element/field names in result metadata to match the user query
 - Better error messages
 -- Append/subtracting to/from frozen list
 -- attempts to use reference in WHERE clause
 -- LET using a reserved word

*Domain Object Cleanup* (Potentially move to post v1)
 - Given {{Selector}} is serializable, attempt to reuse it in {{TxnReference}} 
rather than hard coding data conversion cases
 - Separate current current {{LET}} statement from {{{}SelectStatement{}}}, 
likely as a new {{LetStatement}} that names a {{SelectStatement}}
 - Explore unifying {{Operation}} and {{ReferenceOperation}}
 - Include non-Row items of {{FilteredPartition}} in 
{{TxnData#estimatedSizeOnHeap()}}
 - Explore possibility of making {{Bound}} serializable and using it directly 
in {{TxnCondition}}
 - Change internal representation of {{TxnDataName}} to avoid {{String}} -> 
{{ByteBuffer}} conversions
 - Have {{{}TxnCondition{}}}/{{{}TxnUpdate{}}} support {{slice()}} to full take 
advantage of partial state replication
 - Update serialization logic to reflect CASSANDRA-18099

*Testing*
 - Figure out the original intent of placeholder tests in 
{{AccordIntegrationTest}} (ex. {{{}acceptInvalidationTest(){}}})
 - -Remove hack in {{AccordConfigurationService}} (when we have Transactional 
Metadata)-
 - Verify concretely that we disable Guardrails (TODO: Break out into its own 
Jira?)
 - -Audit the way we propagate timestamps through execution.-

*Features*
 - Full JSON support
 - Final decision of whether we should support returning the result of an 
{{{}IF{}}}/condition
 - Constant terms on the RHS of LET
 - Support for having a reference on both LHS and RHS of {{IF}} predicates
 - Support for {{{}CONTAINS{}}}, {{{}CONTAINS KEY{}}}, and {{IN}} (important 
for CAS parity)
 - Nested UDT support
 - Mixed conditional and unconditional updates (should this be post-v1?)
 - Arithmetic operations on references in {{{}INSERT{}}}/{{{}UPDATE{}}} (ex. 
INSERT INTO ks.tbl1 (k, c, v) VALUES (0, 0, a.v + 1)

*Tooling*
 - Eliminate {{nodetool createepochunsafe}} once transactional metadata is 
available.
 -- UPDATE: Removed now, but still in {{JMXGetterCheckTest}}

 *Documentation*
 - CQL language documentation and bump the CQL language specification version
 - JavaDoc for all new statement classes
 - Integrate {{demo.txt}} into broader documentation somewhere or remove

*Questions*
 - How should txn statement parsing/preparation handle TTLs specified in 
updates? (Should be supported.)
 - At what level do we want to integrate tracing? (TODO: Break out into its own 
Jira?)

  was:
With CASSANDRA-17719 complete, basic/alpha CQL support for Accord is now 
available in the 
[cep-15-accord|https://github.com/apache/cassandra/commits/cep-15-accord] 
branch. There are, however, a number of features and enhancements that we would 
still like to add before we make it available to users. Here is a summary of 
those items, broadly categorized:

*Error Messages and UX*
 - Fix the element/field names in result metadata to match the user query
 - Better error messages
 -- Append/subtracting to/from frozen list
 -- attempts to use reference in WHERE clause
 -- LET using a reserved word

*Domain Object Cleanup*
 - Given {{Selector}} is serializable, attempt to reuse it in {{TxnReference}} 
rather than hard coding data conversion cases
 - Separate current current {{LET}} statement from {{{}SelectStatement{}}}, 
likely as a new {{LetStatement}} that names a {{SelectStatement}}
 - Explore unifying {{Operation}} and {{ReferenceOperation}}
 - Include non-Row items of {{FilteredPartition}} in 
{{TxnData#estimatedSizeOnHeap()}}
 - Explore possibility of making {{Bound}} serializable and using it directly 
in {{TxnCondition}}
 - Change internal representation of {{TxnDataName}} to avoid {{String}} -> 
{{ByteBuffer}} conversions
 - Have {{{}TxnCondition{}}}/{{{}TxnUpdate{}}} support {{slice()}} to full take 
advantage of partial state replication
 - Update serialization logic to reflect CASSANDRA-18099

*Testing*
 - Figure out the original intent of placeholder tests in 
{{AccordIntegrationTest}} (ex. {{{}acceptInvalidationTest(){}}})
 - -Remove hack in {{AccordConfigurationService}} (when we have Transactional 
Metadata)-
 - Verify concretely that we disable Guardrails.
 - Audit the way we propagate timestamps through execution.

*Features*
 - Full JSON 

[jira] [Updated] (CASSANDRA-18107) CEP-15: Multi-Partition Transaction CQL Support (Alpha -> v1)

2024-06-14 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-18107:

Description: 
With CASSANDRA-17719 complete, basic/alpha CQL support for Accord is now 
available in the 
[cep-15-accord|https://github.com/apache/cassandra/commits/cep-15-accord] 
branch. There are, however, a number of features and enhancements that we would 
still like to add before we make it available to users. Here is a summary of 
those items, broadly categorized:

*Error Messages and UX*
 - Fix the element/field names in result metadata to match the user query
 - Better error messages
 -- Append/subtracting to/from frozen list
 -- attempts to use reference in WHERE clause
 -- LET using a reserved word

*Domain Object Cleanup*
 - Given {{Selector}} is serializable, attempt to reuse it in {{TxnReference}} 
rather than hard coding data conversion cases
 - Separate current current {{LET}} statement from {{{}SelectStatement{}}}, 
likely as a new {{LetStatement}} that names a {{SelectStatement}}
 - Explore unifying {{Operation}} and {{ReferenceOperation}}
 - Include non-Row items of {{FilteredPartition}} in 
{{TxnData#estimatedSizeOnHeap()}}
 - Explore possibility of making {{Bound}} serializable and using it directly 
in {{TxnCondition}}
 - Change internal representation of {{TxnDataName}} to avoid {{String}} -> 
{{ByteBuffer}} conversions
 - Have {{{}TxnCondition{}}}/{{{}TxnUpdate{}}} support {{slice()}} to full take 
advantage of partial state replication
 - Update serialization logic to reflect CASSANDRA-18099

*Testing*
 - Figure out the original intent of placeholder tests in 
{{AccordIntegrationTest}} (ex. {{{}acceptInvalidationTest(){}}})
 - -Remove hack in {{AccordConfigurationService}} (when we have Transactional 
Metadata)-
 - Verify concretely that we disable Guardrails.
 - Audit the way we propagate timestamps through execution.

*Features*
 - Full JSON support
 - Final decision of whether we should support returning the result of an 
{{{}IF{}}}/condition
 - Constant terms on the RHS of LET
 - Support for having a reference on both LHS and RHS of {{IF}} predicates
 - Support for {{{}CONTAINS{}}}, {{{}CONTAINS KEY{}}}, and {{IN}} (important 
for CAS parity)
 - Nested UDT support
 - Mixed conditional and unconditional updates (should this be post-v1?)
 - Arithmetic operations on references in {{{}INSERT{}}}/{{{}UPDATE{}}} (ex. 
INSERT INTO ks.tbl1 (k, c, v) VALUES (0, 0, a.v + 1)

*Tooling*
 - Eliminate {{nodetool createepochunsafe}} once transactional metadata is 
available.
 -- UPDATE: Removed now, but still in {{JMXGetterCheckTest }}and 
accord_demo.txt 

 *Documentation*
 - CQL language documentation and bump the CQL language specification version
 - JavaDoc for all new statement classes
 - Integrate {{demo.txt}} into broader documentation somewhere or remove

*Questions*
 - How should txn statement parsing/preparation handle TTLs specified in 
updates?
 - At what level do we want to integrate tracing?

  was:
With CASSANDRA-17719 complete, basic/alpha CQL support for Accord is now 
available in the 
[cep-15-accord|https://github.com/apache/cassandra/commits/cep-15-accord] 
branch. There are, however, a number of features and enhancements that we would 
still like to add before we make it available to users. Here is a summary of 
those items, broadly categorized:

*Error Messages and UX*
 - Fix the element/field names in result metadata to match the user query
 - Better error messages
 -- Append/subtracting to/from frozen list
 -- attempts to use reference in WHERE clause
 -- LET using a reserved word

*Domain Object Cleanup*
 - Given {{Selector}} is serializable, attempt to reuse it in {{TxnReference}} 
rather than hard coding data conversion cases
 - Separate current current {{LET}} statement from {{{}SelectStatement{}}}, 
likely as a new {{LetStatement}} that names a {{SelectStatement}}
 - Explore unifying {{Operation}} and {{ReferenceOperation}}
 - Include non-Row items of {{FilteredPartition}} in 
{{TxnData#estimatedSizeOnHeap()}}
 - Explore possibility of making {{Bound}} serializable and using it directly 
in {{TxnCondition}}
 - Change internal representation of {{TxnDataName}} to avoid {{String}} -> 
{{ByteBuffer}} conversions
 - Have {{{}TxnCondition{}}}/{{{}TxnUpdate{}}} support {{slice()}} to full take 
advantage of partial state replication
 - Update serialization logic to reflect CASSANDRA-18099

*Testing*
 - Figure out the original intent of placeholder tests in 
{{AccordIntegrationTest}} (ex. {{{}acceptInvalidationTest(){}}})
 - -Remove hack in {{AccordConfigurationService}} (when we have Transactional 
Metadata)-
 - Verify concretely that we disable Guardrails.
 - Audit the way we propagate timestamps through execution.

*Features*
 - Full JSON support
 - Final decision of whether we should support returning the result of an 
{{{}IF{}}}/condition
 - 

[jira] [Updated] (CASSANDRA-18107) CEP-15: Multi-Partition Transaction CQL Support (Alpha -> v1)

2024-06-14 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-18107:

Description: 
With CASSANDRA-17719 complete, basic/alpha CQL support for Accord is now 
available in the 
[cep-15-accord|https://github.com/apache/cassandra/commits/cep-15-accord] 
branch. There are, however, a number of features and enhancements that we would 
still like to add before we make it available to users. Here is a summary of 
those items, broadly categorized:

*Error Messages and UX*
 - Fix the element/field names in result metadata to match the user query
 - Better error messages
 -- Append/subtracting to/from frozen list
 -- attempts to use reference in WHERE clause
 -- LET using a reserved word

*Domain Object Cleanup*
 - Given {{Selector}} is serializable, attempt to reuse it in {{TxnReference}} 
rather than hard coding data conversion cases
 - Separate current current {{LET}} statement from {{{}SelectStatement{}}}, 
likely as a new {{LetStatement}} that names a {{SelectStatement}}
 - Explore unifying {{Operation}} and {{ReferenceOperation}}
 - Include non-Row items of {{FilteredPartition}} in 
{{TxnData#estimatedSizeOnHeap()}}
 - Explore possibility of making {{Bound}} serializable and using it directly 
in {{TxnCondition}}
 - Change internal representation of {{TxnDataName}} to avoid {{String}} -> 
{{ByteBuffer}} conversions
 - Have {{{}TxnCondition{}}}/{{{}TxnUpdate{}}} support {{slice()}} to full take 
advantage of partial state replication
 - Update serialization logic to reflect CASSANDRA-18099

*Testing*
 - Figure out the original intent of placeholder tests in 
{{AccordIntegrationTest}} (ex. {{{}acceptInvalidationTest(){}}})
 - -Remove hack in {{AccordConfigurationService}} (when we have Transactional 
Metadata)-
 - Verify concretely that we disable Guardrails.
 - Audit the way we propagate timestamps through execution.

*Features*
 - Full JSON support
 - Final decision of whether we should support returning the result of an 
{{{}IF{}}}/condition
 - Constant terms on the RHS of LET
 - Support for having a reference on both LHS and RHS of {{IF}} predicates
 - Support for {{{}CONTAINS{}}}, {{{}CONTAINS KEY{}}}, and {{IN}} (important 
for CAS parity)
 - Nested UDT support
 - Mixed conditional and unconditional updates (should this be post-v1?)
 - Arithmetic operations on references in {{{}INSERT{}}}/{{{}UPDATE{}}} (ex. 
INSERT INTO ks.tbl1 (k, c, v) VALUES (0, 0, a.v + 1)

*Tooling*
 - Eliminate {{nodetool createepochunsafe}} once transactional metadata is 
available.
 -- UPDATE: Removed now, but still in {{JMXGetterCheckTest}} and 
accord_demo.txt 

 *Documentation*
 - CQL language documentation and bump the CQL language specification version
 - JavaDoc for all new statement classes
 - Integrate {{demo.txt}} into broader documentation somewhere or remove

*Questions*
 - How should txn statement parsing/preparation handle TTLs specified in 
updates?
 - At what level do we want to integrate tracing?

  was:
With CASSANDRA-17719 complete, basic/alpha CQL support for Accord is now 
available in the 
[cep-15-accord|https://github.com/apache/cassandra/commits/cep-15-accord] 
branch. There are, however, a number of features and enhancements that we would 
still like to add before we make it available to users. Here is a summary of 
those items, broadly categorized:

*Error Messages and UX*
 - Fix the element/field names in result metadata to match the user query
 - Better error messages
 -- Append/subtracting to/from frozen list
 -- attempts to use reference in WHERE clause
 -- LET using a reserved word

*Domain Object Cleanup*
 - Given {{Selector}} is serializable, attempt to reuse it in {{TxnReference}} 
rather than hard coding data conversion cases
 - Separate current current {{LET}} statement from {{{}SelectStatement{}}}, 
likely as a new {{LetStatement}} that names a {{SelectStatement}}
 - Explore unifying {{Operation}} and {{ReferenceOperation}}
 - Include non-Row items of {{FilteredPartition}} in 
{{TxnData#estimatedSizeOnHeap()}}
 - Explore possibility of making {{Bound}} serializable and using it directly 
in {{TxnCondition}}
 - Change internal representation of {{TxnDataName}} to avoid {{String}} -> 
{{ByteBuffer}} conversions
 - Have {{{}TxnCondition{}}}/{{{}TxnUpdate{}}} support {{slice()}} to full take 
advantage of partial state replication
 - Update serialization logic to reflect CASSANDRA-18099

*Testing*
 - Figure out the original intent of placeholder tests in 
{{AccordIntegrationTest}} (ex. {{{}acceptInvalidationTest(){}}})
 - -Remove hack in {{AccordConfigurationService}} (when we have Transactional 
Metadata)-
 - Verify concretely that we disable Guardrails.
 - Audit the way we propagate timestamps through execution.

*Features*
 - Full JSON support
 - Final decision of whether we should support returning the result of an 
{{{}IF{}}}/condition
 - 

[jira] [Updated] (CASSANDRA-18107) CEP-15: Multi-Partition Transaction CQL Support (Alpha -> v1)

2024-06-14 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-18107:

Description: 
With CASSANDRA-17719 complete, basic/alpha CQL support for Accord is now 
available in the 
[cep-15-accord|https://github.com/apache/cassandra/commits/cep-15-accord] 
branch. There are, however, a number of features and enhancements that we would 
still like to add before we make it available to users. Here is a summary of 
those items, broadly categorized:

*Error Messages and UX*
 - Fix the element/field names in result metadata to match the user query
 - Better error messages
 -- Append/subtracting to/from frozen list
 -- attempts to use reference in WHERE clause
 -- LET using a reserved word

*Domain Object Cleanup*
 - Given {{Selector}} is serializable, attempt to reuse it in {{TxnReference}} 
rather than hard coding data conversion cases
 - Separate current current {{LET}} statement from {{{}SelectStatement{}}}, 
likely as a new {{LetStatement}} that names a {{SelectStatement}}
 - Explore unifying {{Operation}} and {{ReferenceOperation}}
 - Include non-Row items of {{FilteredPartition}} in 
{{TxnData#estimatedSizeOnHeap()}}
 - Explore possibility of making {{Bound}} serializable and using it directly 
in {{TxnCondition}}
 - Change internal representation of {{TxnDataName}} to avoid {{String}} -> 
{{ByteBuffer}} conversions
 - Have {{{}TxnCondition{}}}/{{{}TxnUpdate{}}} support {{slice()}} to full take 
advantage of partial state replication
 - Update serialization logic to reflect CASSANDRA-18099

*Testing*
 - Figure out the original intent of placeholder tests in 
{{AccordIntegrationTest}} (ex. {{{}acceptInvalidationTest(){}}})
 - -Remove hack in {{AccordConfigurationService}} (when we have Transactional 
Metadata)-
 - Verify concretely that we disable Guardrails.
 - Audit the way we propagate timestamps through execution.

*Features*
 - Full JSON support
 - Final decision of whether we should support returning the result of an 
{{{}IF{}}}/condition
 - Constant terms on the RHS of LET
 - Support for having a reference on both LHS and RHS of {{IF}} predicates
 - Support for {{{}CONTAINS{}}}, {{{}CONTAINS KEY{}}}, and {{IN}} (important 
for CAS parity)
 - Nested UDT support
 - Mixed conditional and unconditional updates (should this be post-v1?)
 - Arithmetic operations on references in {{{}INSERT{}}}/{{{}UPDATE{}}} (ex. 
INSERT INTO ks.tbl1 (k, c, v) VALUES (0, 0, a.v + 1)

*Tooling*
 - Eliminate {{nodetool createepochunsafe}} once transactional metadata is 
available.

*Documentation*
 - CQL language documentation and bump the CQL language specification version
 - JavaDoc for all new statement classes
 - Integrate {{demo.txt}} into broader documentation somewhere or remove

*Questions*
 - How should txn statement parsing/preparation handle TTLs specified in 
updates?
 - At what level do we want to integrate tracing?

  was:
With CASSANDRA-17719 complete, basic/alpha CQL support for Accord is now 
available in the 
[cep-15-accord|https://github.com/apache/cassandra/commits/cep-15-accord] 
branch. There are, however, a number of features and enhancements that we would 
still like to add before we make it available to users. Here is a summary of 
those items, broadly categorized:

*Error Messages and UX*

- Fix the element/field names in result metadata to match the user query
- Better error messages
-- Append/subtracting to/from frozen list
-- attempts to use reference in WHERE clause
-- LET using a reserved word

*Domain Object Cleanup*

- Given {{Selector}} is serializable, attempt to reuse it in {{TxnReference}} 
rather than hard coding data conversion cases
- Separate current current {{LET}} statement from {{SelectStatement}}, likely 
as a new {{LetStatement}} that names a {{SelectStatement}}
- Explore unifying {{Operation}} and {{ReferenceOperation}}
- Include non-Row items of {{FilteredPartition}} in 
{{TxnData#estimatedSizeOnHeap()}}
- Explore possibility of making {{Bound}} serializable and using it directly in 
{{TxnCondition}}
- Change internal representation of {{TxnDataName}} to avoid {{String}} -> 
{{ByteBuffer}} conversions
- Have {{TxnCondition}}/{{TxnUpdate}} support {{slice()}} to full take 
advantage of partial state replication
- Update serialization logic to reflect CASSANDRA-18099

*Testing*

- Figure out the original intent of placeholder tests in 
{{AccordIntegrationTest}} (ex. {{acceptInvalidationTest()}})
- Remove hack in {{AccordConfigurationService}} (when we have Transactional 
Metadata)
- Verify concretely that we disable Guardrails.
- Audit the way we propagate timestamps through execution.

*Features* 

- Full JSON support
- Final decision of whether we should support returning the result of an 
{{IF}}/condition
- Constant terms on the RHS of LET
- Support for having a reference on both LHS and RHS of {{IF}} predicates
- Support for 

  1   2   3   4   5   6   7   8   9   10   >