[jira] [Updated] (CASSANDRA-19344) Test Failure: org.apache.cassandra.distributed.test.TransientRangeMovementTest.testRemoveNode-_jdk17

2024-03-22 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-19344:

Attachment: ci_summary.html
result_details.tar.gz

> Test Failure: 
> org.apache.cassandra.distributed.test.TransientRangeMovementTest.testRemoveNode-_jdk17
> 
>
> Key: CASSANDRA-19344
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19344
> Project: Cassandra
>  Issue Type: Bug
>  Components: CI
>Reporter: Ekaterina Dimitrova
>Assignee: Sam Tunnicliffe
>Priority: Normal
> Fix For: 5.x
>
> Attachments: ci_summary.html, result_details.tar.gz
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> The test can fail in two different ways:
> {code:java}
> junit.framework.AssertionFailedError: NOT IN CURRENT: 31 -- [(00,20), 
> (31,50)] at 
> org.apache.cassandra.distributed.test.TransientRangeMovementTest.assertAllContained(TransientRangeMovementTest.java:203)
>  at 
> org.apache.cassandra.distributed.test.TransientRangeMovementTest.testRemoveNode(TransientRangeMovementTest.java:183)
>  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 
> Method) at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
>  at 
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43){code}
> as in here - 
> [https://app.circleci.com/pipelines/github/ekaterinadimitrova2/cassandra/2639/workflows/32b92ce7-5e9d-4efb-8362-d200d2414597/jobs/55139/tests#failed-test-0]
> and
> {code:java}
> junit.framework.AssertionFailedError: nodetool command [removenode, 
> 6d194555-f6eb-41d0-c000-0003, --force] was not successful stdout: 
> stderr: error: Node /127.0.0.4:7012 is alive and owns this ID. Use 
> decommission command to remove it from the ring -- StackTrace -- 
> java.lang.UnsupportedOperationException: Node /127.0.0.4:7012 is alive and 
> owns this ID. Use decommission command to remove it from the ring at 
> org.apache.cassandra.tcm.sequences.SingleNodeSequences.removeNode(SingleNodeSequences.java:110)
>  at 
> org.apache.cassandra.service.StorageService.removeNode(StorageService.java:3682)
>  at org.apache.cassandra.tools.NodeProbe.removeNode(NodeProbe.java:1020) at 
> org.apache.cassandra.tools.nodetool.RemoveNode.execute(RemoveNode.java:51) at 
> org.apache.cassandra.tools.NodeTool$NodeToolCmd.runInternal(NodeTool.java:388)
>  at org.apache.cassandra.tools.NodeTool$NodeToolCmd.run(NodeTool.java:373) at 
> org.apache.cassandra.tools.NodeTool.execute(NodeTool.java:272) at 
> org.apache.cassandra.distributed.impl.Instance$DTestNodeTool.execute(Instance.java:1129)
>  at 
> org.apache.cassandra.distributed.impl.Instance.lambda$nodetoolResult$51(Instance.java:1038)
>  at org.apache.cassandra.concurrent.FutureTask.call(FutureTask.java:61) at 
> org.apache.cassandra.concurrent.FutureTask.run(FutureTask.java:71) at 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
>  at 
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
>  at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
>  at java.base/java.lang.Thread.run(Thread.java:833) Notifications: Error: 
> java.lang.UnsupportedOperationException: Node /127.0.0.4:7012 is alive and 
> owns this ID. Use decommission command to remove it from the ring at 
> org.apache.cassandra.tcm.sequences.SingleNodeSequences.removeNode(SingleNodeSequences.java:110)
>  at 
> org.apache.cassandra.service.StorageService.removeNode(StorageService.java:3682)
>  at org.apache.cassandra.tools.NodeProbe.removeNode(NodeProbe.java:1020) at 
> org.apache.cassandra.tools.nodetool.RemoveNode.execute(RemoveNode.java:51) at 
> org.apache.cassandra.tools.NodeTool$NodeToolCmd.runInternal(NodeTool.java:388)
>  at org.apache.cassandra.tools.NodeTool$NodeToolCmd.run(NodeTool.java:373) at 
> org.apache.cassandra.tools.NodeTool.execute(NodeTool.java:272) at 
> org.apache.cassandra.distributed.impl.Instance$DTestNodeTool.execute(Instance.java:1129)
>  at 
> org.apache.cassandra.distributed.impl.Instance.lambda$nodetoolResult$51(Instance.java:1038)
>  at org.apache.cassandra.concurrent.FutureTask.call(FutureTask.java:61) at 
> org.apache.cassandra.concurrent.FutureTask.run(FutureTask.java:71) at 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
>  at 
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
>  at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
>  at java.base/java.lang.Thread.run(Thread.java:833) at 
> 

[jira] [Updated] (CASSANDRA-19344) Test Failure: org.apache.cassandra.distributed.test.TransientRangeMovementTest.testRemoveNode-_jdk17

2024-03-22 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-19344:

Authors: Marcus Eriksson, Sam Tunnicliffe  (was: Sam 
Tunnicliffe)
Test and Documentation Plan: 
New and existing tests in attached CI results.
The few failures/errors in the attached results are known (CASSANDRA-19343) or 
look to be infra-related.

 Status: Patch Available  (was: In Progress)

When an instance moves from a transient to a full replica for a given range, it 
must begin acting as a full replica for writes before it does so for reads. 
Otherwise, consistency can be violated as data streamed to the instance early 
in the operation can be removed by cleanup if it occurs before the instance 
assumes responsibility for full writes. Also, coordinators will route read 
requests to instances which may not have received all preceding writes, causing 
unnecessary read repair or potentially inconsistent results. 

The root cause of the flaky test failure which originally produced this issue 
was that in {{TransientRangeMovementTest::testRemoveNode}} cleanup happened to 
run on one instance before it had enacted the final step of the removal 
operation, leading it to remove more data than it should. 

> Test Failure: 
> org.apache.cassandra.distributed.test.TransientRangeMovementTest.testRemoveNode-_jdk17
> 
>
> Key: CASSANDRA-19344
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19344
> Project: Cassandra
>  Issue Type: Bug
>  Components: CI
>Reporter: Ekaterina Dimitrova
>Assignee: Sam Tunnicliffe
>Priority: Normal
> Fix For: 5.x
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> The test can fail in two different ways:
> {code:java}
> junit.framework.AssertionFailedError: NOT IN CURRENT: 31 -- [(00,20), 
> (31,50)] at 
> org.apache.cassandra.distributed.test.TransientRangeMovementTest.assertAllContained(TransientRangeMovementTest.java:203)
>  at 
> org.apache.cassandra.distributed.test.TransientRangeMovementTest.testRemoveNode(TransientRangeMovementTest.java:183)
>  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 
> Method) at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
>  at 
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43){code}
> as in here - 
> [https://app.circleci.com/pipelines/github/ekaterinadimitrova2/cassandra/2639/workflows/32b92ce7-5e9d-4efb-8362-d200d2414597/jobs/55139/tests#failed-test-0]
> and
> {code:java}
> junit.framework.AssertionFailedError: nodetool command [removenode, 
> 6d194555-f6eb-41d0-c000-0003, --force] was not successful stdout: 
> stderr: error: Node /127.0.0.4:7012 is alive and owns this ID. Use 
> decommission command to remove it from the ring -- StackTrace -- 
> java.lang.UnsupportedOperationException: Node /127.0.0.4:7012 is alive and 
> owns this ID. Use decommission command to remove it from the ring at 
> org.apache.cassandra.tcm.sequences.SingleNodeSequences.removeNode(SingleNodeSequences.java:110)
>  at 
> org.apache.cassandra.service.StorageService.removeNode(StorageService.java:3682)
>  at org.apache.cassandra.tools.NodeProbe.removeNode(NodeProbe.java:1020) at 
> org.apache.cassandra.tools.nodetool.RemoveNode.execute(RemoveNode.java:51) at 
> org.apache.cassandra.tools.NodeTool$NodeToolCmd.runInternal(NodeTool.java:388)
>  at org.apache.cassandra.tools.NodeTool$NodeToolCmd.run(NodeTool.java:373) at 
> org.apache.cassandra.tools.NodeTool.execute(NodeTool.java:272) at 
> org.apache.cassandra.distributed.impl.Instance$DTestNodeTool.execute(Instance.java:1129)
>  at 
> org.apache.cassandra.distributed.impl.Instance.lambda$nodetoolResult$51(Instance.java:1038)
>  at org.apache.cassandra.concurrent.FutureTask.call(FutureTask.java:61) at 
> org.apache.cassandra.concurrent.FutureTask.run(FutureTask.java:71) at 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
>  at 
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
>  at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
>  at java.base/java.lang.Thread.run(Thread.java:833) Notifications: Error: 
> java.lang.UnsupportedOperationException: Node /127.0.0.4:7012 is alive and 
> owns this ID. Use decommission command to remove it from the ring at 
> org.apache.cassandra.tcm.sequences.SingleNodeSequences.removeNode(SingleNodeSequences.java:110)
>  at 
> org.apache.cassandra.service.StorageService.removeNode(StorageService.java:3682)
>  at org.apache.cassandra.tools.NodePro

[jira] [Updated] (CASSANDRA-19482) Simplify metadata log implementation using custom partitioner

2024-03-22 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-19482:

Change Category: Code Clarity
 Complexity: Normal
  Fix Version/s: 5.x
 Status: Open  (was: Triage Needed)

> Simplify metadata log implementation using custom partitioner
> -
>
> Key: CASSANDRA-19482
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19482
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Transactional Cluster Metadata
>Reporter: Sam Tunnicliffe
>Assignee: Sam Tunnicliffe
>Priority: Normal
> Fix For: 5.x
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> The distributed metadata log table can be simplified by leveraging the fact 
> that replicas are all responsible for the entire token range. Given this 
> assumption, we can then use {{ReversedLongLocalPartitioner}} introduced in 
> CASSANDRA-19391 to make it much easier to append to/read from the tail of the 
> log, effectively removing the need for the {{Period}} construct. This will 
> also improve apply to the local metadata log used at startup.  



--
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-19482) Simplify metadata log implementation using custom partitioner

2024-03-22 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-19482:

Authors: Marcus Eriksson, Sam Tunnicliffe  (was: Sam 
Tunnicliffe)
Test and Documentation Plan: 
New and existing tests in attached CI results.
The few failures/errors in the attached results are known (CASSANDRA-19343) or 
look to be infra-related.
 Status: Patch Available  (was: Open)

> Simplify metadata log implementation using custom partitioner
> -
>
> Key: CASSANDRA-19482
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19482
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Transactional Cluster Metadata
>Reporter: Sam Tunnicliffe
>Assignee: Sam Tunnicliffe
>Priority: Normal
> Fix For: 5.x
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> The distributed metadata log table can be simplified by leveraging the fact 
> that replicas are all responsible for the entire token range. Given this 
> assumption, we can then use {{ReversedLongLocalPartitioner}} introduced in 
> CASSANDRA-19391 to make it much easier to append to/read from the tail of the 
> log, effectively removing the need for the {{Period}} construct. This will 
> also improve apply to the local metadata log used at startup.  



--
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-19477) Do not go to disk to get HintsStore.getTotalFileSize

2024-03-22 Thread Stefan Miklosovic (Jira)


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

Stefan Miklosovic commented on CASSANDRA-19477:
---

[CASSANDRA-19477-4.1|https://github.com/instaclustr/cassandra/tree/CASSANDRA-19477-4.1]
{noformat}
java11_pre-commit_tests 
  ✓ j11_build1m 30s
  ✓ j11_cqlsh_dtests_py3 5m 28s
  ✓ j11_cqlsh_dtests_py311   5m 47s
  ✓ j11_cqlsh_dtests_py311_vnode  6m 4s
  ✓ j11_cqlsh_dtests_py385m 53s
  ✓ j11_cqlsh_dtests_py38_vnode   6m 2s
  ✓ j11_cqlsh_dtests_py3_vnode   5m 53s
  ✓ j11_cqlshlib_cython_tests 9m 1s
  ✓ j11_cqlshlib_tests8m 6s
  ✓ j11_dtests  33m 38s
  ✓ j11_dtests_vnode 36m 1s
  ✓ j11_jvm_dtests  15m 44s
  ✓ j11_jvm_dtests_repeat   38m 12s
  ✓ j11_jvm_dtests_vnode12m 39s
  ✓ j11_jvm_dtests_vnode_repeat 38m 46s
  ✓ j11_unit_tests_repeat0m 32s
  ✕ j11_unit_tests   8m 33s
  org.apache.cassandra.cql3.MemtableSizeTest testSize[skiplist]
{noformat}

[java11_pre-commit_tests|https://app.circleci.com/pipelines/github/instaclustr/cassandra/4064/workflows/88c6d9da-308c-43a7-849b-a2b1a6b30307]


> Do not go to disk to get HintsStore.getTotalFileSize
> 
>
> Key: CASSANDRA-19477
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19477
> Project: Cassandra
>  Issue Type: Bug
>  Components: Consistency/Hints
>Reporter: Jon Haddad
>Assignee: Stefan Miklosovic
>Priority: Normal
> Fix For: 4.1.x, 5.0-rc, 5.x
>
> Attachments: flamegraph.cpu.html
>
>  Time Spent: 4h 10m
>  Remaining Estimate: 0h
>
> When testing a cluster with more requests than it could handle, I noticed 
> significant CPU time (25%) spent in HintsStore.getTotalFileSize.  Here's what 
> I'm seeing from profiling:
> 10% of CPU time spent in HintsDescriptor.fileName which only does this:
>  
> {noformat}
> return String.format("%s-%s-%s.hints", hostId, timestamp, version);{noformat}
> At a bare minimum here we should create this string up front with the host 
> and version and eliminate 2 of the 3 substitutions, but I think it's probably 
> faster to use a StringBuilder and avoid the underlying regular expression 
> altogether.
> 12% of the time is spent in org.apache.cassandra.io.util.File.length.  It 
> looks like this is called once for each hint file on disk for each host we're 
> hinting to.  In the case of an overloaded cluster, this is significant.  It 
> would be better if we were to track the file size in memory for each hint 
> file and reference that rather than go to the filesystem.
> These fairly small changes should make Cassandra more reliable when under 
> load spikes.
> CPU Flame graph attached.
> I only tested this in 4.1 but it looks like this is present up to trunk.
>  



--
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-19482) Simplify metadata log implementation using custom partitioner

2024-03-22 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-19482:

Attachment: ci_summary.html
result_details.tar.gz

> Simplify metadata log implementation using custom partitioner
> -
>
> Key: CASSANDRA-19482
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19482
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Transactional Cluster Metadata
>Reporter: Sam Tunnicliffe
>Assignee: Sam Tunnicliffe
>Priority: Normal
> Fix For: 5.x
>
> Attachments: ci_summary.html, result_details.tar.gz
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> The distributed metadata log table can be simplified by leveraging the fact 
> that replicas are all responsible for the entire token range. Given this 
> assumption, we can then use {{ReversedLongLocalPartitioner}} introduced in 
> CASSANDRA-19391 to make it much easier to append to/read from the tail of the 
> log, effectively removing the need for the {{Period}} construct. This will 
> also improve apply to the local metadata log used at startup.  



--
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-19344) Range movements involving transient replicas must safely enact changes to read and write replica sets

2024-03-22 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-19344:

Summary: Range movements involving transient replicas must safely enact 
changes to read and write replica sets  (was: Test Failure: 
org.apache.cassandra.distributed.test.TransientRangeMovementTest.testRemoveNode-_jdk17)

> Range movements involving transient replicas must safely enact changes to 
> read and write replica sets
> -
>
> Key: CASSANDRA-19344
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19344
> Project: Cassandra
>  Issue Type: Bug
>  Components: CI
>Reporter: Ekaterina Dimitrova
>Assignee: Sam Tunnicliffe
>Priority: Normal
> Fix For: 5.x
>
> Attachments: ci_summary.html, result_details.tar.gz
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> The test can fail in two different ways:
> {code:java}
> junit.framework.AssertionFailedError: NOT IN CURRENT: 31 -- [(00,20), 
> (31,50)] at 
> org.apache.cassandra.distributed.test.TransientRangeMovementTest.assertAllContained(TransientRangeMovementTest.java:203)
>  at 
> org.apache.cassandra.distributed.test.TransientRangeMovementTest.testRemoveNode(TransientRangeMovementTest.java:183)
>  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 
> Method) at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
>  at 
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43){code}
> as in here - 
> [https://app.circleci.com/pipelines/github/ekaterinadimitrova2/cassandra/2639/workflows/32b92ce7-5e9d-4efb-8362-d200d2414597/jobs/55139/tests#failed-test-0]
> and
> {code:java}
> junit.framework.AssertionFailedError: nodetool command [removenode, 
> 6d194555-f6eb-41d0-c000-0003, --force] was not successful stdout: 
> stderr: error: Node /127.0.0.4:7012 is alive and owns this ID. Use 
> decommission command to remove it from the ring -- StackTrace -- 
> java.lang.UnsupportedOperationException: Node /127.0.0.4:7012 is alive and 
> owns this ID. Use decommission command to remove it from the ring at 
> org.apache.cassandra.tcm.sequences.SingleNodeSequences.removeNode(SingleNodeSequences.java:110)
>  at 
> org.apache.cassandra.service.StorageService.removeNode(StorageService.java:3682)
>  at org.apache.cassandra.tools.NodeProbe.removeNode(NodeProbe.java:1020) at 
> org.apache.cassandra.tools.nodetool.RemoveNode.execute(RemoveNode.java:51) at 
> org.apache.cassandra.tools.NodeTool$NodeToolCmd.runInternal(NodeTool.java:388)
>  at org.apache.cassandra.tools.NodeTool$NodeToolCmd.run(NodeTool.java:373) at 
> org.apache.cassandra.tools.NodeTool.execute(NodeTool.java:272) at 
> org.apache.cassandra.distributed.impl.Instance$DTestNodeTool.execute(Instance.java:1129)
>  at 
> org.apache.cassandra.distributed.impl.Instance.lambda$nodetoolResult$51(Instance.java:1038)
>  at org.apache.cassandra.concurrent.FutureTask.call(FutureTask.java:61) at 
> org.apache.cassandra.concurrent.FutureTask.run(FutureTask.java:71) at 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
>  at 
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
>  at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
>  at java.base/java.lang.Thread.run(Thread.java:833) Notifications: Error: 
> java.lang.UnsupportedOperationException: Node /127.0.0.4:7012 is alive and 
> owns this ID. Use decommission command to remove it from the ring at 
> org.apache.cassandra.tcm.sequences.SingleNodeSequences.removeNode(SingleNodeSequences.java:110)
>  at 
> org.apache.cassandra.service.StorageService.removeNode(StorageService.java:3682)
>  at org.apache.cassandra.tools.NodeProbe.removeNode(NodeProbe.java:1020) at 
> org.apache.cassandra.tools.nodetool.RemoveNode.execute(RemoveNode.java:51) at 
> org.apache.cassandra.tools.NodeTool$NodeToolCmd.runInternal(NodeTool.java:388)
>  at org.apache.cassandra.tools.NodeTool$NodeToolCmd.run(NodeTool.java:373) at 
> org.apache.cassandra.tools.NodeTool.execute(NodeTool.java:272) at 
> org.apache.cassandra.distributed.impl.Instance$DTestNodeTool.execute(Instance.java:1129)
>  at 
> org.apache.cassandra.distributed.impl.Instance.lambda$nodetoolResult$51(Instance.java:1038)
>  at org.apache.cassandra.concurrent.FutureTask.call(FutureTask.java:61) at 
> org.apache.cassandra.concurrent.FutureTask.run(FutureTask.java:71) at 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
>  at 
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:63

[jira] [Updated] (CASSANDRA-19344) Range movements involving transient replicas must safely enact changes to read and write replica sets

2024-03-22 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-19344:

Description: 
(edit) This was originally opened due to a flaky test 
{{org.apache.cassandra.distributed.test.TransientRangeMovementTest.testRemoveNode-_jdk17}}

The test can fail in two different ways:
{code:java}
junit.framework.AssertionFailedError: NOT IN CURRENT: 31 -- [(00,20), (31,50)] 
at 
org.apache.cassandra.distributed.test.TransientRangeMovementTest.assertAllContained(TransientRangeMovementTest.java:203)
 at 
org.apache.cassandra.distributed.test.TransientRangeMovementTest.testRemoveNode(TransientRangeMovementTest.java:183)
 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 
Method) at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
 at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43){code}
as in here - 
[https://app.circleci.com/pipelines/github/ekaterinadimitrova2/cassandra/2639/workflows/32b92ce7-5e9d-4efb-8362-d200d2414597/jobs/55139/tests#failed-test-0]
and
{code:java}
junit.framework.AssertionFailedError: nodetool command [removenode, 
6d194555-f6eb-41d0-c000-0003, --force] was not successful stdout: 
stderr: error: Node /127.0.0.4:7012 is alive and owns this ID. Use decommission 
command to remove it from the ring -- StackTrace -- 
java.lang.UnsupportedOperationException: Node /127.0.0.4:7012 is alive and owns 
this ID. Use decommission command to remove it from the ring at 
org.apache.cassandra.tcm.sequences.SingleNodeSequences.removeNode(SingleNodeSequences.java:110)
 at 
org.apache.cassandra.service.StorageService.removeNode(StorageService.java:3682)
 at org.apache.cassandra.tools.NodeProbe.removeNode(NodeProbe.java:1020) at 
org.apache.cassandra.tools.nodetool.RemoveNode.execute(RemoveNode.java:51) at 
org.apache.cassandra.tools.NodeTool$NodeToolCmd.runInternal(NodeTool.java:388) 
at org.apache.cassandra.tools.NodeTool$NodeToolCmd.run(NodeTool.java:373) at 
org.apache.cassandra.tools.NodeTool.execute(NodeTool.java:272) at 
org.apache.cassandra.distributed.impl.Instance$DTestNodeTool.execute(Instance.java:1129)
 at 
org.apache.cassandra.distributed.impl.Instance.lambda$nodetoolResult$51(Instance.java:1038)
 at org.apache.cassandra.concurrent.FutureTask.call(FutureTask.java:61) at 
org.apache.cassandra.concurrent.FutureTask.run(FutureTask.java:71) at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
 at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
 at 
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
 at java.base/java.lang.Thread.run(Thread.java:833) Notifications: Error: 
java.lang.UnsupportedOperationException: Node /127.0.0.4:7012 is alive and owns 
this ID. Use decommission command to remove it from the ring at 
org.apache.cassandra.tcm.sequences.SingleNodeSequences.removeNode(SingleNodeSequences.java:110)
 at 
org.apache.cassandra.service.StorageService.removeNode(StorageService.java:3682)
 at org.apache.cassandra.tools.NodeProbe.removeNode(NodeProbe.java:1020) at 
org.apache.cassandra.tools.nodetool.RemoveNode.execute(RemoveNode.java:51) at 
org.apache.cassandra.tools.NodeTool$NodeToolCmd.runInternal(NodeTool.java:388) 
at org.apache.cassandra.tools.NodeTool$NodeToolCmd.run(NodeTool.java:373) at 
org.apache.cassandra.tools.NodeTool.execute(NodeTool.java:272) at 
org.apache.cassandra.distributed.impl.Instance$DTestNodeTool.execute(Instance.java:1129)
 at 
org.apache.cassandra.distributed.impl.Instance.lambda$nodetoolResult$51(Instance.java:1038)
 at org.apache.cassandra.concurrent.FutureTask.call(FutureTask.java:61) at 
org.apache.cassandra.concurrent.FutureTask.run(FutureTask.java:71) at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
 at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
 at 
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
 at java.base/java.lang.Thread.run(Thread.java:833) at 
org.apache.cassandra.distributed.api.NodeToolResult$Asserts.fail(NodeToolResult.java:214)
 at 
org.apache.cassandra.distributed.api.NodeToolResult$Asserts.success(NodeToolResult.java:97)
 at 
org.apache.cassandra.distributed.test.TransientRangeMovementTest.testRemoveNode(TransientRangeMovementTest.java:173)
 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 
Method) at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
 at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43){code}
as in here - 
[https://app.circleci.com/pipelines/github/ekaterinadimitrova2/cassandra/2634/wor

[jira] [Commented] (CASSANDRA-19344) Range movements involving transient replicas must safely enact changes to read and write replica sets

2024-03-22 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe commented on CASSANDRA-19344:
-

The linked PR modifies a number existing tests to make the original failure 
mode deterministic. It also adds support for transient replication to  
{{PlacementSimulator}}  {{MetadataChangeSimulationTest}} and the associated 
{{{}TokenPlacementModel{}}}. Finally, it modifies the way the 
{{PlacementTransitionPlan}} is prepared for operations involving range 
movements to ensure that any transition from a transient to full replica 
happens safely.

> Range movements involving transient replicas must safely enact changes to 
> read and write replica sets
> -
>
> Key: CASSANDRA-19344
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19344
> Project: Cassandra
>  Issue Type: Bug
>  Components: CI
>Reporter: Ekaterina Dimitrova
>Assignee: Sam Tunnicliffe
>Priority: Normal
> Fix For: 5.x
>
> Attachments: ci_summary.html, result_details.tar.gz
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> (edit) This was originally opened due to a flaky test 
> {{org.apache.cassandra.distributed.test.TransientRangeMovementTest.testRemoveNode-_jdk17}}
> The test can fail in two different ways:
> {code:java}
> junit.framework.AssertionFailedError: NOT IN CURRENT: 31 -- [(00,20), 
> (31,50)] at 
> org.apache.cassandra.distributed.test.TransientRangeMovementTest.assertAllContained(TransientRangeMovementTest.java:203)
>  at 
> org.apache.cassandra.distributed.test.TransientRangeMovementTest.testRemoveNode(TransientRangeMovementTest.java:183)
>  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 
> Method) at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
>  at 
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43){code}
> as in here - 
> [https://app.circleci.com/pipelines/github/ekaterinadimitrova2/cassandra/2639/workflows/32b92ce7-5e9d-4efb-8362-d200d2414597/jobs/55139/tests#failed-test-0]
> and
> {code:java}
> junit.framework.AssertionFailedError: nodetool command [removenode, 
> 6d194555-f6eb-41d0-c000-0003, --force] was not successful stdout: 
> stderr: error: Node /127.0.0.4:7012 is alive and owns this ID. Use 
> decommission command to remove it from the ring -- StackTrace -- 
> java.lang.UnsupportedOperationException: Node /127.0.0.4:7012 is alive and 
> owns this ID. Use decommission command to remove it from the ring at 
> org.apache.cassandra.tcm.sequences.SingleNodeSequences.removeNode(SingleNodeSequences.java:110)
>  at 
> org.apache.cassandra.service.StorageService.removeNode(StorageService.java:3682)
>  at org.apache.cassandra.tools.NodeProbe.removeNode(NodeProbe.java:1020) at 
> org.apache.cassandra.tools.nodetool.RemoveNode.execute(RemoveNode.java:51) at 
> org.apache.cassandra.tools.NodeTool$NodeToolCmd.runInternal(NodeTool.java:388)
>  at org.apache.cassandra.tools.NodeTool$NodeToolCmd.run(NodeTool.java:373) at 
> org.apache.cassandra.tools.NodeTool.execute(NodeTool.java:272) at 
> org.apache.cassandra.distributed.impl.Instance$DTestNodeTool.execute(Instance.java:1129)
>  at 
> org.apache.cassandra.distributed.impl.Instance.lambda$nodetoolResult$51(Instance.java:1038)
>  at org.apache.cassandra.concurrent.FutureTask.call(FutureTask.java:61) at 
> org.apache.cassandra.concurrent.FutureTask.run(FutureTask.java:71) at 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
>  at 
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
>  at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
>  at java.base/java.lang.Thread.run(Thread.java:833) Notifications: Error: 
> java.lang.UnsupportedOperationException: Node /127.0.0.4:7012 is alive and 
> owns this ID. Use decommission command to remove it from the ring at 
> org.apache.cassandra.tcm.sequences.SingleNodeSequences.removeNode(SingleNodeSequences.java:110)
>  at 
> org.apache.cassandra.service.StorageService.removeNode(StorageService.java:3682)
>  at org.apache.cassandra.tools.NodeProbe.removeNode(NodeProbe.java:1020) at 
> org.apache.cassandra.tools.nodetool.RemoveNode.execute(RemoveNode.java:51) at 
> org.apache.cassandra.tools.NodeTool$NodeToolCmd.runInternal(NodeTool.java:388)
>  at org.apache.cassandra.tools.NodeTool$NodeToolCmd.run(NodeTool.java:373) at 
> org.apache.cassandra.tools.NodeTool.execute(NodeTool.java:272) at 
> org.apache.cassandra.distributed.impl.Instance$DTestNodeTool.execute(Instance.java:1129)
>  at 

[jira] [Commented] (CASSANDRA-19193) Reimplement ClusterMetadata::writePlacementAllSettled

2024-03-22 Thread Marcus Eriksson (Jira)


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

Marcus Eriksson commented on CASSANDRA-19193:
-

pushed a test

> Reimplement ClusterMetadata::writePlacementAllSettled
> -
>
> Key: CASSANDRA-19193
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19193
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Transactional Cluster Metadata
>Reporter: Marcus Eriksson
>Assignee: Marcus Eriksson
>Priority: Normal
> Fix For: 5.1-alpha1
>
> Attachments: ci_summary.html, result_details.tar.gz
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> This should step through InProgressSequences to determine state when 
> finished, rather than emulating the logic inline.



--
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-19191) Optimisations to PlacementForRange, improve lookup on r/w path

2024-03-22 Thread Marcus Eriksson (Jira)


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

Marcus Eriksson updated CASSANDRA-19191:

Change Category: Performance
 Complexity: Normal
  Reviewers: Alex Petrov, Sam Tunnicliffe
 Status: Open  (was: Triage Needed)

> Optimisations to PlacementForRange, improve lookup on r/w path
> --
>
> Key: CASSANDRA-19191
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19191
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Transactional Cluster Metadata
>Reporter: Marcus Eriksson
>Assignee: Marcus Eriksson
>Priority: Normal
> Fix For: 5.1-alpha1
>
>
> The lookup used when selecting the appropriate replica group for a range or 
> token while peforming reads and writes is extremely simplistic and 
> inefficient. There is plenty of scope to improve {{PlacementsForRange}} to by 
> replacing the current naive iteration with use a more efficient lookup.



--
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-19191) Optimisations to PlacementForRange, improve lookup on r/w path

2024-03-22 Thread Marcus Eriksson (Jira)


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

Marcus Eriksson updated CASSANDRA-19191:

Test and Documentation Plan: ci run, existing tests
 Status: Patch Available  (was: Open)

> Optimisations to PlacementForRange, improve lookup on r/w path
> --
>
> Key: CASSANDRA-19191
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19191
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Transactional Cluster Metadata
>Reporter: Marcus Eriksson
>Assignee: Marcus Eriksson
>Priority: Normal
> Fix For: 5.1-alpha1
>
> Attachments: ci_summary.html, result_details.tar.gz
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> The lookup used when selecting the appropriate replica group for a range or 
> token while peforming reads and writes is extremely simplistic and 
> inefficient. There is plenty of scope to improve {{PlacementsForRange}} to by 
> replacing the current naive iteration with use a more efficient lookup.



--
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-19191) Optimisations to PlacementForRange, improve lookup on r/w path

2024-03-22 Thread Marcus Eriksson (Jira)


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

Marcus Eriksson updated CASSANDRA-19191:

Attachment: ci_summary.html
result_details.tar.gz

> Optimisations to PlacementForRange, improve lookup on r/w path
> --
>
> Key: CASSANDRA-19191
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19191
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Transactional Cluster Metadata
>Reporter: Marcus Eriksson
>Assignee: Marcus Eriksson
>Priority: Normal
> Fix For: 5.1-alpha1
>
> Attachments: ci_summary.html, result_details.tar.gz
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> The lookup used when selecting the appropriate replica group for a range or 
> token while peforming reads and writes is extremely simplistic and 
> inefficient. There is plenty of scope to improve {{PlacementsForRange}} to by 
> replacing the current naive iteration with use a more efficient lookup.



--
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-19471) Commitlog with direct io fails test_change_durable_writes

2024-03-22 Thread Branimir Lambov (Jira)


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

Branimir Lambov commented on CASSANDRA-19471:
-

They are only for the IAE, which is a a serious issue and IMHO a blocker for 
5.0.

I have not investigated the commitlog being written with durable writes off 
which is a much more benign issue. It is likely caused by the preparation of 
the direct I/O segments writing and flushing the header and first sync marker 
in advance of any use of the segment.

> Commitlog with direct io fails test_change_durable_writes
> -
>
> Key: CASSANDRA-19471
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19471
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Commit Log
>Reporter: Brandon Williams
>Assignee: Brandon Williams
>Priority: Normal
> Fix For: 5.0-rc, 5.x
>
>
> With the commitlog_disk_access_mode set to direct, and the improved 
> configuration_test.py::TestConfiguration::test_change_durable_writes from 
> CASSANDRA-19465, this fails with either:
> {noformat}
>  AssertionError: Commitlog was written with durable writes disabled
> {noformat}
> Or what appears to be the original exception reported in CASSANDRA-19465:
> {noformat}
>   node1: ERROR [PERIODIC-COMMIT-LOG-SYNCER] 2024-03-14 17:16:08,465 
> StorageService.java:631 - Stopping native transport
>   node1: ERROR [MutationStage-5] 2024-03-14 17:16:08,465 
> StorageProxy.java:1670 - Failed to apply mutation locally :
>   java.lang.IllegalArgumentException: newPosition > limit: (1048634 > 1048576)
> at java.base/java.nio.Buffer.createPositionException(Buffer.java:341)
> at java.base/java.nio.Buffer.position(Buffer.java:316)
> at java.base/java.nio.ByteBuffer.position(ByteBuffer.java:1516)
> at 
> java.base/java.nio.MappedByteBuffer.position(MappedByteBuffer.java:321)
> at 
> java.base/java.nio.MappedByteBuffer.position(MappedByteBuffer.java:73)
> at 
> org.apache.cassandra.db.commitlog.CommitLogSegment.allocate(CommitLogSegment.java:216)
> at 
> org.apache.cassandra.db.commitlog.CommitLogSegmentManagerStandard.allocate(CommitLogSegmentManagerStandard.java:52)
> at org.apache.cassandra.db.commitlog.CommitLog.add(CommitLog.java:307)
> at 
> org.apache.cassandra.db.CassandraKeyspaceWriteHandler.addToCommitLog(CassandraKeyspaceWriteHandler.java:99)
> at 
> org.apache.cassandra.db.CassandraKeyspaceWriteHandler.beginWrite(CassandraKeyspaceWriteHandler.java:53)
> at org.apache.cassandra.db.Keyspace.applyInternal(Keyspace.java:612)
> at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:497)
> at org.apache.cassandra.db.Mutation.apply(Mutation.java:244)
> at org.apache.cassandra.db.Mutation.apply(Mutation.java:264)
> at 
> org.apache.cassandra.service.StorageProxy$4.runMayThrow(StorageProxy.java:1664)
> at 
> org.apache.cassandra.service.StorageProxy$LocalMutationRunnable.run(StorageProxy.java:2624)
> at 
> org.apache.cassandra.concurrent.ExecutionFailure$2.run(ExecutionFailure.java:163)
> at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:143)
> at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
> at java.base/java.lang.Thread.run(Thread.java:833)
>   node1: ERROR [PERIODIC-COMMIT-LOG-SYNCER] 2024-03-14 17:16:08,470 
> StorageService.java:636 - Stopping gossiper
> {noformat}



--
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-19255) StorageService.getRangeToEndpointMap() MBean operation is running into NPE for LocalStrategy keysapces

2024-03-22 Thread n.v.harikrishna (Jira)


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

n.v.harikrishna updated CASSANDRA-19255:

Attachment: result_details.tar.gz

> StorageService.getRangeToEndpointMap() MBean operation is running into NPE 
> for LocalStrategy keysapces
> --
>
> Key: CASSANDRA-19255
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19255
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Membership
>Reporter: n.v.harikrishna
>Assignee: n.v.harikrishna
>Priority: Normal
> Attachments: ci_summary.html, result_details.tar.gz
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> When the StorageService's MBean operation getRangeToEndpointMap is called for 
> LocalStrategy keyspaces, then it is running into NPE. It is working in 
> earlier major version, but failing in trunk. It can be reproduced in local 
> using JConsole or using a tool like `jmxterm` (unfortunately these tools are 
> not giving full stacktrace). Observed the same behavior with 
> getRangeToEndpointWithPortMap operation too.



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

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



[jira] [Updated] (CASSANDRA-19255) StorageService.getRangeToEndpointMap() MBean operation is running into NPE for LocalStrategy keysapces

2024-03-22 Thread n.v.harikrishna (Jira)


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

n.v.harikrishna updated CASSANDRA-19255:

Attachment: ci_summary.html

> StorageService.getRangeToEndpointMap() MBean operation is running into NPE 
> for LocalStrategy keysapces
> --
>
> Key: CASSANDRA-19255
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19255
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Membership
>Reporter: n.v.harikrishna
>Assignee: n.v.harikrishna
>Priority: Normal
> Attachments: ci_summary.html, result_details.tar.gz
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> When the StorageService's MBean operation getRangeToEndpointMap is called for 
> LocalStrategy keyspaces, then it is running into NPE. It is working in 
> earlier major version, but failing in trunk. It can be reproduced in local 
> using JConsole or using a tool like `jmxterm` (unfortunately these tools are 
> not giving full stacktrace). Observed the same behavior with 
> getRangeToEndpointWithPortMap operation too.



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

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



[jira] [Updated] (CASSANDRA-19255) StorageService.getRangeToEndpointMap() MBean operation is running into NPE for LocalStrategy keysapces

2024-03-22 Thread n.v.harikrishna (Jira)


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

n.v.harikrishna updated CASSANDRA-19255:

Test and Documentation Plan: Verified in local and ran tests.
 Status: Patch Available  (was: Open)

Uploaded the test results.

[PR|http://example.com|https://github.com/apache/cassandra/pull/3141]

> StorageService.getRangeToEndpointMap() MBean operation is running into NPE 
> for LocalStrategy keysapces
> --
>
> Key: CASSANDRA-19255
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19255
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Membership
>Reporter: n.v.harikrishna
>Assignee: n.v.harikrishna
>Priority: Normal
> Attachments: ci_summary.html, result_details.tar.gz
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> When the StorageService's MBean operation getRangeToEndpointMap is called for 
> LocalStrategy keyspaces, then it is running into NPE. It is working in 
> earlier major version, but failing in trunk. It can be reproduced in local 
> using JConsole or using a tool like `jmxterm` (unfortunately these tools are 
> not giving full stacktrace). Observed the same behavior with 
> getRangeToEndpointWithPortMap operation too.



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

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



[jira] [Commented] (CASSANDRA-19255) StorageService.getRangeToEndpointMap() MBean operation is running into NPE for LocalStrategy keysapces

2024-03-22 Thread Marcus Eriksson (Jira)


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

Marcus Eriksson commented on CASSANDRA-19255:
-

+1

> StorageService.getRangeToEndpointMap() MBean operation is running into NPE 
> for LocalStrategy keysapces
> --
>
> Key: CASSANDRA-19255
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19255
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Membership
>Reporter: n.v.harikrishna
>Assignee: n.v.harikrishna
>Priority: Normal
> Attachments: ci_summary.html, result_details.tar.gz
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> When the StorageService's MBean operation getRangeToEndpointMap is called for 
> LocalStrategy keyspaces, then it is running into NPE. It is working in 
> earlier major version, but failing in trunk. It can be reproduced in local 
> using JConsole or using a tool like `jmxterm` (unfortunately these tools are 
> not giving full stacktrace). Observed the same behavior with 
> getRangeToEndpointWithPortMap operation too.



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

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



(cassandra) branch trunk updated: Fix getRangeTo* operations of StorageService mbean for local strategy keyspaces

2024-03-22 Thread samt
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/trunk by this push:
 new a69c8657d7 Fix getRangeTo* operations of StorageService mbean for 
local strategy keyspaces
a69c8657d7 is described below

commit a69c8657d75de627fb1fe518bfe1d657add11740
Author: nvharikrishna 
AuthorDate: Tue Feb 27 17:25:30 2024 +0530

Fix getRangeTo* operations of StorageService mbean for local strategy 
keyspaces

Patch by Venkata Harikrishna Nukala; reviewed by Marcus Eriksson and Sam
Tunnicliffe for CASSANDRA-19255
---
 CHANGES.txt|  1 +
 .../apache/cassandra/service/StorageService.java   | 21 --
 .../test/jmx/StorageServiceJmxTest.java| 76 ++
 3 files changed, 93 insertions(+), 5 deletions(-)

diff --git a/CHANGES.txt b/CHANGES.txt
index 98c4245a93..7a63df43cc 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 5.1
+ * Fix StorageService::constructRangeToEndpointMap for non-distributed 
keyspaces (CASSANDRA-19255)
  * Group nodetool cms commands into single command group (CASSANDRA-19393)
  * Register the measurements of the bootstrap process as Dropwizard metrics 
(CASSANDRA-19447)
  * Add LIST SUPERUSERS CQL statement (CASSANDRA-19417)
diff --git a/src/java/org/apache/cassandra/service/StorageService.java 
b/src/java/org/apache/cassandra/service/StorageService.java
index 8a8e7812e3..36dabcd807 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -1967,13 +1967,24 @@ public class StorageService extends 
NotificationBroadcasterSupport implements IE
 {
 ClusterMetadata metadata = ClusterMetadata.current();
 KeyspaceMetadata keyspaceMetadata = 
metadata.schema.getKeyspaces().getNullable(keyspace);
-TokenMap tokenMap = metadata.tokenMap;
-
 Map, EndpointsForRange> rangeToEndpointMap = new 
HashMap<>(ranges.size());
-for (Range range : ranges)
+if (null != keyspaceMetadata)
+{
+TokenMap tokenMap = metadata.tokenMap;
+
+for (Range range : ranges)
+{
+Token token = tokenMap.nextToken(tokenMap.tokens(), 
range.right.getToken());
+rangeToEndpointMap.put(range, 
metadata.placements.get(keyspaceMetadata.params.replication)
+  .reads.forRange(token).get());
+}
+}
+else
 {
-Token token = tokenMap.nextToken(tokenMap.tokens(), 
range.right.getToken());
-rangeToEndpointMap.put(range, 
metadata.placements.get(keyspaceMetadata.params.replication).reads.forRange(token).get());
+// Handling the keyspaces which are not handled by CMS like system 
keyspace which uses LocalStrategy.
+AbstractReplicationStrategy strategy = 
Keyspace.open(keyspace).getReplicationStrategy();
+for (Range range : ranges)
+rangeToEndpointMap.put(range, 
strategy.calculateNaturalReplicas(range.right, metadata));
 }
 
 return new EndpointsByRange(rangeToEndpointMap);
diff --git 
a/test/distributed/org/apache/cassandra/distributed/test/jmx/StorageServiceJmxTest.java
 
b/test/distributed/org/apache/cassandra/distributed/test/jmx/StorageServiceJmxTest.java
new file mode 100644
index 00..a25260b713
--- /dev/null
+++ 
b/test/distributed/org/apache/cassandra/distributed/test/jmx/StorageServiceJmxTest.java
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.cassandra.distributed.test.jmx;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.List;
+import javax.management.InstanceNotFoundException;
+import javax.management.MBeanException;
+import javax.management.MBeanServerConnection;
+import javax.management.MalformedObjectNameException;
+import javax.management.ObjectName;
+import javax.management.ReflectionException;
+import javax.management.remote.JMXConnector;
+
+import org.junit.Test;
+
+import org.ap

[jira] [Updated] (CASSANDRA-19255) StorageService.getRangeToEndpointMap() MBean operation is running into NPE for LocalStrategy keysapces

2024-03-22 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-19255:

Status: Review In Progress  (was: Needs Committer)

> StorageService.getRangeToEndpointMap() MBean operation is running into NPE 
> for LocalStrategy keysapces
> --
>
> Key: CASSANDRA-19255
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19255
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Membership
>Reporter: n.v.harikrishna
>Assignee: n.v.harikrishna
>Priority: Normal
> Attachments: ci_summary.html, result_details.tar.gz
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> When the StorageService's MBean operation getRangeToEndpointMap is called for 
> LocalStrategy keyspaces, then it is running into NPE. It is working in 
> earlier major version, but failing in trunk. It can be reproduced in local 
> using JConsole or using a tool like `jmxterm` (unfortunately these tools are 
> not giving full stacktrace). Observed the same behavior with 
> getRangeToEndpointWithPortMap operation too.



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

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



[jira] [Updated] (CASSANDRA-19255) StorageService.getRangeToEndpointMap() MBean operation is running into NPE for LocalStrategy keysapces

2024-03-22 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-19255:

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

> StorageService.getRangeToEndpointMap() MBean operation is running into NPE 
> for LocalStrategy keysapces
> --
>
> Key: CASSANDRA-19255
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19255
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Membership
>Reporter: n.v.harikrishna
>Assignee: n.v.harikrishna
>Priority: Normal
> Attachments: ci_summary.html, result_details.tar.gz
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> When the StorageService's MBean operation getRangeToEndpointMap is called for 
> LocalStrategy keyspaces, then it is running into NPE. It is working in 
> earlier major version, but failing in trunk. It can be reproduced in local 
> using JConsole or using a tool like `jmxterm` (unfortunately these tools are 
> not giving full stacktrace). Observed the same behavior with 
> getRangeToEndpointWithPortMap operation too.



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

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



[jira] [Updated] (CASSANDRA-19255) StorageService.getRangeToEndpointMap() MBean operation is running into NPE for LocalStrategy keysapces

2024-03-22 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-19255:

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

LGTM too, committed as {{a69c8657d75de627fb1fe518bfe1d657add11740}} (with a 
couple of extremely minor changes).
One thing to note is that this will need slight readjustment if CASSANDRA-19482 
is committed as the way we handle the {{MetaStrategy}} keyspace is changed. 
The attached diff will fix that if/when necessary.


> StorageService.getRangeToEndpointMap() MBean operation is running into NPE 
> for LocalStrategy keysapces
> --
>
> Key: CASSANDRA-19255
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19255
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Membership
>Reporter: n.v.harikrishna
>Assignee: n.v.harikrishna
>Priority: Normal
> Fix For: 5.x
>
> Attachments: ci_summary.html, result_details.tar.gz
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> When the StorageService's MBean operation getRangeToEndpointMap is called for 
> LocalStrategy keyspaces, then it is running into NPE. It is working in 
> earlier major version, but failing in trunk. It can be reproduced in local 
> using JConsole or using a tool like `jmxterm` (unfortunately these tools are 
> not giving full stacktrace). Observed the same behavior with 
> getRangeToEndpointWithPortMap operation too.



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

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



[jira] [Updated] (CASSANDRA-19255) StorageService.getRangeToEndpointMap() MBean operation is running into NPE for LocalStrategy keysapces

2024-03-22 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-19255:

Status: Needs Committer  (was: Patch Available)

> StorageService.getRangeToEndpointMap() MBean operation is running into NPE 
> for LocalStrategy keysapces
> --
>
> Key: CASSANDRA-19255
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19255
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Membership
>Reporter: n.v.harikrishna
>Assignee: n.v.harikrishna
>Priority: Normal
> Attachments: ci_summary.html, result_details.tar.gz
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> When the StorageService's MBean operation getRangeToEndpointMap is called for 
> LocalStrategy keyspaces, then it is running into NPE. It is working in 
> earlier major version, but failing in trunk. It can be reproduced in local 
> using JConsole or using a tool like `jmxterm` (unfortunately these tools are 
> not giving full stacktrace). Observed the same behavior with 
> getRangeToEndpointWithPortMap operation too.



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

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



[jira] [Updated] (CASSANDRA-19255) StorageService.getRangeToEndpointMap() MBean operation is running into NPE for LocalStrategy keysapces

2024-03-22 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-19255:

Attachment: 19482_patch_for_19255.diff

> StorageService.getRangeToEndpointMap() MBean operation is running into NPE 
> for LocalStrategy keysapces
> --
>
> Key: CASSANDRA-19255
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19255
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Membership
>Reporter: n.v.harikrishna
>Assignee: n.v.harikrishna
>Priority: Normal
> Fix For: 5.x
>
> Attachments: 19482_patch_for_19255.diff, ci_summary.html, 
> result_details.tar.gz
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> When the StorageService's MBean operation getRangeToEndpointMap is called for 
> LocalStrategy keyspaces, then it is running into NPE. It is working in 
> earlier major version, but failing in trunk. It can be reproduced in local 
> using JConsole or using a tool like `jmxterm` (unfortunately these tools are 
> not giving full stacktrace). Observed the same behavior with 
> getRangeToEndpointWithPortMap operation too.



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

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



[jira] [Commented] (CASSANDRA-19255) StorageService.getRangeToEndpointMap() MBean operation is running into NPE for LocalStrategy keysapces

2024-03-22 Thread n.v.harikrishna (Jira)


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

n.v.harikrishna commented on CASSANDRA-19255:
-

Thanks [~marcuse] & [~samt] !

> StorageService.getRangeToEndpointMap() MBean operation is running into NPE 
> for LocalStrategy keysapces
> --
>
> Key: CASSANDRA-19255
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19255
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Membership
>Reporter: n.v.harikrishna
>Assignee: n.v.harikrishna
>Priority: Normal
> Fix For: 5.x
>
> Attachments: 19482_patch_for_19255.diff, ci_summary.html, 
> result_details.tar.gz
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> When the StorageService's MBean operation getRangeToEndpointMap is called for 
> LocalStrategy keyspaces, then it is running into NPE. It is working in 
> earlier major version, but failing in trunk. It can be reproduced in local 
> using JConsole or using a tool like `jmxterm` (unfortunately these tools are 
> not giving full stacktrace). Observed the same behavior with 
> getRangeToEndpointWithPortMap operation too.



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

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



[jira] [Updated] (CASSANDRA-19341) Relation and Restriction hierachies are too complex and error prone

2024-03-22 Thread Benjamin Lerer (Jira)


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

Benjamin Lerer updated CASSANDRA-19341:
---
Test and Documentation Plan: The patch adds new tests for some of the new 
classes and relies on existing tests to validate the changes.
 Status: Patch Available  (was: Open)

CI results: 
[J11|https://app.circleci.com/pipelines/github/blerer/cassandra/390/workflows/7c475c9c-9936-4def-9ec5-936859cfcc21],
 
[J17|https://app.circleci.com/pipelines/github/blerer/cassandra/390/workflows/2655f762-5fba-45ef-946e-5db7637873a4]

DTests changes: https://github.com/apache/cassandra-dtest/pull/259

> Relation and Restriction hierachies are too complex and error prone
> ---
>
> Key: CASSANDRA-19341
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19341
> Project: Cassandra
>  Issue Type: Improvement
>  Components: CQL/Interpreter
>Reporter: Benjamin Lerer
>Assignee: Benjamin Lerer
>Priority: Normal
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> The {{Relation}} and {{Restriction}} hierarchy have been designed when C* was 
> only supporting a limited amount of operators and columns expressions (single 
> column, multi-column and token expressions). Over time they have grown in 
> complexity making the code harder to understand and modify and error prone. 
> Their design is also resulting in unnecessary limitations that could be 
> easily lifted, like the ability to accept different predicates on the same 
> column.
> Today adding a new operator requires the addition of a lot of glue code and 
> surgical changes accross the CQL layer. Making patch for features such as 
> CASSANDRA-18584 much complex than it should be.
> The goal of this ticket is to simplify the {{Relation}} and {{Restriction}} 
> hierarchies and modify operator  class so that adding new operators requires 
> only changes to the {{Operator}} class and ANTLR file.   



--
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-18762) Repair triggers OOM with direct buffer memory

2024-03-22 Thread Manish Khandelwal (Jira)


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

Manish Khandelwal edited comment on CASSANDRA-18762 at 3/22/24 1:36 PM:


I think reason for getting OOM here is related to same reasoning as mentioned 
in https://issues.apache.org/jira/browse/CASSANDRA-19336 I applied the patch 
for https://issues.apache.org/jira/browse/CASSANDRA-19336 and all full repairs 
with -pr on keyspace were successful.

As without this patch in one repair we can see almost 240 sessions triggered ( 
vnode:256, 11*11 cluster), resulting in 240*6 merkle tree requests for one 
table. For a keywpace with 3 tables this number was astonishing 240*6*3 
resulting in direct byte buffer within a minute of running.

After applying the patch repairs ran without issue also no memory pressue.


was (Author: manmagic3):
I think reason for getting OOM here is related to same reasoning as mentioned 
in https://issues.apache.org/jira/browse/CASSANDRA-19336. I applied the patch 
for https://issues.apache.org/jira/browse/CASSANDRA-19336 and all full repairs 
with -pr on keyspace were successful.

As without this patch in one repair we can see almost 240 sessions triggered ( 
vnode:256, 11*11 cluster), resulting in 240*6 merkle tree requests for one 
table. For a keywpace with 3 tables this number was astonishing 240*6*3 
resulting in direct byte buffer within a minute of running.

After applying the patch repairs ran without issue also no memory pressue.

> Repair triggers OOM with direct buffer memory
> -
>
> Key: CASSANDRA-18762
> URL: https://issues.apache.org/jira/browse/CASSANDRA-18762
> Project: Cassandra
>  Issue Type: Bug
>  Components: Consistency/Repair
>Reporter: Brad Schoening
>Priority: Normal
>  Labels: OutOfMemoryError
> Attachments: Cluster-dm-metrics-1.PNG, 
> image-2023-12-06-15-28-05-459.png, image-2023-12-06-15-29-31-491.png, 
> image-2023-12-06-15-58-55-007.png
>
>
> We are seeing repeated failures of nodes with 16GB of heap on a VM with 32GB 
> of physical RAM due to direct memory.  This seems to be related to 
> CASSANDRA-15202 which moved Merkel trees off-heap in 4.0.   Using Cassandra 
> 4.0.6 with Java 11.
> {noformat}
> 2023-08-09 04:30:57,470 [INFO ] [AntiEntropyStage:1] cluster_id=101 
> ip_address=169.0.0.1 RepairSession.java:202 - [repair 
> #5e55a3b0-366d-11ee-a644-d91df26add5e] Received merkle tree for table_a from 
> /169.102.200.241:7000
> 2023-08-09 04:30:57,567 [INFO ] [AntiEntropyStage:1] cluster_id=101 
> ip_address=169.0.0.1 RepairSession.java:202 - [repair 
> #5e0d2900-366d-11ee-a644-d91df26add5e] Received merkle tree for table_b from 
> /169.93.192.29:7000
> 2023-08-09 04:30:57,568 [INFO ] [AntiEntropyStage:1] cluster_id=101 
> ip_address=169.0.0.1 RepairSession.java:202 - [repair 
> #5e1dcad0-366d-11ee-a644-d91df26add5e] Received merkle tree for table_c from 
> /169.104.171.134:7000
> 2023-08-09 04:30:57,591 [INFO ] [AntiEntropyStage:1] cluster_id=101 
> ip_address=169.0.0.1 RepairSession.java:202 - [repair 
> #5e69a0e0-366d-11ee-a644-d91df26add5e] Received merkle tree for table_b from 
> /169.79.232.67:7000
> 2023-08-09 04:30:57,876 [INFO ] [Service Thread] cluster_id=101 
> ip_address=169.0.0.1 GCInspector.java:294 - G1 Old Generation GC in 282ms. 
> Compressed Class Space: 8444560 -> 8372152; G1 Eden Space: 7809794048 -> 0; 
> G1 Old Gen: 1453478400 -> 820942800; G1 Survivor Space: 419430400 -> 0; 
> Metaspace: 80411136 -> 80176528
> 2023-08-09 04:30:58,387 [ERROR] [AntiEntropyStage:1] cluster_id=101 
> ip_address=169.0.0.1 JVMStabilityInspector.java:102 - OutOfMemory error 
> letting the JVM handle the error:
> java.lang.OutOfMemoryError: Direct buffer memory
> at java.base/java.nio.Bits.reserveMemory(Bits.java:175)
> at java.base/java.nio.DirectByteBuffer.(DirectByteBuffer.java:118)
> at java.base/java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:318)
> at org.apache.cassandra.utils.MerkleTree.allocate(MerkleTree.java:742)
> at 
> org.apache.cassandra.utils.MerkleTree.deserializeOffHeap(MerkleTree.java:780)
> at org.apache.cassandra.utils.MerkleTree.deserializeTree(MerkleTree.java:751)
> at org.apache.cassandra.utils.MerkleTree.deserialize(MerkleTree.java:720)
> at org.apache.cassandra.utils.MerkleTree.deserialize(MerkleTree.java:698)
> at 
> org.apache.cassandra.utils.MerkleTrees$MerkleTreesSerializer.deserialize(MerkleTrees.java:416)
> at 
> org.apache.cassandra.repair.messages.ValidationResponse$1.deserialize(ValidationResponse.java:100)
> at 
> org.apache.cassandra.repair.messages.ValidationResponse$1.deserialize(ValidationResponse.java:84)
> at 
> org.apache.cassandra.net.Message$Serializer.deserializePost40(Message.java:782)
> at org.apache.cassandra.n

[jira] [Commented] (CASSANDRA-19428) Clean up KeyRangeIterator classes

2024-03-22 Thread Ekaterina Dimitrova (Jira)


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

Ekaterina Dimitrova commented on CASSANDRA-19428:
-

I forgot to mention I did not change the tests in SingleNodeQueryFailureTest to 
multiIndex for now(as per the title), but I think we should; I will leave my 
suggestion as a comment on Git Hub for confirmation.

> Clean up KeyRangeIterator classes
> -
>
> Key: CASSANDRA-19428
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19428
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Feature/2i Index
>Reporter: Ekaterina Dimitrova
>Assignee: Ekaterina Dimitrova
>Priority: Low
> Fix For: 5.0-rc, 5.x
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Remove KeyRangeIterator.current and simplify



--
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-19130) Implement transactional table truncation

2024-03-22 Thread Alex Petrov (Jira)


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

Alex Petrov reassigned CASSANDRA-19130:
---

Assignee: Stefan Miklosovic

> Implement transactional table truncation
> 
>
> Key: CASSANDRA-19130
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19130
> Project: Cassandra
>  Issue Type: New Feature
>  Components: Consistency/Coordination
>Reporter: Marcus Eriksson
>Assignee: Stefan Miklosovic
>Priority: Normal
> Fix For: 5.x
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> TRUNCATE table should leverage cluster metadata to ensure consistent 
> truncation timestamps across all replicas. The current implementation depends 
> on all nodes being available, but this could be reimplemented as a 
> {{Transformation}}.



--
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-19448) CommitlogArchiver only has granularity to seconds for restore_point_in_time

2024-03-22 Thread Tiago L. Alves (Jira)


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

Tiago L. Alves commented on CASSANDRA-19448:


[~maxwellguo] I've looked into the code and it seems to be possible to 
implement millisecond and microsecond-level PIT restore. Supporting millisecond 
requires changes in `CommitLogArchiver` only while supporting microsecond 
requires additional changes in `CommitLogReplayer`.

In both `CommitLogArchiver` and `CommitLogReplayer`, `restorePointInTime` and 
`restoreTarget` respectively, we're assuming long values in milliseconds. 
Supporting millisecond level PIT restore, can be achieved by just recognizing 
the milliseconds part specified in `restore_point_in_time` configuration. The 
existent code does not fail parsing if milliseconds are specified but it will 
ignore it.

To support microsecond granularity, we need further changes in 
`CommitLogReplayer` to accept microseconds instead of forcing comparison to be 
in milliseconds.

I have a patch that adds support for millisecond-level PIT restore and issues 
warnings on attempts to specify microseconds granularity: 
https://github.com/apache/cassandra/pull/3200

> CommitlogArchiver only has granularity to seconds for restore_point_in_time
> ---
>
> Key: CASSANDRA-19448
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19448
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Commit Log
>Reporter: Jeremy Hanna
>Assignee: Maxwell Guo
>Priority: Normal
> Fix For: 4.0.x, 4.1.x, 5.0.x, 5.x
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Commitlog archiver allows users to backup commitlog files for the purpose of 
> doing point in time restores.  The [configuration 
> file|https://github.com/apache/cassandra/blob/trunk/conf/commitlog_archiving.properties]
>  gives an example of down to the seconds granularity but then asks what 
> whether the timestamps are microseconds or milliseconds - defaulting to 
> microseconds.  Because the [CommitLogArchiver uses a second based date 
> format|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/db/commitlog/CommitLogArchiver.java#L52],
>  if a user specifies to restore at something at a lower granularity like 
> milliseconds or microseconds, that means that the it will truncate everything 
> after the second and restore to that second.  So say you specify a 
> restore_point_in_time like this:
> restore_point_in_time=2024:01:18 17:01:01.623392
> it will silently truncate everything after the 01 seconds.  So effectively to 
> the user, it is missing updates between 01 and 01.623392.
> This appears to be a bug in the intent.  We should allow users to specify 
> down to the millisecond or even microsecond level. If we allow them to 
> specify down to microseconds for the restore point in time, then it may 
> internally need to change from a long.



--
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-19130) Implement transactional table truncation

2024-03-22 Thread Alex Petrov (Jira)


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

Alex Petrov commented on CASSANDRA-19130:
-

Just had a very brief look at the patch. Several comments:

{code}
if (tableMetadata.isVirtual())
return executeLocally(state, options);
{code}

We probably should not truncate _before_ we commit, since there's nothing that 
guarantees we _can_ actually commit.

Also, we should not have {{cfs.truncateBlocking();}} inside the {{execute}} 
block of transformation, since this block has to be free of side effects. 

> Implement transactional table truncation
> 
>
> Key: CASSANDRA-19130
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19130
> Project: Cassandra
>  Issue Type: New Feature
>  Components: Consistency/Coordination
>Reporter: Marcus Eriksson
>Assignee: Stefan Miklosovic
>Priority: Normal
> Fix For: 5.x
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> TRUNCATE table should leverage cluster metadata to ensure consistent 
> truncation timestamps across all replicas. The current implementation depends 
> on all nodes being available, but this could be reimplemented as a 
> {{Transformation}}.



--
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-19130) Implement transactional table truncation

2024-03-22 Thread Stefan Miklosovic (Jira)


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

Stefan Miklosovic commented on CASSANDRA-19130:
---

When it comes to 

{code}
if (tableMetadata.isVirtual())
return executeLocally(state, options);
{code}

This will not work in TCM because virtual table is not distributed so there is 
basically nothing to commit into TCM and I just return there instantly. The 
truncation against vtables is done only against the implementations of 
AbstractMutableVirtualTable-s and they are not covered by TCM, each vtable is 
just a local one, so committing anything does not make sense, no?

I am not sure how to solve that blocking truncation ... Any ideas? 

But when I step aside there for a while, is this really what we want to do? 
Truncations committed to TCM? Currently, all nodes need to be up, as already 
described in the description, so here we are moving away from that? I would 
like to have that confirmed.

> Implement transactional table truncation
> 
>
> Key: CASSANDRA-19130
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19130
> Project: Cassandra
>  Issue Type: New Feature
>  Components: Consistency/Coordination
>Reporter: Marcus Eriksson
>Assignee: Stefan Miklosovic
>Priority: Normal
> Fix For: 5.x
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> TRUNCATE table should leverage cluster metadata to ensure consistent 
> truncation timestamps across all replicas. The current implementation depends 
> on all nodes being available, but this could be reimplemented as a 
> {{Transformation}}.



--
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-19130) Implement transactional table truncation

2024-03-22 Thread Stefan Miklosovic (Jira)


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

Stefan Miklosovic edited comment on CASSANDRA-19130 at 3/22/24 2:12 PM:


When it comes to 

{code}
if (tableMetadata.isVirtual())
return executeLocally(state, options);
{code}

This will not work in TCM because virtual table is not distributed so there is 
basically nothing to commit into TCM and I just return there instantly. The 
truncation against vtables is done only against the implementations of 
AbstractMutableVirtualTable-s and they are not covered by TCM, each vtable is 
just a local one, so committing anything does not make sense, no?

I am not sure how to solve that blocking truncation ... Any ideas? 

But when I step aside for a while, is this really what we want to do? 
Truncations committed to TCM? Currently, all nodes need to be up, as already 
described in the description, so here we are moving away from that? I would 
like to have that confirmed.


was (Author: smiklosovic):
When it comes to 

{code}
if (tableMetadata.isVirtual())
return executeLocally(state, options);
{code}

This will not work in TCM because virtual table is not distributed so there is 
basically nothing to commit into TCM and I just return there instantly. The 
truncation against vtables is done only against the implementations of 
AbstractMutableVirtualTable-s and they are not covered by TCM, each vtable is 
just a local one, so committing anything does not make sense, no?

I am not sure how to solve that blocking truncation ... Any ideas? 

But when I step aside there for a while, is this really what we want to do? 
Truncations committed to TCM? Currently, all nodes need to be up, as already 
described in the description, so here we are moving away from that? I would 
like to have that confirmed.

> Implement transactional table truncation
> 
>
> Key: CASSANDRA-19130
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19130
> Project: Cassandra
>  Issue Type: New Feature
>  Components: Consistency/Coordination
>Reporter: Marcus Eriksson
>Assignee: Stefan Miklosovic
>Priority: Normal
> Fix For: 5.x
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> TRUNCATE table should leverage cluster metadata to ensure consistent 
> truncation timestamps across all replicas. The current implementation depends 
> on all nodes being available, but this could be reimplemented as a 
> {{Transformation}}.



--
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-19333) Fix decode in VectorCodec

2024-03-22 Thread Ekaterina Dimitrova (Jira)


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

Ekaterina Dimitrova updated CASSANDRA-19333:

Reviewers: Alexandre Dutra, Bret McGuire  (was: Bret McGuire)
   Status: Review In Progress  (was: Needs Committer)

> Fix decode in VectorCodec
> -
>
> Key: CASSANDRA-19333
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19333
> Project: Cassandra
>  Issue Type: Bug
>  Components: Client/java-driver
>Reporter: Ekaterina Dimitrova
>Assignee: Ekaterina Dimitrova
>Priority: Normal
>
> We made a server-side fix in CASSANDRA-19167 for VectorCodec.
> This needs to be checked also in the driver [here 
> |https://github.com/apache/cassandra-java-driver/blob/8d5849cb38995b312f29314d18256c0c3e94cf07/core/src/main/java/com/datastax/oss/driver/internal/core/type/codec/VectorCodec.java#L130-L139]



--
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-19333) Fix decode in VectorCodec

2024-03-22 Thread Ekaterina Dimitrova (Jira)


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

Ekaterina Dimitrova updated CASSANDRA-19333:

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

> Fix decode in VectorCodec
> -
>
> Key: CASSANDRA-19333
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19333
> Project: Cassandra
>  Issue Type: Bug
>  Components: Client/java-driver
>Reporter: Ekaterina Dimitrova
>Assignee: Ekaterina Dimitrova
>Priority: Normal
>
> We made a server-side fix in CASSANDRA-19167 for VectorCodec.
> This needs to be checked also in the driver [here 
> |https://github.com/apache/cassandra-java-driver/blob/8d5849cb38995b312f29314d18256c0c3e94cf07/core/src/main/java/com/datastax/oss/driver/internal/core/type/codec/VectorCodec.java#L130-L139]



--
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-19130) Implement transactional table truncation

2024-03-22 Thread Alex Petrov (Jira)


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

Alex Petrov edited comment on CASSANDRA-19130 at 3/22/24 2:19 PM:
--

bq. This will not work in TCM because virtual table is not distributed so there 
is basically nothing to commit into TCM and I just return there instantly. 

I guess if the intention is to only truncate the table on the local machine, 
this might be fine, I just don't think it's user-friendly semantics.

bq. But when I step aside for a while, is this really what we want to do? 
Truncations committed to TCM? Currently, all nodes need to be up, as already 
described in the description, so here we are moving away from that? I would 
like to have that confirmed.

I think this is what we want to do, yes, since we'll be able to record 
truncation timestamp in the log and have it replayed. And the limitation of the 
nodes being up will be lifted, too.


was (Author: ifesdjeen):
bq. This will not work in TCM because virtual table is not distributed so there 
is basically nothing to commit into TCM and I just return there instantly. 

I guess if the intention is to only truncate the table on the local machine, 
this might be fine, I just don't think it's user-friendly semantics.

> But when I step aside for a while, is this really what we want to do? 
> Truncations committed to TCM? Currently, all nodes need to be up, as already 
> described in the description, so here we are moving away from that? I would 
> like to have that confirmed.

I think this is what we want to do, yes, since we'll be able to record 
truncation timestamp in the log and have it replayed. And the limitation of the 
nodes being up will be lifted, too.

> Implement transactional table truncation
> 
>
> Key: CASSANDRA-19130
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19130
> Project: Cassandra
>  Issue Type: New Feature
>  Components: Consistency/Coordination
>Reporter: Marcus Eriksson
>Assignee: Stefan Miklosovic
>Priority: Normal
> Fix For: 5.x
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> TRUNCATE table should leverage cluster metadata to ensure consistent 
> truncation timestamps across all replicas. The current implementation depends 
> on all nodes being available, but this could be reimplemented as a 
> {{Transformation}}.



--
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-19130) Implement transactional table truncation

2024-03-22 Thread Alex Petrov (Jira)


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

Alex Petrov commented on CASSANDRA-19130:
-

bq. This will not work in TCM because virtual table is not distributed so there 
is basically nothing to commit into TCM and I just return there instantly. 

I guess if the intention is to only truncate the table on the local machine, 
this might be fine, I just don't think it's user-friendly semantics.

> But when I step aside for a while, is this really what we want to do? 
> Truncations committed to TCM? Currently, all nodes need to be up, as already 
> described in the description, so here we are moving away from that? I would 
> like to have that confirmed.

I think this is what we want to do, yes, since we'll be able to record 
truncation timestamp in the log and have it replayed. And the limitation of the 
nodes being up will be lifted, too.

> Implement transactional table truncation
> 
>
> Key: CASSANDRA-19130
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19130
> Project: Cassandra
>  Issue Type: New Feature
>  Components: Consistency/Coordination
>Reporter: Marcus Eriksson
>Assignee: Stefan Miklosovic
>Priority: Normal
> Fix For: 5.x
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> TRUNCATE table should leverage cluster metadata to ensure consistent 
> truncation timestamps across all replicas. The current implementation depends 
> on all nodes being available, but this could be reimplemented as a 
> {{Transformation}}.



--
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-19130) Implement transactional table truncation

2024-03-22 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe commented on CASSANDRA-19130:
-

The way truncation works is that it writes a timestamp into a system table on 
each node, associated with the table being truncated (and a commitlog 
position). Then, when local reads and writes are done against that table, any 
cells with a timestamp earlier than the truncation is essentially discarded. If 
any node misses that message and so doesn't write the timestamp it won't do 
this filtering and so data can be resurrected. This is a strictly one time 
operation and there's no way for a node which does miss such a message to catch 
it up later, which is why {{TRUNCATE}} currently requires all nodes to be up.

With TCM, we can improve this by having an entry in the log which contains the 
truncation timestamp.  Then it can be distributed to peers the same way as any 
other log entry, allowing them to catch up if they miss it. Replicas and 
coordinators participating in a read already check that they're all up to date 
with each other attempt to catch up if not.

We shouldn't have to change how truncation works on the local level, just have 
{{TruncateStatement}} work by committing a new transform to the CMS. The 
trickiest bit will be to make sure that the {{execute}} method itself is 
side-effect free (i.e. it only produces a new ClusterMetadata). The way to do 
that is with a {{ChangeListener}} which implements a post-commit event to do 
the work of {{CFS::truncateBlocking}}

> Implement transactional table truncation
> 
>
> Key: CASSANDRA-19130
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19130
> Project: Cassandra
>  Issue Type: New Feature
>  Components: Consistency/Coordination
>Reporter: Marcus Eriksson
>Assignee: Stefan Miklosovic
>Priority: Normal
> Fix For: 5.x
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> TRUNCATE table should leverage cluster metadata to ensure consistent 
> truncation timestamps across all replicas. The current implementation depends 
> on all nodes being available, but this could be reimplemented as a 
> {{Transformation}}.



--
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-13855) Implement Http Seed provider

2024-03-22 Thread Maxim Muzafarov (Jira)


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

Maxim Muzafarov commented on CASSANDRA-13855:
-

As I said I have nothing against the HttpSeedProvider, I'll review the current 
changes.

Regarding Cloud SeedProviders, I think it should be possible to get a node tag 
from the pod metadata in json format as we do now, so we probably don't need to 
add any extra dependencies. Once each the seed metadata info is initialized, we 
can put that in the ClusterMetadata as we did it for the rack parameter, this 
should work, however I haven't tried implementing it on my end.

https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/locator/AbstractCloudMetadataServiceSnitch.java#L72
{code}
if (endpoint.equals(FBUtilities.getBroadcastAddressAndPort()))
return getLocalRack();
ClusterMetadata metadata = ClusterMetadata.current();
NodeId nodeId = metadata.directory.peerId(endpoint);
if (nodeId == null)
return DEFAULT_RACK;
return metadata.directory.location(nodeId).rack;
{code}

I'm going to create an issue so we don't mix it up here.

> Implement Http Seed provider
> 
>
> Key: CASSANDRA-13855
> URL: https://issues.apache.org/jira/browse/CASSANDRA-13855
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Coordination, Legacy/Core
>Reporter: Jon Haddad
>Assignee: Claude Warren
>Priority: Low
>  Labels: lhf
> Fix For: 5.x
>
> Attachments: 0001-Add-URL-Seed-Provider-trunk.txt, signature.asc, 
> signature.asc, signature.asc
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> Seems like including a dead simple seed provider that can fetch from a URL, 1 
> line per seed, would be useful.



--
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-19130) Implement transactional table truncation

2024-03-22 Thread Stefan Miklosovic (Jira)


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

Stefan Miklosovic updated CASSANDRA-19130:
--
Change Category: Operability
 Complexity: Normal
 Status: Open  (was: Triage Needed)

> Implement transactional table truncation
> 
>
> Key: CASSANDRA-19130
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19130
> Project: Cassandra
>  Issue Type: New Feature
>  Components: Consistency/Coordination
>Reporter: Marcus Eriksson
>Assignee: Stefan Miklosovic
>Priority: Normal
> Fix For: 5.x
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> TRUNCATE table should leverage cluster metadata to ensure consistent 
> truncation timestamps across all replicas. The current implementation depends 
> on all nodes being available, but this could be reimplemented as a 
> {{Transformation}}.



--
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-19471) Commitlog with direct io fails test_change_durable_writes

2024-03-22 Thread Brandon Williams (Jira)


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

Brandon Williams commented on CASSANDRA-19471:
--

I believe the root cause is that direct mode initially allocates only the block 
size on disk (4k in this case) while legacy allocates the full segment size 
(1MB).  This leaves legacy mode with enough headroom for mutations like schema 
changes without changing the on-disk size, while direct mode will reflect them.

This is good news though, because it shows the test is faulty.  First, it 
shouldn't begin measuring the CL until _after_ the schema is created since 
those mutations are always durable.  Second, it needs to reset the batch mode 
options when it recreates the cluster for the second run, otherwise the CL gets 
an asynchronous flush that breaks the test again.  I've made those changes 
[here|https://github.com/driftx/cassandra-dtest/commit/2499a609b7a8bd750417c3fa56855ab1e9e800f1]
 and 
[here|https://app.circleci.com/pipelines/github/driftx/cassandra/1536/workflows/150c6753-e905-4503-9f58-f6c7e8357881]
 is a circle run with repeats for latest/non-latest to make sure the test still 
works, and a full latest gamut to make sure nothing else was broken by the 
direct CL changes.

> Commitlog with direct io fails test_change_durable_writes
> -
>
> Key: CASSANDRA-19471
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19471
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Commit Log
>Reporter: Brandon Williams
>Assignee: Brandon Williams
>Priority: Normal
> Fix For: 5.0-rc, 5.x
>
>
> With the commitlog_disk_access_mode set to direct, and the improved 
> configuration_test.py::TestConfiguration::test_change_durable_writes from 
> CASSANDRA-19465, this fails with either:
> {noformat}
>  AssertionError: Commitlog was written with durable writes disabled
> {noformat}
> Or what appears to be the original exception reported in CASSANDRA-19465:
> {noformat}
>   node1: ERROR [PERIODIC-COMMIT-LOG-SYNCER] 2024-03-14 17:16:08,465 
> StorageService.java:631 - Stopping native transport
>   node1: ERROR [MutationStage-5] 2024-03-14 17:16:08,465 
> StorageProxy.java:1670 - Failed to apply mutation locally :
>   java.lang.IllegalArgumentException: newPosition > limit: (1048634 > 1048576)
> at java.base/java.nio.Buffer.createPositionException(Buffer.java:341)
> at java.base/java.nio.Buffer.position(Buffer.java:316)
> at java.base/java.nio.ByteBuffer.position(ByteBuffer.java:1516)
> at 
> java.base/java.nio.MappedByteBuffer.position(MappedByteBuffer.java:321)
> at 
> java.base/java.nio.MappedByteBuffer.position(MappedByteBuffer.java:73)
> at 
> org.apache.cassandra.db.commitlog.CommitLogSegment.allocate(CommitLogSegment.java:216)
> at 
> org.apache.cassandra.db.commitlog.CommitLogSegmentManagerStandard.allocate(CommitLogSegmentManagerStandard.java:52)
> at org.apache.cassandra.db.commitlog.CommitLog.add(CommitLog.java:307)
> at 
> org.apache.cassandra.db.CassandraKeyspaceWriteHandler.addToCommitLog(CassandraKeyspaceWriteHandler.java:99)
> at 
> org.apache.cassandra.db.CassandraKeyspaceWriteHandler.beginWrite(CassandraKeyspaceWriteHandler.java:53)
> at org.apache.cassandra.db.Keyspace.applyInternal(Keyspace.java:612)
> at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:497)
> at org.apache.cassandra.db.Mutation.apply(Mutation.java:244)
> at org.apache.cassandra.db.Mutation.apply(Mutation.java:264)
> at 
> org.apache.cassandra.service.StorageProxy$4.runMayThrow(StorageProxy.java:1664)
> at 
> org.apache.cassandra.service.StorageProxy$LocalMutationRunnable.run(StorageProxy.java:2624)
> at 
> org.apache.cassandra.concurrent.ExecutionFailure$2.run(ExecutionFailure.java:163)
> at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:143)
> at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
> at java.base/java.lang.Thread.run(Thread.java:833)
>   node1: ERROR [PERIODIC-COMMIT-LOG-SYNCER] 2024-03-14 17:16:08,470 
> StorageService.java:636 - Stopping gossiper
> {noformat}



--
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-19471) Commitlog with direct io fails test_change_durable_writes

2024-03-22 Thread Brandon Williams (Jira)


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

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

> Commitlog with direct io fails test_change_durable_writes
> -
>
> Key: CASSANDRA-19471
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19471
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Commit Log
>Reporter: Brandon Williams
>Assignee: Brandon Williams
>Priority: Normal
> Fix For: 5.0-rc, 5.x
>
>
> With the commitlog_disk_access_mode set to direct, and the improved 
> configuration_test.py::TestConfiguration::test_change_durable_writes from 
> CASSANDRA-19465, this fails with either:
> {noformat}
>  AssertionError: Commitlog was written with durable writes disabled
> {noformat}
> Or what appears to be the original exception reported in CASSANDRA-19465:
> {noformat}
>   node1: ERROR [PERIODIC-COMMIT-LOG-SYNCER] 2024-03-14 17:16:08,465 
> StorageService.java:631 - Stopping native transport
>   node1: ERROR [MutationStage-5] 2024-03-14 17:16:08,465 
> StorageProxy.java:1670 - Failed to apply mutation locally :
>   java.lang.IllegalArgumentException: newPosition > limit: (1048634 > 1048576)
> at java.base/java.nio.Buffer.createPositionException(Buffer.java:341)
> at java.base/java.nio.Buffer.position(Buffer.java:316)
> at java.base/java.nio.ByteBuffer.position(ByteBuffer.java:1516)
> at 
> java.base/java.nio.MappedByteBuffer.position(MappedByteBuffer.java:321)
> at 
> java.base/java.nio.MappedByteBuffer.position(MappedByteBuffer.java:73)
> at 
> org.apache.cassandra.db.commitlog.CommitLogSegment.allocate(CommitLogSegment.java:216)
> at 
> org.apache.cassandra.db.commitlog.CommitLogSegmentManagerStandard.allocate(CommitLogSegmentManagerStandard.java:52)
> at org.apache.cassandra.db.commitlog.CommitLog.add(CommitLog.java:307)
> at 
> org.apache.cassandra.db.CassandraKeyspaceWriteHandler.addToCommitLog(CassandraKeyspaceWriteHandler.java:99)
> at 
> org.apache.cassandra.db.CassandraKeyspaceWriteHandler.beginWrite(CassandraKeyspaceWriteHandler.java:53)
> at org.apache.cassandra.db.Keyspace.applyInternal(Keyspace.java:612)
> at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:497)
> at org.apache.cassandra.db.Mutation.apply(Mutation.java:244)
> at org.apache.cassandra.db.Mutation.apply(Mutation.java:264)
> at 
> org.apache.cassandra.service.StorageProxy$4.runMayThrow(StorageProxy.java:1664)
> at 
> org.apache.cassandra.service.StorageProxy$LocalMutationRunnable.run(StorageProxy.java:2624)
> at 
> org.apache.cassandra.concurrent.ExecutionFailure$2.run(ExecutionFailure.java:163)
> at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:143)
> at 
> io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
> at java.base/java.lang.Thread.run(Thread.java:833)
>   node1: ERROR [PERIODIC-COMMIT-LOG-SYNCER] 2024-03-14 17:16:08,470 
> StorageService.java:636 - Stopping gossiper
> {noformat}



--
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-19488) Ensure snitches always defer to ClusterMetadata

2024-03-22 Thread Sam Tunnicliffe (Jira)
Sam Tunnicliffe created CASSANDRA-19488:
---

 Summary: Ensure snitches always defer to ClusterMetadata
 Key: CASSANDRA-19488
 URL: https://issues.apache.org/jira/browse/CASSANDRA-19488
 Project: Cassandra
  Issue Type: Improvement
  Components: Cluster/Membership, Messaging/Internode, Transactional 
Cluster Metadata
Reporter: Sam Tunnicliffe
Assignee: Sam Tunnicliffe


Internally, C* always uses {{ClusterMetadata}} as the source of topology 
information when calculating data placements, replica plans etc and as such the 
role of the snitch has been somewhat reduced. 

Sorting and comparison functions as provided by specialisations like 
{{DynamicEndpointSnitch}} are still used, but the snitch should only be 
responsible for providing the DC and rack for a new node when it first joins a 
cluster.

Aside from initial startup and registration, snitch implementations should 
always defer to {{{}ClusterMetadata{}}}, for DC and rack otherwise there is a 
risk that the snitch config drifts out of sync with TCM and output from tools 
like {{nodetool ring}} and {{gossipinfo}} becomes incorrect.

A complication is that topology is used when opening connections to peers as 
certain internode connection settings are variable at the DC level, so at the 
time of connecting we want to check the location of the remote peer. Usually, 
this is available from {{{}ClusterMetadata{}}}, but in the case of a brand new 
node joining the cluster nothing is known a priori. The current implementation 
assumes that the snitch will know the location of the new node ahead of time, 
but in practice this is often not the case (though with variants of 
{{PropertyFileSnitch}} it _should_ be), and the remote node is temporarily 
assigned a default DC. This is problematic as it can cause the internode 
connection settings which depend on DC to be incorrectly set. Internode 
connections are long lived and any established while the DC is unknown 
(potentially with incorrect config) will persist indefinitely. This particular 
issue is not directly related to TCM and is present in earlier versions.



--
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-19488) Ensure snitches always defer to ClusterMetadata

2024-03-22 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-19488:

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

> Ensure snitches always defer to ClusterMetadata
> ---
>
> Key: CASSANDRA-19488
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19488
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Cluster/Membership, Messaging/Internode, Transactional 
> Cluster Metadata
>Reporter: Sam Tunnicliffe
>Assignee: Sam Tunnicliffe
>Priority: Normal
> Fix For: 5.x
>
>
> Internally, C* always uses {{ClusterMetadata}} as the source of topology 
> information when calculating data placements, replica plans etc and as such 
> the role of the snitch has been somewhat reduced. 
> Sorting and comparison functions as provided by specialisations like 
> {{DynamicEndpointSnitch}} are still used, but the snitch should only be 
> responsible for providing the DC and rack for a new node when it first joins 
> a cluster.
> Aside from initial startup and registration, snitch implementations should 
> always defer to {{{}ClusterMetadata{}}}, for DC and rack otherwise there is a 
> risk that the snitch config drifts out of sync with TCM and output from tools 
> like {{nodetool ring}} and {{gossipinfo}} becomes incorrect.
> A complication is that topology is used when opening connections to peers as 
> certain internode connection settings are variable at the DC level, so at the 
> time of connecting we want to check the location of the remote peer. Usually, 
> this is available from {{{}ClusterMetadata{}}}, but in the case of a brand 
> new node joining the cluster nothing is known a priori. The current 
> implementation assumes that the snitch will know the location of the new node 
> ahead of time, but in practice this is often not the case (though with 
> variants of {{PropertyFileSnitch}} it _should_ be), and the remote node is 
> temporarily assigned a default DC. This is problematic as it can cause the 
> internode connection settings which depend on DC to be incorrectly set. 
> Internode connections are long lived and any established while the DC is 
> unknown (potentially with incorrect config) will persist indefinitely. This 
> particular issue is not directly related to TCM and is present in earlier 
> versions.



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

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



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

2024-03-22 Thread maedhroz
This is an automated email from the ASF dual-hosted git repository.

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

commit c50718fd3d96a26e74652616256746baebfb0813
Merge: a69c8657d7 46acaf22e6
Author: Caleb Rackliffe 
AuthorDate: Fri Mar 22 11:44:40 2024 -0500

Merge branch 'cassandra-5.0' into trunk

* cassandra-5.0:
  Ensure SAI indexes empty byte buffers for types that allow them as a 
valid input

 CHANGES.txt|  1 +
 .../statements/schema/CreateIndexStatement.java|  2 +-
 .../index/sai/disk/v1/SSTableIndexWriter.java  |  3 +-
 .../cassandra/index/sai/memory/MemtableIndex.java  |  5 +-
 test/unit/accord/utils/Gens.java   | 70 +---
 .../index/sai/cql/AbstractSimpleEqTestBase.java| 92 +
 .../index/sai/cql/AllTypesSimpleEqTest.java| 95 ++
 .../index/sai/cql/EmptyStringLifecycleTest.java| 79 ++
 .../org/apache/cassandra/utils/Generators.java |  9 ++
 9 files changed, 343 insertions(+), 13 deletions(-)

diff --cc CHANGES.txt
index 7a63df43cc,c056c2785f..1e34cbe71e
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,30 -1,5 +1,31 @@@
 -5.0-beta2
 +5.1
 + * Fix StorageService::constructRangeToEndpointMap for non-distributed 
keyspaces (CASSANDRA-19255)
 + * Group nodetool cms commands into single command group (CASSANDRA-19393)
 + * Register the measurements of the bootstrap process as Dropwizard metrics 
(CASSANDRA-19447)
 + * Add LIST SUPERUSERS CQL statement (CASSANDRA-19417)
 + * Modernize CQLSH datetime conversions (CASSANDRA-18879)
 + * Harry model and in-JVM tests for partition-restricted 2i queries 
(CASSANDRA-18275)
 + * Refactor cqlshmain global constants (CASSANDRA-19201)
 + * Remove native_transport_port_ssl (CASSANDRA-19397)
 + * Make nodetool reconfigurecms sync by default and add --cancel to be able 
to cancel ongoing reconfigurations (CASSANDRA-19216)
 + * Expose auth mode in system_views.clients, nodetool clientstats, metrics 
(CASSANDRA-19366)
 + * Remove sealed_periods and last_sealed_period tables (CASSANDRA-19189)
 + * Improve setup and initialisation of LocalLog/LogSpec (CASSANDRA-19271)
 + * Refactor structure of caching metrics and expose auth cache metrics via 
JMX (CASSANDRA-17062)
 + * Allow CQL client certificate authentication to work without sending an 
AUTHENTICATE request (CASSANDRA-18857)
 + * Extend nodetool tpstats and system_views.thread_pools with detailed pool 
parameters (CASSANDRA-19289)
 + * Remove dependency on Sigar in favor of OSHI (CASSANDRA-16565)
 + * Simplify the bind marker and Term logic (CASSANDRA-18813)
 + * Limit cassandra startup to supported JDKs, allow higher JDKs by setting 
CASSANDRA_JDK_UNSUPPORTED (CASSANDRA-18688)
 + * Standardize nodetool tablestats formatting of data units (CASSANDRA-19104)
 + * Make nodetool tablestats use number of significant digits for time and 
average values consistently (CASSANDRA-19015)
 + * Upgrade jackson to 2.15.3 and snakeyaml to 2.1 (CASSANDRA-18875)
 + * Transactional Cluster Metadata [CEP-21] (CASSANDRA-18330)
 + * Add ELAPSED command to cqlsh (CASSANDRA-18861)
 + * Add the ability to disable bulk loading of SSTables (CASSANDRA-18781)
 + * Clean up obsolete functions and simplify cql_version handling in cqlsh 
(CASSANDRA-18787)
 +Merged from 5.0:
+  * Ensure SAI indexes empty byte buffers for types that allow them as a valid 
input (CASSANDRA-19461)
   * Deprecate Python 3.7 and earlier, but allow cqlsh to run with Python 
3.6-3.11 (CASSANDRA-19467)
   * Set uuid_sstable_identifiers_enabled to true in cassandra-latest.yaml 
(CASSANDRA-19460)
   * Revert switching to approxTime in Dispatcher (CASSANDRA-19454)


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



(cassandra) branch cassandra-5.0 updated: Ensure SAI indexes empty byte buffers for types that allow them as a valid input

2024-03-22 Thread maedhroz
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/cassandra-5.0 by this push:
 new 46acaf22e6 Ensure SAI indexes empty byte buffers for types that allow 
them as a valid input
46acaf22e6 is described below

commit 46acaf22e688e7a2e707ac61fd88c96ed33b60d7
Author: Caleb Rackliffe 
AuthorDate: Fri Mar 15 17:29:01 2024 -0500

Ensure SAI indexes empty byte buffers for types that allow them as a valid 
input

patch by Caleb Rackliffe; reviewed by David Capwell for CASSANDRA-19461

Co-authored-by: Caleb Rackliffe 
Co-authored-by: David Capwell 
---
 CHANGES.txt|  1 +
 .../statements/schema/CreateIndexStatement.java|  2 +-
 .../index/sai/disk/v1/SSTableIndexWriter.java  |  3 +-
 .../cassandra/index/sai/memory/MemtableIndex.java  |  5 +-
 test/unit/accord/utils/Gens.java   | 70 +---
 .../index/sai/cql/AbstractSimpleEqTestBase.java| 92 +
 .../index/sai/cql/AllTypesSimpleEqTest.java| 95 ++
 .../index/sai/cql/EmptyStringLifecycleTest.java| 79 ++
 .../org/apache/cassandra/utils/Generators.java |  9 ++
 9 files changed, 343 insertions(+), 13 deletions(-)

diff --git a/CHANGES.txt b/CHANGES.txt
index 056c84a82b..c056c2785f 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 5.0-beta2
+ * Ensure SAI indexes empty byte buffers for types that allow them as a valid 
input (CASSANDRA-19461)
  * Deprecate Python 3.7 and earlier, but allow cqlsh to run with Python 
3.6-3.11 (CASSANDRA-19467)
  * Set uuid_sstable_identifiers_enabled to true in cassandra-latest.yaml 
(CASSANDRA-19460)
  * Revert switching to approxTime in Dispatcher (CASSANDRA-19454)
diff --git 
a/src/java/org/apache/cassandra/cql3/statements/schema/CreateIndexStatement.java
 
b/src/java/org/apache/cassandra/cql3/statements/schema/CreateIndexStatement.java
index b53e066f90..9f5bbfe058 100644
--- 
a/src/java/org/apache/cassandra/cql3/statements/schema/CreateIndexStatement.java
+++ 
b/src/java/org/apache/cassandra/cql3/statements/schema/CreateIndexStatement.java
@@ -242,7 +242,7 @@ public final class CreateIndexStatement extends 
AlterSchemaStatement
 throw ire(ONLY_PARTITION_KEY, column);
 
 if (column.type.isFrozenCollection() && target.type != Type.FULL)
-throw ire(CREATE_ON_FROZEN_COLUMN, target.type, column, column);
+throw ire(CREATE_ON_FROZEN_COLUMN, target.type, column, 
column.name.toCQLString());
 
 if (!column.type.isFrozenCollection() && target.type == Type.FULL)
 throw ire(FULL_ON_FROZEN_COLLECTIONS);
diff --git 
a/src/java/org/apache/cassandra/index/sai/disk/v1/SSTableIndexWriter.java 
b/src/java/org/apache/cassandra/index/sai/disk/v1/SSTableIndexWriter.java
index 3400f81b9d..06bb7d80fe 100644
--- a/src/java/org/apache/cassandra/index/sai/disk/v1/SSTableIndexWriter.java
+++ b/src/java/org/apache/cassandra/index/sai/disk/v1/SSTableIndexWriter.java
@@ -200,7 +200,8 @@ public class SSTableIndexWriter implements 
PerColumnIndexWriter
 currentBuilder = newSegmentBuilder();
 }
 
-if (term.remaining() == 0) return;
+// Some types support empty byte buffers:
+if (term.remaining() == 0 && 
!index.termType().indexType().allowsEmpty()) return;
 
 if (analyzer == null || !index.termType().isLiteral())
 {
diff --git a/src/java/org/apache/cassandra/index/sai/memory/MemtableIndex.java 
b/src/java/org/apache/cassandra/index/sai/memory/MemtableIndex.java
index d124af651e..f0f2ea36ad 100644
--- a/src/java/org/apache/cassandra/index/sai/memory/MemtableIndex.java
+++ b/src/java/org/apache/cassandra/index/sai/memory/MemtableIndex.java
@@ -28,6 +28,7 @@ import java.util.function.Function;
 import org.apache.cassandra.db.Clustering;
 import org.apache.cassandra.db.DecoratedKey;
 import org.apache.cassandra.db.PartitionPosition;
+import org.apache.cassandra.db.marshal.AbstractType;
 import org.apache.cassandra.dht.AbstractBounds;
 import org.apache.cassandra.index.sai.QueryContext;
 import org.apache.cassandra.index.sai.StorageAttachedIndex;
@@ -46,10 +47,12 @@ public class MemtableIndex implements MemtableOrdering
 private final MemoryIndex memoryIndex;
 private final LongAdder writeCount = new LongAdder();
 private final LongAdder estimatedMemoryUsed = new LongAdder();
+private final AbstractType type;
 
 public MemtableIndex(StorageAttachedIndex index)
 {
 this.memoryIndex = index.termType().isVector() ? new 
VectorMemoryIndex(index) : new TrieMemoryIndex(index);
+this.type = index.termType().indexType();
 }
 
 public long writeCount()
@@ -79,7 +82,7 @@ public class MemtableIndex implements MemtableOrdering
 
 public long index(Decorat

(cassandra) branch trunk updated (a69c8657d7 -> c50718fd3d)

2024-03-22 Thread maedhroz
This is an automated email from the ASF dual-hosted git repository.

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


from a69c8657d7 Fix getRangeTo* operations of StorageService mbean for 
local strategy keyspaces
 new 46acaf22e6 Ensure SAI indexes empty byte buffers for types that allow 
them as a valid input
 new c50718fd3d Merge branch 'cassandra-5.0' into trunk

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


Summary of changes:
 CHANGES.txt|  1 +
 .../statements/schema/CreateIndexStatement.java|  2 +-
 .../index/sai/disk/v1/SSTableIndexWriter.java  |  3 +-
 .../cassandra/index/sai/memory/MemtableIndex.java  |  5 +-
 test/unit/accord/utils/Gens.java   | 70 +---
 .../index/sai/cql/AbstractSimpleEqTestBase.java| 92 +
 .../index/sai/cql/AllTypesSimpleEqTest.java| 95 ++
 .../index/sai/cql/EmptyStringLifecycleTest.java| 79 ++
 .../org/apache/cassandra/utils/Generators.java |  9 ++
 9 files changed, 343 insertions(+), 13 deletions(-)
 create mode 100644 
test/unit/org/apache/cassandra/index/sai/cql/AbstractSimpleEqTestBase.java
 create mode 100644 
test/unit/org/apache/cassandra/index/sai/cql/AllTypesSimpleEqTest.java
 create mode 100644 
test/unit/org/apache/cassandra/index/sai/cql/EmptyStringLifecycleTest.java


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



[jira] [Updated] (CASSANDRA-19461) SAI does not index empty bytes even for types that allow empty bytes as a valid input

2024-03-22 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19461:

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

Committed as 
https://github.com/apache/cassandra/commit/46acaf22e688e7a2e707ac61fd88c96ed33b60d7

> SAI does not index empty bytes even for types that allow empty bytes as a 
> valid input
> -
>
> Key: CASSANDRA-19461
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19461
> Project: Cassandra
>  Issue Type: Bug
>  Components: Feature/SAI
>Reporter: Caleb Rackliffe
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 5.0-beta2, 5.1
>
> Attachments: ci_summary.html, result_details.tar.gz
>
>  Time Spent: 1h 50m
>  Remaining Estimate: 0h
>
> This is easy to reproduce with a test that looks something like this:
> {noformat}
> @Test
> public void testEmptyString()
> {
> createTable("CREATE TABLE %s (k TEXT PRIMARY KEY, v text)");
> createIndex(String.format(CREATE_INDEX_TEMPLATE, 'v'));
> execute("INSERT INTO %s (k, v) VALUES ('0', '')");
> execute("INSERT INTO %s (k) VALUES ('1')");
> 
> // flush(); < there is not always a memtable index involved, a fix 
> will have to pay attention to this
> List rows = executeNet("SELECT * FROM %s WHERE v = ''").all();
> assertEquals(1, rows.size()); <— FAILS! No matches...
> }
> {noformat}



--
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-13855) Implement Http Seed provider

2024-03-22 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe commented on CASSANDRA-13855:
-

Not completely relevant to the discussion here, but slightly adjacent... the 
roles of both snitches and seeds have changed slightly in trunk. See 
CASSANDRA-XXX which I finally remembered to file for more detail on snitches. 
Seeds are now really only necessary as initial contact points for joining 
nodes. Technically, they do still perform the same function regarding gossip 
convergence, but that it is way less important/relevant now as we don't rely on 
gossip state for correctness. Of course, this doesn't make the goal of this 
JIRA any less valid, I just thought I should mention it. 


> Implement Http Seed provider
> 
>
> Key: CASSANDRA-13855
> URL: https://issues.apache.org/jira/browse/CASSANDRA-13855
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Coordination, Legacy/Core
>Reporter: Jon Haddad
>Assignee: Claude Warren
>Priority: Low
>  Labels: lhf
> Fix For: 5.x
>
> Attachments: 0001-Add-URL-Seed-Provider-trunk.txt, signature.asc, 
> signature.asc, signature.asc
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> Seems like including a dead simple seed provider that can fetch from a URL, 1 
> line per seed, would be useful.



--
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-13855) Implement Http Seed provider

2024-03-22 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe edited comment on CASSANDRA-13855 at 3/22/24 5:27 PM:
--

Not completely relevant to the discussion here, but slightly adjacent... the 
roles of both snitches and seeds have changed slightly in trunk. See 
CASSANDRA-19488 which I finally remembered to file for more detail on snitches. 
Seeds are now really only necessary as initial contact points for joining 
nodes. Technically, they do still perform the same function regarding gossip 
convergence, but that it is way less important/relevant now as we don't rely on 
gossip state for correctness. Of course, this doesn't make the goal of this 
JIRA any less valid, I just thought I should mention it. 



was (Author: beobal):
Not completely relevant to the discussion here, but slightly adjacent... the 
roles of both snitches and seeds have changed slightly in trunk. See 
CASSANDRA-XXX which I finally remembered to file for more detail on snitches. 
Seeds are now really only necessary as initial contact points for joining 
nodes. Technically, they do still perform the same function regarding gossip 
convergence, but that it is way less important/relevant now as we don't rely on 
gossip state for correctness. Of course, this doesn't make the goal of this 
JIRA any less valid, I just thought I should mention it. 


> Implement Http Seed provider
> 
>
> Key: CASSANDRA-13855
> URL: https://issues.apache.org/jira/browse/CASSANDRA-13855
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Coordination, Legacy/Core
>Reporter: Jon Haddad
>Assignee: Claude Warren
>Priority: Low
>  Labels: lhf
> Fix For: 5.x
>
> Attachments: 0001-Add-URL-Seed-Provider-trunk.txt, signature.asc, 
> signature.asc, signature.asc
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> Seems like including a dead simple seed provider that can fetch from a URL, 1 
> line per seed, would be useful.



--
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-19477) Do not go to disk to get HintsStore.getTotalFileSize

2024-03-22 Thread Stefan Miklosovic (Jira)


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

Stefan Miklosovic commented on CASSANDRA-19477:
---

[CASSANDRA-19477-5.0|https://github.com/instaclustr/cassandra/tree/CASSANDRA-19477-5.0]
{noformat}
java17_pre-commit_tests 
  ✓ j17_build3m 49s
  ✓ j17_cqlsh_dtests_py3116m 4s
  ✓ j17_cqlsh_dtests_py311_vnode 6m 13s
  ✓ j17_cqlsh_dtests_py38 6m 3s
  ✓ j17_cqlsh_dtests_py38_vnode  6m 20s
  ✓ j17_cqlshlib_cython_tests7m 25s
  ✓ j17_cqlshlib_tests   6m 27s
  ✓ j17_dtests   32m 3s
  ✓ j17_jvm_dtests  23m 21s
  ✓ j17_jvm_dtests_latest_vnode  14m 2s
  ✓ j17_jvm_dtests_latest_vnode_repeat  40m 42s
  ✓ j17_jvm_dtests_repeat   39m 52s
  ✓ j17_unit_tests  17m 44s
  ✓ j17_unit_tests_repeat2m 28s
  ✓ j17_utests_latest   15m 45s
  ✓ j17_utests_latest_repeat 2m 34s
  ✓ j17_utests_oa_repeat 0m 13s
  ✕ j17_dtests_latest   34m 34s
  configuration_test.TestConfiguration test_change_durable_writes
  ✕ j17_dtests_vnode 32m 7s
  ✕ j17_utests_oa   15m 57s
  org.apache.cassandra.net.ConnectionTest testTimeout
java17_separate_tests
java11_pre-commit_tests 
  ✓ j11_build6m 59s
  ✓ j11_cqlsh_dtests_py311   9m 42s
  ✓ j11_cqlsh_dtests_py311_vnode 7m 41s
  ✓ j11_cqlsh_dtests_py388m 20s
  ✓ j11_cqlsh_dtests_py38_vnode  7m 59s
  ✓ j11_cqlshlib_cython_tests   11m 40s
  ✓ j11_cqlshlib_tests   9m 16s
  ✓ j11_dtests  38m 39s
  ✓ j11_dtests_vnode35m 20s
  ✓ j11_jvm_dtests  23m 29s
  ✓ j11_jvm_dtests_latest_vnode 14m 40s
  ✓ j11_jvm_dtests_latest_vnode_repeat  47m 40s
  ✓ j11_jvm_dtests_repeat   41m 59s
  ✓ j11_simulator_dtests 5m 54s
  ✓ j11_unit_tests  19m 38s
  ✓ j11_unit_tests_repeat3m 26s
  ✓ j11_utests_latest   21m 24s
  ✓ j11_utests_latest_repeat 3m 46s
  ✓ j11_utests_oa   21m 15s
  ✓ j11_utests_oa_repeat 8m 28s
  ✓ j11_utests_system_keyspace_directory16m 17s
  ✓ j11_utests_system_keyspace_directory_repeat  3m 58s
  ✓ j17_cqlsh_dtests_py311   5m 56s
  ✓ j17_cqlsh_dtests_py311_vnode 6m 46s
  ✓ j17_cqlsh_dtests_py38 6m 9s
  ✓ j17_cqlsh_dtests_py38_vnode  6m 55s
  ✓ j17_cqlshlib_cython_tests7m 32s
  ✓ j17_cqlshlib_tests   6m 27s
  ✓ j17_dtests  33m 37s
  ✓ j17_dtests_vnode32m 31s
  ✓ j17_jvm_dtests  23m 16s
  ✓ j17_jvm_dtests_latest_vnode 13m 28s
  ✓ j17_jvm_dtests_latest_vnode_repeat  40m 42s
  ✓ j17_jvm_dtests_repeat   41m 28s
  ✓ j17_unit_tests  14m 40s
  ✓ j17_unit_tests_repeat0m 16s
  ✓ j17_utests_latest_repeat 0m 14s
  ✓ j17_utests_oa   15m 51s
  ✓ j17_utests_oa_repeat 7m 58s
  ✕ j11_dtests_latest35m 2s
  configuration_test.TestConfiguration test_change_durable_writes
  ✕ j17_dtests_latest   33m 55s
  configuration_test.TestConfiguration test_change_durable_writes
  ✕ j17_utests_latest   16m 38s
  org.apache.cassandra.cql3.validation.operations.SelectTest 
testCreatingUDFWithSameNameAsBuiltin_PrefersCompatibleArgs
  org.apache.cassandra.cql3.validation.operations.SelectTest 
testCreatingUDFWithSameNameAsBuiltin_FullyQualifiedFunctionNameWorks
java11_separate_tests
{noformat}

[java17_pre-commit_tests|https://app.circleci.com/pipelines/github/instaclustr/cassandra/4063/workflows/15b9eab1-70d5-4490-836a-49cc9169c2aa]
[java17_separate_tests

[jira] [Updated] (CASSANDRA-19484) Add support for providing nvdDatafeedUrl to OWASP

2024-03-22 Thread Ariel Weisberg (Jira)


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

Ariel Weisberg updated CASSANDRA-19484:
---
Reviewers: Berenguer Blasi  (was: Berenguer Blasi, Joshua McKenzie)

> Add support for providing nvdDatafeedUrl to OWASP
> -
>
> Key: CASSANDRA-19484
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19484
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Build
>Reporter: Ariel Weisberg
>Assignee: Ariel Weisberg
>Priority: Normal
> Fix For: 3.0.x, 3.11.x, 4.0.x, 4.1.x, 5.0.x, 5.x
>
>
> This allows you to point to a mirror that is faster and doesn’t require an 
> API key.
> This is kind of painful to make work in {{ant}} because you can't specify the 
> property at all if you want to use the API and I couldn't find a way to get 
> {{ant}} to conditionally supply the property without having a dedicated 
> invocation of the {{dependency-check}} task with/without the parameter 
> {{nvdDataFeedUrl}} specified.
>  



--
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-19448) CommitlogArchiver only has granularity to seconds for restore_point_in_time

2024-03-22 Thread Tiago L. Alves (Jira)


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

Tiago L. Alves commented on CASSANDRA-19448:


I have an even simpler (and more correct) patch for this using 
`DateTimeFormatter`. The first patch would parse both "2024:03:22 18:31:22.1" 
and "2024:03:22 18:31:22.1" as "2024:03:22 18:31:22.001"  which is incorrect. 
I'll provide an updated patch with tests later.

> CommitlogArchiver only has granularity to seconds for restore_point_in_time
> ---
>
> Key: CASSANDRA-19448
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19448
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Commit Log
>Reporter: Jeremy Hanna
>Assignee: Maxwell Guo
>Priority: Normal
> Fix For: 4.0.x, 4.1.x, 5.0.x, 5.x
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Commitlog archiver allows users to backup commitlog files for the purpose of 
> doing point in time restores.  The [configuration 
> file|https://github.com/apache/cassandra/blob/trunk/conf/commitlog_archiving.properties]
>  gives an example of down to the seconds granularity but then asks what 
> whether the timestamps are microseconds or milliseconds - defaulting to 
> microseconds.  Because the [CommitLogArchiver uses a second based date 
> format|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/db/commitlog/CommitLogArchiver.java#L52],
>  if a user specifies to restore at something at a lower granularity like 
> milliseconds or microseconds, that means that the it will truncate everything 
> after the second and restore to that second.  So say you specify a 
> restore_point_in_time like this:
> restore_point_in_time=2024:01:18 17:01:01.623392
> it will silently truncate everything after the 01 seconds.  So effectively to 
> the user, it is missing updates between 01 and 01.623392.
> This appears to be a bug in the intent.  We should allow users to specify 
> down to the millisecond or even microsecond level. If we allow them to 
> specify down to microseconds for the restore point in time, then it may 
> internally need to change from a long.



--
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-19333) Fix decode in VectorCodec

2024-03-22 Thread Ekaterina Dimitrova (Jira)


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

Ekaterina Dimitrova commented on CASSANDRA-19333:
-

2 approvals received in GH. CI was run by [~absurdfarce] 

I force-pushed the branch with updated commit message as per Slack conversation.

Ready to commit. Thank you

> Fix decode in VectorCodec
> -
>
> Key: CASSANDRA-19333
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19333
> Project: Cassandra
>  Issue Type: Bug
>  Components: Client/java-driver
>Reporter: Ekaterina Dimitrova
>Assignee: Ekaterina Dimitrova
>Priority: Normal
>
> We made a server-side fix in CASSANDRA-19167 for VectorCodec.
> This needs to be checked also in the driver [here 
> |https://github.com/apache/cassandra-java-driver/blob/8d5849cb38995b312f29314d18256c0c3e94cf07/core/src/main/java/com/datastax/oss/driver/internal/core/type/codec/VectorCodec.java#L130-L139]



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

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



(cassandra-java-driver) branch 4.x updated: Fix data corruption in VectorCodec when using heap buffers

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

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


The following commit(s) were added to refs/heads/4.x by this push:
 new 40a9a49d5 Fix data corruption in VectorCodec when using heap buffers
40a9a49d5 is described below

commit 40a9a49d50fac6abed2a5bb2cc2627e4085a399b
Author: Ekaterina Dimitrova 
AuthorDate: Mon Jan 29 14:07:59 2024 -0500

Fix data corruption in VectorCodec when using heap buffers

patch by Ekaterina Dimitrova; reviewed by Alexandre Dutra and Bret McGuire 
for CASSANDRA-19333
---
 .../oss/driver/internal/core/type/codec/VectorCodec.java   | 14 --
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git 
a/core/src/main/java/com/datastax/oss/driver/internal/core/type/codec/VectorCodec.java
 
b/core/src/main/java/com/datastax/oss/driver/internal/core/type/codec/VectorCodec.java
index 1b663a29d..2c4d2200b 100644
--- 
a/core/src/main/java/com/datastax/oss/driver/internal/core/type/codec/VectorCodec.java
+++ 
b/core/src/main/java/com/datastax/oss/driver/internal/core/type/codec/VectorCodec.java
@@ -127,17 +127,19 @@ public class VectorCodec 
implements TypeCodec rv = new ArrayList(cqlType.getDimensions());
 for (int i = 0; i < cqlType.getDimensions(); ++i) {
-  ByteBuffer slice = bytes.slice();
-  slice.limit(elementSize);
+  // Set the limit for the current element
+  int originalPosition = slice.position();
+  slice.limit(originalPosition + elementSize);
   rv.add(this.subtypeCodec.decode(slice, protocolVersion));
-  bytes.position(bytes.position() + elementSize);
+  // Move to the start of the next element
+  slice.position(originalPosition + elementSize);
+  // Reset the limit to the end of the buffer
+  slice.limit(slice.capacity());
 }
 
-/* Restore the input ByteBuffer to its original state */
-bytes.rewind();
-
 return CqlVector.newInstance(rv);
   }
 


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



Re: [PR] Fix decode in VectorCodec [cassandra-java-driver]

2024-03-22 Thread via GitHub


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


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

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

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


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



[jira] [Commented] (CASSANDRA-19333) Fix decode in VectorCodec

2024-03-22 Thread Bret McGuire (Jira)


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

Bret McGuire commented on CASSANDRA-19333:
--

Committed as 
[40a9a49d50fac6abed2a5bb2cc2627e4085a399b|https://github.com/apache/cassandra-java-driver/commit/40a9a49d50fac6abed2a5bb2cc2627e4085a399b].
  Huge thank you to [~e.dimitrova] for making this happen!

> Fix decode in VectorCodec
> -
>
> Key: CASSANDRA-19333
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19333
> Project: Cassandra
>  Issue Type: Bug
>  Components: Client/java-driver
>Reporter: Ekaterina Dimitrova
>Assignee: Ekaterina Dimitrova
>Priority: Normal
>
> We made a server-side fix in CASSANDRA-19167 for VectorCodec.
> This needs to be checked also in the driver [here 
> |https://github.com/apache/cassandra-java-driver/blob/8d5849cb38995b312f29314d18256c0c3e94cf07/core/src/main/java/com/datastax/oss/driver/internal/core/type/codec/VectorCodec.java#L130-L139]



--
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-19489) Guardrail to warn clients about possible transient incorrect responses for filtering queries against multiple mutable columns

2024-03-22 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19489:

Fix Version/s: 5.0-rc
   5.1

> Guardrail to warn clients about possible transient incorrect responses for 
> filtering queries against multiple mutable columns
> -
>
> Key: CASSANDRA-19489
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19489
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Consistency/Coordination, CQL/Semantics, Messaging/Client
>Reporter: Caleb Rackliffe
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 5.0-rc, 5.1
>
>
> Given we may not have time to fully resolve CASSANDRA-19007 before we release 
> 5.0, it would still be helpful to have, at the very minimum, a client warning 
> for cases where a user filters on two or more mutable (static or regular) 
> columns at consistency levels that require coordinator reconciliation. We may 
> also want the option to fail these queries outright, although that need not 
> be the default.
> The only art involved in this is deciding what we want to say in the 
> warning/error message. It's probably reasonable to mention there that this 
> only happens when we have unrepaired data. It's also worth noting that SAI 
> queries are no longer vulnerable to this after the resolution of 
> CASSANDRA-19018.



--
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-19489) Guardrail to warn clients about possible transient incorrect responses for filtering queries against multiple mutable columns

2024-03-22 Thread Caleb Rackliffe (Jira)
Caleb Rackliffe created CASSANDRA-19489:
---

 Summary: Guardrail to warn clients about possible transient 
incorrect responses for filtering queries against multiple mutable columns
 Key: CASSANDRA-19489
 URL: https://issues.apache.org/jira/browse/CASSANDRA-19489
 Project: Cassandra
  Issue Type: Improvement
  Components: Consistency/Coordination, CQL/Semantics, Messaging/Client
Reporter: Caleb Rackliffe
Assignee: Caleb Rackliffe


Given we may not have time to fully resolve CASSANDRA-19007 before we release 
5.0, it would still be helpful to have, at the very minimum, a client warning 
for cases where a user filters on two or more mutable (static or regular) 
columns at consistency levels that require coordinator reconciliation. We may 
also want the option to fail these queries outright, although that need not be 
the default.

The only art involved in this is deciding what we want to say in the 
warning/error message. It's probably reasonable to mention there that this only 
happens when we have unrepaired data. It's also worth noting that SAI queries 
are no longer vulnerable to this after the resolution of CASSANDRA-19018.



--
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-19007) Queries with multi-column replica-side filtering can miss rows

2024-03-22 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe commented on CASSANDRA-19007:
-

Just created CASSANDRA-19489 to track this.

> Queries with multi-column replica-side filtering can miss rows
> --
>
> Key: CASSANDRA-19007
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19007
> Project: Cassandra
>  Issue Type: Bug
>  Components: Consistency/Coordination
>Reporter: Andres de la Peña
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 5.0.x, 5.x
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> {{SELECT}} queries with multi-column replica-side filtering can miss rows if 
> the filtered columns are spread across out-of-sync replicas. This dtest 
> reproduces the issue:
> {code:java}
> @Test
> public void testMultiColumnReplicaSideFiltering() throws IOException
> {
> try (Cluster cluster = init(Cluster.build().withNodes(2).start()))
> {
> cluster.schemaChange(withKeyspace("CREATE TABLE %s.t (k int PRIMARY 
> KEY, a int, b int)"));
> // insert a split row
> cluster.get(1).executeInternal(withKeyspace("INSERT INTO %s.t(k, a) 
> VALUES (0, 1)"));
> cluster.get(2).executeInternal(withKeyspace("INSERT INTO %s.t(k, b) 
> VALUES (0, 2)"));
> String select = withKeyspace("SELECT * FROM %s.t WHERE a = 1 AND b = 
> 2 ALLOW FILTERING");
> Object[][] initialRows = cluster.coordinator(1).execute(select, ALL);
> assertRows(initialRows, row(0, 1, 2)); // not found!!
> }
> }
> {code}
> This edge case affects queries using {{ALLOW FILTERING}} or any index 
> implementation.
> It affects all branches since multi-column replica-side filtering queries 
> were introduced, long before 3.0.
> The protection mechanism added by CASSANDRA-8272/8273 won't deal with this 
> case, since it only solves single-column conflicts where stale rows could 
> resurrect. This bug however doesn't resurrect data, it can only miss rows 
> while the replicas are out-of-sync.



--
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-19489) Guardrail to warn clients about possible transient incorrect responses for filtering queries against multiple mutable columns

2024-03-22 Thread Caleb Rackliffe (Jira)


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

Caleb Rackliffe updated CASSANDRA-19489:

Change Category: Operability
 Complexity: Low Hanging Fruit
 Status: Open  (was: Triage Needed)

> Guardrail to warn clients about possible transient incorrect responses for 
> filtering queries against multiple mutable columns
> -
>
> Key: CASSANDRA-19489
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19489
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Consistency/Coordination, CQL/Semantics, Messaging/Client
>Reporter: Caleb Rackliffe
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 5.0-rc, 5.1
>
>
> Given we may not have time to fully resolve CASSANDRA-19007 before we release 
> 5.0, it would still be helpful to have, at the very minimum, a client warning 
> for cases where a user filters on two or more mutable (static or regular) 
> columns at consistency levels that require coordinator reconciliation. We may 
> also want the option to fail these queries outright, although that need not 
> be the default.
> The only art involved in this is deciding what we want to say in the 
> warning/error message. It's probably reasonable to mention there that this 
> only happens when we have unrepaired data. It's also worth noting that SAI 
> queries are no longer vulnerable to this after the resolution of 
> CASSANDRA-19018.



--
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-19490) Add foundation for independent parsing of junit based output for CI reporting to cassandra-builds

2024-03-22 Thread Josh McKenzie (Jira)
Josh McKenzie created CASSANDRA-19490:
-

 Summary: Add foundation for independent parsing of junit based 
output for CI reporting to cassandra-builds
 Key: CASSANDRA-19490
 URL: https://issues.apache.org/jira/browse/CASSANDRA-19490
 Project: Cassandra
  Issue Type: New Feature
  Components: CI
Reporter: Josh McKenzie
Assignee: Josh McKenzie


PR attached.

For doing CI ourselves, it's useful to have a single pane of glass report where 
you have a summary of results for all your suites as well as inlined failures. 
This should be agnostic to any xunit based output; so long as we co-locate the 
xunit data in directories adjacent to one another, the script in the PR will 
generate an in-memory representation of the xunit results as well as inline 
failures to an existing .html file.

The contents will need to be tweaked a bit to generate the top level branch + 
sha + checkstyle + summaries information, but the vast majority of that is 
already parsed and easily available within the script and can be extended 
pretty trivially.

Opening up a pr to pull this into 
[cassandra-builds](https://github.com/apache/cassandra-builds) since [~mck] is 
actively working on that and needs these primitives. I'd expect the contents in 
ci_parser to be massaged to become a more finalized, full solution before we 
start to use it but no harm in the incremental merge.



--
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-19491) decommissioned nodes show as UNREACHABLE in describecluster afterward

2024-03-22 Thread Brandon Williams (Jira)


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

Brandon Williams updated CASSANDRA-19491:
-
 Bug Category: Parent values: Correctness(12982)
   Complexity: Normal
  Component/s: Cluster/Membership
Discovered By: User Report
Fix Version/s: 4.1.x
   5.0-rc
 Severity: Normal
   Status: Open  (was: Triage Needed)

Eric's cluster is on 4.1, I have repro'd against 5.0

> decommissioned nodes show as UNREACHABLE in describecluster afterward
> -
>
> Key: CASSANDRA-19491
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19491
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Membership
>Reporter: Brandon Williams
>Priority: Normal
> Fix For: 4.1.x, 5.0-rc
>
>
> [~urandom] noticed this happening in his cluster and I have been able to 
> reproduce with a modified dtest.



--
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-19491) decommissioned nodes show as UNREACHABLE in describecluster afterward

2024-03-22 Thread Brandon Williams (Jira)
Brandon Williams created CASSANDRA-19491:


 Summary: decommissioned nodes show as UNREACHABLE in 
describecluster afterward
 Key: CASSANDRA-19491
 URL: https://issues.apache.org/jira/browse/CASSANDRA-19491
 Project: Cassandra
  Issue Type: Bug
Reporter: Brandon Williams


[~urandom] noticed this happening in his cluster and I have been able to 
reproduce with a modified dtest.



--
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-19491) decommissioned nodes show as UNREACHABLE in describecluster afterward

2024-03-22 Thread Brandon Williams (Jira)


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

Brandon Williams commented on CASSANDRA-19491:
--

My dtest branch is 
[here|https://github.com/driftx/cassandra-dtest/tree/CASSANDRA-19491] that 
reproduces.

> decommissioned nodes show as UNREACHABLE in describecluster afterward
> -
>
> Key: CASSANDRA-19491
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19491
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Membership
>Reporter: Brandon Williams
>Priority: Normal
> Fix For: 4.1.x, 5.0-rc
>
>
> [~urandom] noticed this happening in his cluster and I have been able to 
> reproduce with a modified dtest.



--
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-19491) decommissioned nodes show as UNREACHABLE in describecluster afterward

2024-03-22 Thread Brandon Williams (Jira)


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

Brandon Williams updated CASSANDRA-19491:
-
Fix Version/s: 5.0.x
   (was: 5.0-rc)

> decommissioned nodes show as UNREACHABLE in describecluster afterward
> -
>
> Key: CASSANDRA-19491
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19491
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Membership
>Reporter: Brandon Williams
>Priority: Normal
> Fix For: 4.1.x, 5.0.x
>
>
> [~urandom] noticed this happening in his cluster and I have been able to 
> reproduce with a modified dtest.



--
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-19491) decommissioned nodes show as UNREACHABLE in describecluster afterward

2024-03-22 Thread Brandon Williams (Jira)


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

Brandon Williams updated CASSANDRA-19491:
-
Fix Version/s: 4.0.x

> decommissioned nodes show as UNREACHABLE in describecluster afterward
> -
>
> Key: CASSANDRA-19491
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19491
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Membership
>Reporter: Brandon Williams
>Priority: Normal
> Fix For: 4.0.x, 4.1.x, 5.0.x
>
>
> [~urandom] noticed this happening in his cluster and I have been able to 
> reproduce with a modified dtest.



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

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



(cassandra) branch trunk updated (c50718fd3d -> ee75a0d95e)

2024-03-22 Thread aweisberg
This is an automated email from the ASF dual-hosted git repository.

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


from c50718fd3d Merge branch 'cassandra-5.0' into trunk
 add 38eb339557 Add support for providing nvdDatafeedUrl to OWASP
 add de2a965a18 Merge branch 'cassandra-3.0' into cassandra-3.11
 add 5dd9213149 Merge branch 'cassandra-3.11' into cassandra-4.0
 add 96692d7206 Merge branch 'cassandra-4.0' into cassandra-4.1
 add fdfc0019de Merge branch 'cassandra-4.1' into cassandra-5.0
 new ee75a0d95e Merge branch 'cassandra-5.0' into trunk

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


Summary of changes:
 .build/build-owasp.xml | 7 ++-
 1 file changed, 6 insertions(+), 1 deletion(-)


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



(cassandra) branch cassandra-3.0 updated (98eea87aa5 -> 38eb339557)

2024-03-22 Thread aweisberg
This is an automated email from the ASF dual-hosted git repository.

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


from 98eea87aa5 Fix SCM URL links
 add 38eb339557 Add support for providing nvdDatafeedUrl to OWASP

No new revisions were added by this update.

Summary of changes:
 .build/build-owasp.xml | 10 --
 1 file changed, 8 insertions(+), 2 deletions(-)


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



(cassandra) branch cassandra-4.0 updated (a2fbb17867 -> 5dd9213149)

2024-03-22 Thread aweisberg
This is an automated email from the ASF dual-hosted git repository.

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


from a2fbb17867 Push LocalSessions info logs to debug
 add 38eb339557 Add support for providing nvdDatafeedUrl to OWASP
 add de2a965a18 Merge branch 'cassandra-3.0' into cassandra-3.11
 add 5dd9213149 Merge branch 'cassandra-3.11' into cassandra-4.0

No new revisions were added by this update.

Summary of changes:
 .build/build-owasp.xml | 7 ++-
 1 file changed, 6 insertions(+), 1 deletion(-)


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



(cassandra) branch cassandra-3.11 updated (099fdf2673 -> de2a965a18)

2024-03-22 Thread aweisberg
This is an automated email from the ASF dual-hosted git repository.

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


from 099fdf2673 Move ClientWarn.State#warnings to a thread-safe list
 add 38eb339557 Add support for providing nvdDatafeedUrl to OWASP
 add de2a965a18 Merge branch 'cassandra-3.0' into cassandra-3.11

No new revisions were added by this update.

Summary of changes:
 .build/build-owasp.xml | 7 ++-
 1 file changed, 6 insertions(+), 1 deletion(-)


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



[jira] [Updated] (CASSANDRA-19484) Add support for providing nvdDatafeedUrl to OWASP

2024-03-22 Thread Ariel Weisberg (Jira)


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

Ariel Weisberg updated CASSANDRA-19484:
---
Source Control Link: 
https://github.com/apache/cassandra/commit/c8fbb97ab04142f9b49fe86017b808ff3e35c10a

> Add support for providing nvdDatafeedUrl to OWASP
> -
>
> Key: CASSANDRA-19484
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19484
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Build
>Reporter: Ariel Weisberg
>Assignee: Ariel Weisberg
>Priority: Normal
> Fix For: 3.0.x, 3.11.x, 4.0.x, 4.1.x, 5.0.x, 5.x
>
>
> This allows you to point to a mirror that is faster and doesn’t require an 
> API key.
> This is kind of painful to make work in {{ant}} because you can't specify the 
> property at all if you want to use the API and I couldn't find a way to get 
> {{ant}} to conditionally supply the property without having a dedicated 
> invocation of the {{dependency-check}} task with/without the parameter 
> {{nvdDataFeedUrl}} specified.
>  



--
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-19484) Add support for providing nvdDatafeedUrl to OWASP

2024-03-22 Thread Ariel Weisberg (Jira)


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

Ariel Weisberg updated CASSANDRA-19484:
---
Status: Ready to Commit  (was: Review In Progress)

It's clean on all the branches. 

> Add support for providing nvdDatafeedUrl to OWASP
> -
>
> Key: CASSANDRA-19484
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19484
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Build
>Reporter: Ariel Weisberg
>Assignee: Ariel Weisberg
>Priority: Normal
> Fix For: 3.0.x, 3.11.x, 4.0.x, 4.1.x, 5.0.x, 5.x
>
>
> This allows you to point to a mirror that is faster and doesn’t require an 
> API key.
> This is kind of painful to make work in {{ant}} because you can't specify the 
> property at all if you want to use the API and I couldn't find a way to get 
> {{ant}} to conditionally supply the property without having a dedicated 
> invocation of the {{dependency-check}} task with/without the parameter 
> {{nvdDataFeedUrl}} specified.
>  



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

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



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

2024-03-22 Thread aweisberg
This is an automated email from the ASF dual-hosted git repository.

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

commit ee75a0d95e6d7103a8d1874b5a1134f6e2816d56
Merge: c50718fd3d fdfc0019de
Author: Ariel Weisberg 
AuthorDate: Fri Mar 22 16:50:40 2024 -0400

Merge branch 'cassandra-5.0' into trunk

 .build/build-owasp.xml | 7 ++-
 1 file changed, 6 insertions(+), 1 deletion(-)


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



(cassandra) branch cassandra-5.0 updated (46acaf22e6 -> fdfc0019de)

2024-03-22 Thread aweisberg
This is an automated email from the ASF dual-hosted git repository.

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


from 46acaf22e6 Ensure SAI indexes empty byte buffers for types that allow 
them as a valid input
 add 38eb339557 Add support for providing nvdDatafeedUrl to OWASP
 add de2a965a18 Merge branch 'cassandra-3.0' into cassandra-3.11
 add 5dd9213149 Merge branch 'cassandra-3.11' into cassandra-4.0
 add 96692d7206 Merge branch 'cassandra-4.0' into cassandra-4.1
 add fdfc0019de Merge branch 'cassandra-4.1' into cassandra-5.0

No new revisions were added by this update.

Summary of changes:
 .build/build-owasp.xml | 7 ++-
 1 file changed, 6 insertions(+), 1 deletion(-)


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



(cassandra) branch cassandra-4.1 updated (e4ae1f3a4f -> 96692d7206)

2024-03-22 Thread aweisberg
This is an automated email from the ASF dual-hosted git repository.

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


from e4ae1f3a4f Fix system_views.settings to handle array types
 add 38eb339557 Add support for providing nvdDatafeedUrl to OWASP
 add de2a965a18 Merge branch 'cassandra-3.0' into cassandra-3.11
 add 5dd9213149 Merge branch 'cassandra-3.11' into cassandra-4.0
 add 96692d7206 Merge branch 'cassandra-4.0' into cassandra-4.1

No new revisions were added by this update.

Summary of changes:
 .build/build-owasp.xml | 7 ++-
 1 file changed, 6 insertions(+), 1 deletion(-)


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



[jira] [Updated] (CASSANDRA-19484) Add support for providing nvdDatafeedUrl to OWASP

2024-03-22 Thread Ariel Weisberg (Jira)


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

Ariel Weisberg updated CASSANDRA-19484:
---
Status: Review In Progress  (was: Patch Available)

> Add support for providing nvdDatafeedUrl to OWASP
> -
>
> Key: CASSANDRA-19484
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19484
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Build
>Reporter: Ariel Weisberg
>Assignee: Ariel Weisberg
>Priority: Normal
> Fix For: 3.0.x, 3.11.x, 4.0.x, 4.1.x, 5.0.x, 5.x
>
>
> This allows you to point to a mirror that is faster and doesn’t require an 
> API key.
> This is kind of painful to make work in {{ant}} because you can't specify the 
> property at all if you want to use the API and I couldn't find a way to get 
> {{ant}} to conditionally supply the property without having a dedicated 
> invocation of the {{dependency-check}} task with/without the parameter 
> {{nvdDataFeedUrl}} specified.
>  



--
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-19484) Add support for providing nvdDatafeedUrl to OWASP

2024-03-22 Thread Ariel Weisberg (Jira)


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

Ariel Weisberg updated CASSANDRA-19484:
---
Resolution: Fixed
Status: Resolved  (was: Ready to Commit)

> Add support for providing nvdDatafeedUrl to OWASP
> -
>
> Key: CASSANDRA-19484
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19484
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Build
>Reporter: Ariel Weisberg
>Assignee: Ariel Weisberg
>Priority: Normal
> Fix For: 3.0.x, 3.11.x, 4.0.x, 4.1.x, 5.0.x, 5.x
>
>
> This allows you to point to a mirror that is faster and doesn’t require an 
> API key.
> This is kind of painful to make work in {{ant}} because you can't specify the 
> property at all if you want to use the API and I couldn't find a way to get 
> {{ant}} to conditionally supply the property without having a dedicated 
> invocation of the {{dependency-check}} task with/without the parameter 
> {{nvdDataFeedUrl}} specified.
>  



--
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-19484) Add support for providing nvdDatafeedUrl to OWASP

2024-03-22 Thread Ariel Weisberg (Jira)


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

Ariel Weisberg updated CASSANDRA-19484:
---
Fix Version/s: 3.0.30
   3.11.17
   4.0.13
   4.1.5
   5.0
   5.1
   (was: 3.0.x)
   (was: 3.11.x)
   (was: 5.x)
   (was: 4.0.x)
   (was: 4.1.x)
   (was: 5.0.x)

> Add support for providing nvdDatafeedUrl to OWASP
> -
>
> Key: CASSANDRA-19484
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19484
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Build
>Reporter: Ariel Weisberg
>Assignee: Ariel Weisberg
>Priority: Normal
> Fix For: 3.0.30, 3.11.17, 4.0.13, 4.1.5, 5.0, 5.1
>
>
> This allows you to point to a mirror that is faster and doesn’t require an 
> API key.
> This is kind of painful to make work in {{ant}} because you can't specify the 
> property at all if you want to use the API and I couldn't find a way to get 
> {{ant}} to conditionally supply the property without having a dedicated 
> invocation of the {{dependency-check}} task with/without the parameter 
> {{nvdDataFeedUrl}} specified.
>  



--
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-19491) decommissioned nodes show as UNREACHABLE in describecluster afterward

2024-03-22 Thread Brandon Williams (Jira)


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

Brandon Williams updated CASSANDRA-19491:
-
Resolution: Invalid
Status: Resolved  (was: Open)

I think this is normal until a state is evicted, since this happens on 3.0/3.11 
too.

> decommissioned nodes show as UNREACHABLE in describecluster afterward
> -
>
> Key: CASSANDRA-19491
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19491
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Membership
>Reporter: Brandon Williams
>Priority: Normal
> Fix For: 4.0.x, 4.1.x, 5.0.x
>
>
> [~urandom] noticed this happening in his cluster and I have been able to 
> reproduce with a modified dtest.



--
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-19477) Do not go to disk to get HintsStore.getTotalFileSize

2024-03-22 Thread Jon Haddad (Jira)


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

Jon Haddad commented on CASSANDRA-19477:


Awesome.  I'll fire up a test with the 4.1 branch, since that's what I tested 
before, and post my findings.

> Do not go to disk to get HintsStore.getTotalFileSize
> 
>
> Key: CASSANDRA-19477
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19477
> Project: Cassandra
>  Issue Type: Bug
>  Components: Consistency/Hints
>Reporter: Jon Haddad
>Assignee: Stefan Miklosovic
>Priority: Normal
> Fix For: 4.1.x, 5.0-rc, 5.x
>
> Attachments: flamegraph.cpu.html
>
>  Time Spent: 4h 10m
>  Remaining Estimate: 0h
>
> When testing a cluster with more requests than it could handle, I noticed 
> significant CPU time (25%) spent in HintsStore.getTotalFileSize.  Here's what 
> I'm seeing from profiling:
> 10% of CPU time spent in HintsDescriptor.fileName which only does this:
>  
> {noformat}
> return String.format("%s-%s-%s.hints", hostId, timestamp, version);{noformat}
> At a bare minimum here we should create this string up front with the host 
> and version and eliminate 2 of the 3 substitutions, but I think it's probably 
> faster to use a StringBuilder and avoid the underlying regular expression 
> altogether.
> 12% of the time is spent in org.apache.cassandra.io.util.File.length.  It 
> looks like this is called once for each hint file on disk for each host we're 
> hinting to.  In the case of an overloaded cluster, this is significant.  It 
> would be better if we were to track the file size in memory for each hint 
> file and reference that rather than go to the filesystem.
> These fairly small changes should make Cassandra more reliable when under 
> load spikes.
> CPU Flame graph attached.
> I only tested this in 4.1 but it looks like this is present up to trunk.
>  



--
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-19418) [Analytics] Report additional bulk analytics job stats for instrumentation

2024-03-22 Thread Yifan Cai (Jira)


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

Yifan Cai commented on CASSANDRA-19418:
---

+1

> [Analytics] Report additional bulk analytics job stats for instrumentation
> --
>
> Key: CASSANDRA-19418
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19418
> Project: Cassandra
>  Issue Type: Task
>  Components: Analytics Library
>Reporter: Arjun Ashok
>Assignee: Arjun Ashok
>Priority: Normal
>  Time Spent: 3h
>  Remaining Estimate: 0h
>
> Currently, the Cassandra bulk analytics library supports a "dialHome" API to 
> publish some initial job metadata, which in its current form, is redirected 
> to a log. The intention behind this is to allow custom implementations that 
> can utilize these summarized stats for instrumentation or reporting of client 
> behavior.
> This task is meant to enhance this API to allow for additional job metadata 
> to be published both at the Spark executor level and at the task levels to 
> gather stats such as "success/failure", "number of rows written/read", 
> "failure reason" etc.



--
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-19448) CommitlogArchiver only has granularity to seconds for restore_point_in_time

2024-03-22 Thread Tiago L. Alves (Jira)


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

Tiago L. Alves commented on CASSANDRA-19448:


I've simplified my original patched (fixing millisecond parsing), removed the 
warnings logic that was wrong, and added a test. I can prepare a patch for 
previous Cassandra versions if this change is accepted.

> CommitlogArchiver only has granularity to seconds for restore_point_in_time
> ---
>
> Key: CASSANDRA-19448
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19448
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Commit Log
>Reporter: Jeremy Hanna
>Assignee: Maxwell Guo
>Priority: Normal
> Fix For: 4.0.x, 4.1.x, 5.0.x, 5.x
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Commitlog archiver allows users to backup commitlog files for the purpose of 
> doing point in time restores.  The [configuration 
> file|https://github.com/apache/cassandra/blob/trunk/conf/commitlog_archiving.properties]
>  gives an example of down to the seconds granularity but then asks what 
> whether the timestamps are microseconds or milliseconds - defaulting to 
> microseconds.  Because the [CommitLogArchiver uses a second based date 
> format|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/db/commitlog/CommitLogArchiver.java#L52],
>  if a user specifies to restore at something at a lower granularity like 
> milliseconds or microseconds, that means that the it will truncate everything 
> after the second and restore to that second.  So say you specify a 
> restore_point_in_time like this:
> restore_point_in_time=2024:01:18 17:01:01.623392
> it will silently truncate everything after the 01 seconds.  So effectively to 
> the user, it is missing updates between 01 and 01.623392.
> This appears to be a bug in the intent.  We should allow users to specify 
> down to the millisecond or even microsecond level. If we allow them to 
> specify down to microseconds for the restore point in time, then it may 
> internally need to change from a long.



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

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



(cassandra-analytics) branch trunk updated: CASSANDRA-19418 - Changes to report additional bulk analytics job stats for instrumentation (#41)

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

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


The following commit(s) were added to refs/heads/trunk by this push:
 new 164243e  CASSANDRA-19418  - Changes to report additional bulk 
analytics job stats for instrumentation (#41)
164243e is described below

commit 164243e78f1557a34bc699ebc716b532781d6422
Author: Arjun Ashok 
AuthorDate: Fri Mar 22 16:22:44 2024 -0700

CASSANDRA-19418  - Changes to report additional bulk analytics job stats 
for instrumentation (#41)

Patch by Arjun Ashok; Reviewed by Doug Rohrer, Yifan Cai, Francisco 
Guerrero for CASSANDRA-19418
---
 CHANGES.txt|  1 +
 .../spark/bulkwriter/BulkWriterContext.java|  4 ++
 .../bulkwriter/CassandraBulkSourceRelation.java| 84 +++---
 .../bulkwriter/CassandraBulkWriterContext.java | 45 
 .../cassandra/spark/bulkwriter/RecordWriter.java   | 13 ++--
 .../cassandra/spark/bulkwriter/RingInstance.java   | 28 
 .../cassandra/spark/bulkwriter/SSTableWriter.java  | 11 +++
 .../cassandra/spark/bulkwriter/StreamResult.java   | 20 --
 .../cassandra/spark/bulkwriter/StreamSession.java  | 14 +++-
 .../cassandra/spark/bulkwriter/WriteResult.java| 62 
 .../stats/JobStatsPublisher.java}  | 26 ---
 .../stats/LogStatsPublisher.java}  | 29 
 .../spark/bulkwriter/MockBulkWriterContext.java| 15 +++-
 .../spark/bulkwriter/RecordWriterTest.java |  6 +-
 .../bulkwriter/RingInstanceSerializationTest.java  | 22 +-
 15 files changed, 295 insertions(+), 85 deletions(-)

diff --git a/CHANGES.txt b/CHANGES.txt
index 6004ee3..2c6d0ae 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 1.0.0
+ * Report additional bulk analytics job stats for instrumentation 
(CASSANDRA-19418)
  * Add certificate expiry check to start up validations done in Cassandra 
Analytics library (CASSANDRA-19424)
  * Use constant reference time during bulk read process (CASSANDRA-19452)
  * Update access of ClearSnapshotStrategy (CASSANDRA-19442)
diff --git 
a/cassandra-analytics-core/src/main/java/org/apache/cassandra/spark/bulkwriter/BulkWriterContext.java
 
b/cassandra-analytics-core/src/main/java/org/apache/cassandra/spark/bulkwriter/BulkWriterContext.java
index e3b2421..10928d4 100644
--- 
a/cassandra-analytics-core/src/main/java/org/apache/cassandra/spark/bulkwriter/BulkWriterContext.java
+++ 
b/cassandra-analytics-core/src/main/java/org/apache/cassandra/spark/bulkwriter/BulkWriterContext.java
@@ -21,12 +21,16 @@ package org.apache.cassandra.spark.bulkwriter;
 
 import java.io.Serializable;
 
+import org.apache.cassandra.spark.common.stats.JobStatsPublisher;
+
 public interface BulkWriterContext extends Serializable
 {
 ClusterInfo cluster();
 
 JobInfo job();
 
+JobStatsPublisher jobStats();
+
 SchemaInfo schema();
 
 DataTransferApi transfer();
diff --git 
a/cassandra-analytics-core/src/main/java/org/apache/cassandra/spark/bulkwriter/CassandraBulkSourceRelation.java
 
b/cassandra-analytics-core/src/main/java/org/apache/cassandra/spark/bulkwriter/CassandraBulkSourceRelation.java
index 520fa2c..bba5a31 100644
--- 
a/cassandra-analytics-core/src/main/java/org/apache/cassandra/spark/bulkwriter/CassandraBulkSourceRelation.java
+++ 
b/cassandra-analytics-core/src/main/java/org/apache/cassandra/spark/bulkwriter/CassandraBulkSourceRelation.java
@@ -19,14 +19,20 @@
 
 package org.apache.cassandra.spark.bulkwriter;
 
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
 import java.util.Iterator;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import org.apache.spark.api.java.JavaPairRDD;
 import org.apache.spark.api.java.JavaSparkContext;
-import org.apache.spark.api.java.function.VoidFunction;
+import org.apache.spark.api.java.function.FlatMapFunction;
 import org.apache.spark.broadcast.Broadcast;
 import org.apache.spark.sql.Dataset;
 import org.apache.spark.sql.Row;
@@ -46,6 +52,7 @@ public class CassandraBulkSourceRelation extends BaseRelation 
implements Inserta
 private final SQLContext sqlContext;
 private final JavaSparkContext sparkContext;
 private final Broadcast broadcastContext;
+private long startTimeNanos;
 
 @SuppressWarnings("RedundantTypeArguments")
 public CassandraBulkSourceRelation(BulkWriterContext writerContext, 
SQLContext sqlContext)
@@ -87,6 +94,7 @@ public class CassandraBulkSourceRelation extends BaseRelation 
implements Inserta
 @Override
 public void insert(@NotNull Dataset data, boolean overwrite)
 {
+this.startTimeNanos = System.nanoTime();
 if (overwrite)
 {
 throw new LoadNotSupportedException("Overwr

Re: [PR] CASSANDRA-19418 - Changes to report additional bulk analytics job stats for instrumentation [cassandra-analytics]

2024-03-22 Thread via GitHub


frankgh merged PR #41:
URL: https://github.com/apache/cassandra-analytics/pull/41


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

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

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


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



[jira] [Updated] (CASSANDRA-19418) [Analytics] Report additional bulk analytics job stats for instrumentation

2024-03-22 Thread Francisco Guerrero (Jira)


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

Francisco Guerrero updated CASSANDRA-19418:
---
  Fix Version/s: NA
Source Control Link: 
https://github.com/apache/cassandra-analytics/commit/164243e78f1557a34bc699ebc716b532781d6422
 Resolution: Fixed
 Status: Resolved  (was: Ready to Commit)

> [Analytics] Report additional bulk analytics job stats for instrumentation
> --
>
> Key: CASSANDRA-19418
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19418
> Project: Cassandra
>  Issue Type: Task
>  Components: Analytics Library
>Reporter: Arjun Ashok
>Assignee: Arjun Ashok
>Priority: Normal
> Fix For: NA
>
>  Time Spent: 3h 10m
>  Remaining Estimate: 0h
>
> Currently, the Cassandra bulk analytics library supports a "dialHome" API to 
> publish some initial job metadata, which in its current form, is redirected 
> to a log. The intention behind this is to allow custom implementations that 
> can utilize these summarized stats for instrumentation or reporting of client 
> behavior.
> This task is meant to enhance this API to allow for additional job metadata 
> to be published both at the Spark executor level and at the task levels to 
> gather stats such as "success/failure", "number of rows written/read", 
> "failure reason" etc.



--
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-19418) [Analytics] Report additional bulk analytics job stats for instrumentation

2024-03-22 Thread Francisco Guerrero (Jira)


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

Francisco Guerrero commented on CASSANDRA-19418:


Latest CI for reference: 
https://app.circleci.com/pipelines/github/arjunashok/cassandra-analytics/82/workflows/e4bd195d-042c-4b94-b6d6-67a40c371aee

> [Analytics] Report additional bulk analytics job stats for instrumentation
> --
>
> Key: CASSANDRA-19418
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19418
> Project: Cassandra
>  Issue Type: Task
>  Components: Analytics Library
>Reporter: Arjun Ashok
>Assignee: Arjun Ashok
>Priority: Normal
> Fix For: NA
>
>  Time Spent: 3h 10m
>  Remaining Estimate: 0h
>
> Currently, the Cassandra bulk analytics library supports a "dialHome" API to 
> publish some initial job metadata, which in its current form, is redirected 
> to a log. The intention behind this is to allow custom implementations that 
> can utilize these summarized stats for instrumentation or reporting of client 
> behavior.
> This task is meant to enhance this API to allow for additional job metadata 
> to be published both at the Spark executor level and at the task levels to 
> gather stats such as "success/failure", "number of rows written/read", 
> "failure reason" etc.



--
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-19418) [Analytics] Report additional bulk analytics job stats for instrumentation

2024-03-22 Thread Francisco Guerrero (Jira)


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

Francisco Guerrero updated CASSANDRA-19418:
---
Status: Ready to Commit  (was: Review In Progress)

> [Analytics] Report additional bulk analytics job stats for instrumentation
> --
>
> Key: CASSANDRA-19418
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19418
> Project: Cassandra
>  Issue Type: Task
>  Components: Analytics Library
>Reporter: Arjun Ashok
>Assignee: Arjun Ashok
>Priority: Normal
>  Time Spent: 3h 10m
>  Remaining Estimate: 0h
>
> Currently, the Cassandra bulk analytics library supports a "dialHome" API to 
> publish some initial job metadata, which in its current form, is redirected 
> to a log. The intention behind this is to allow custom implementations that 
> can utilize these summarized stats for instrumentation or reporting of client 
> behavior.
> This task is meant to enhance this API to allow for additional job metadata 
> to be published both at the Spark executor level and at the task levels to 
> gather stats such as "success/failure", "number of rows written/read", 
> "failure reason" etc.



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

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



[jira] [Updated] (CASSANDRASC-111) Improve observability in Sidecar

2024-03-22 Thread Francisco Guerrero (Jira)


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

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

>  Improve observability in Sidecar
> -
>
> Key: CASSANDRASC-111
> URL: https://issues.apache.org/jira/browse/CASSANDRASC-111
> Project: Sidecar for Apache Cassandra
>  Issue Type: Task
>  Components: Rest API
>Reporter: Saranya Krishnakumar
>Assignee: Saranya Krishnakumar
>Priority: Normal
>  Labels: pull-request-available
>
> Currently we capture minimal metrics in Sidecar, through this patch we want 
> to improve observability in Sidecar.
> For this we want to record more metrics in Sidecar with Dropwizard. Introduce 
> setup changes needed for capturing sidecar metrics through Dropwizard. 
> Some of the metric kinds we will capture through this patch are, HTTP metrics 
> like number of requests created per route, response time taken endpoint wise. 
> Capture metrics per Cassandra instance maintained by Sidecar, such as, 
> instance specific restore metrics, instance specific stream and upload 
> metrics. We will also turn on registering, server route metrics emitted by 
> Vert.x.



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

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



[jira] [Updated] (CASSANDRASC-111) Improve observability in Sidecar

2024-03-22 Thread Francisco Guerrero (Jira)


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

Francisco Guerrero updated CASSANDRASC-111:
---
Status: Review In Progress  (was: Patch Available)

>  Improve observability in Sidecar
> -
>
> Key: CASSANDRASC-111
> URL: https://issues.apache.org/jira/browse/CASSANDRASC-111
> Project: Sidecar for Apache Cassandra
>  Issue Type: Task
>  Components: Rest API
>Reporter: Saranya Krishnakumar
>Assignee: Saranya Krishnakumar
>Priority: Normal
>  Labels: pull-request-available
>
> Currently we capture minimal metrics in Sidecar, through this patch we want 
> to improve observability in Sidecar.
> For this we want to record more metrics in Sidecar with Dropwizard. Introduce 
> setup changes needed for capturing sidecar metrics through Dropwizard. 
> Some of the metric kinds we will capture through this patch are, HTTP metrics 
> like number of requests created per route, response time taken endpoint wise. 
> Capture metrics per Cassandra instance maintained by Sidecar, such as, 
> instance specific restore metrics, instance specific stream and upload 
> metrics. We will also turn on registering, server route metrics emitted by 
> Vert.x.



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

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



[jira] [Commented] (CASSANDRASC-111) Improve observability in Sidecar

2024-03-22 Thread Yifan Cai (Jira)


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

Yifan Cai commented on CASSANDRASC-111:
---

+1

>  Improve observability in Sidecar
> -
>
> Key: CASSANDRASC-111
> URL: https://issues.apache.org/jira/browse/CASSANDRASC-111
> Project: Sidecar for Apache Cassandra
>  Issue Type: Task
>  Components: Rest API
>Reporter: Saranya Krishnakumar
>Assignee: Saranya Krishnakumar
>Priority: Normal
>  Labels: pull-request-available
>
> Currently we capture minimal metrics in Sidecar, through this patch we want 
> to improve observability in Sidecar.
> For this we want to record more metrics in Sidecar with Dropwizard. Introduce 
> setup changes needed for capturing sidecar metrics through Dropwizard. 
> Some of the metric kinds we will capture through this patch are, HTTP metrics 
> like number of requests created per route, response time taken endpoint wise. 
> Capture metrics per Cassandra instance maintained by Sidecar, such as, 
> instance specific restore metrics, instance specific stream and upload 
> metrics. We will also turn on registering, server route metrics emitted by 
> Vert.x.



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

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



[jira] [Commented] (CASSANDRASC-111) Improve observability in Sidecar

2024-03-22 Thread Francisco Guerrero (Jira)


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

Francisco Guerrero commented on CASSANDRASC-111:


+1  Great contribution?

>  Improve observability in Sidecar
> -
>
> Key: CASSANDRASC-111
> URL: https://issues.apache.org/jira/browse/CASSANDRASC-111
> Project: Sidecar for Apache Cassandra
>  Issue Type: Task
>  Components: Rest API
>Reporter: Saranya Krishnakumar
>Assignee: Saranya Krishnakumar
>Priority: Normal
>  Labels: pull-request-available
>
> Currently we capture minimal metrics in Sidecar, through this patch we want 
> to improve observability in Sidecar.
> For this we want to record more metrics in Sidecar with Dropwizard. Introduce 
> setup changes needed for capturing sidecar metrics through Dropwizard. 
> Some of the metric kinds we will capture through this patch are, HTTP metrics 
> like number of requests created per route, response time taken endpoint wise. 
> Capture metrics per Cassandra instance maintained by Sidecar, such as, 
> instance specific restore metrics, instance specific stream and upload 
> metrics. We will also turn on registering, server route metrics emitted by 
> Vert.x.



--
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] (CASSANDRASC-111) Improve observability in Sidecar

2024-03-22 Thread Francisco Guerrero (Jira)


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

Francisco Guerrero edited comment on CASSANDRASC-111 at 3/22/24 11:34 PM:
--

+1  Great contribution!


was (Author: frankgh):
+1  Great contribution?

>  Improve observability in Sidecar
> -
>
> Key: CASSANDRASC-111
> URL: https://issues.apache.org/jira/browse/CASSANDRASC-111
> Project: Sidecar for Apache Cassandra
>  Issue Type: Task
>  Components: Rest API
>Reporter: Saranya Krishnakumar
>Assignee: Saranya Krishnakumar
>Priority: Normal
>  Labels: pull-request-available
>
> Currently we capture minimal metrics in Sidecar, through this patch we want 
> to improve observability in Sidecar.
> For this we want to record more metrics in Sidecar with Dropwizard. Introduce 
> setup changes needed for capturing sidecar metrics through Dropwizard. 
> Some of the metric kinds we will capture through this patch are, HTTP metrics 
> like number of requests created per route, response time taken endpoint wise. 
> Capture metrics per Cassandra instance maintained by Sidecar, such as, 
> instance specific restore metrics, instance specific stream and upload 
> metrics. We will also turn on registering, server route metrics emitted by 
> Vert.x.



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

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



(cassandra-sidecar) branch trunk updated: CASSANDRASC-111 Improve observability in Sidecar with Dropwizard metrics (#102)

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

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


The following commit(s) were added to refs/heads/trunk by this push:
 new 056faad8 CASSANDRASC-111 Improve observability in Sidecar with 
Dropwizard metrics (#102)
056faad8 is described below

commit 056faad8278365a77a36dd336e002136c269165a
Author: Saranya Krishnakumar 
AuthorDate: Fri Mar 22 17:46:06 2024 -0700

CASSANDRASC-111 Improve observability in Sidecar with Dropwizard metrics 
(#102)

Patch by Saranya Krishnakumar; Reviewed by Yifan Cai, Francisco Guerrero 
for CASSANDRASC-111
---
 CHANGES.txt|   1 +
 src/main/dist/conf/sidecar.yaml|   9 ++
 .../sidecar/cluster/instance/InstanceMetadata.java |   8 +-
 .../cluster/instance/InstanceMetadataImpl.java |  42 -
 .../MetricsConfiguration.java} |  40 +
 .../sidecar/config/SidecarConfiguration.java   |   5 +
 .../VertxMetricsConfiguration.java}|  36 ++---
 .../config/yaml/MetricsConfigurationImpl.java  |  67 
 .../config/yaml/SidecarConfigurationImpl.java  |  27 
 .../config/yaml/VertxMetricsConfigurationImpl.java | 100 
 .../cassandra/sidecar/metrics/NamedMetric.java | 169 +
 .../cassandra/sidecar/metrics/ServerMetrics.java   |  55 +++
 .../instance/InstanceMetrics.java} |  39 ++---
 .../metrics/instance/InstanceMetricsImpl.java  |  61 
 .../metrics/instance/InstanceResourceMetrics.java  |  49 ++
 .../metrics/instance/StreamSSTableMetrics.java |  88 +++
 .../metrics/instance/UploadSSTableMetrics.java |  88 +++
 .../sidecar/routes/DiskSpaceProtectionHandler.java |   1 +
 .../sidecar/routes/FileStreamHandler.java  |   7 +-
 .../sstableuploads/SSTableUploadHandler.java   |  15 +-
 .../cassandra/sidecar/server/MainModule.java   |  49 --
 .../apache/cassandra/sidecar/server/Server.java|   9 +-
 .../sidecar/tasks/HealthCheckPeriodicTask.java |  14 +-
 .../cassandra/sidecar/utils/FileStreamer.java  |  52 +--
 .../cassandra/sidecar/utils/MetricUtils.java   |  42 +
 .../testing/CassandraSidecarTestContext.java   |   1 +
 .../org/apache/cassandra/sidecar/TestModule.java   |   3 +
 .../org/apache/cassandra/sidecar/ThrottleTest.java |  17 ++-
 .../sidecar/config/SidecarConfigurationTest.java   |  49 ++
 .../cassandra/sidecar/metrics/NamedMetricTest.java | 103 +
 .../sidecar/restore/RestoreJobManagerTest.java |   4 +-
 .../sstableuploads/BaseUploadsHandlerTest.java |   3 +
 .../sstableuploads/SSTableUploadHandlerTest.java   |  13 ++
 .../cassandra/sidecar/server/ServerSSLTest.java|  23 ++-
 .../cassandra/sidecar/snapshots/SnapshotUtils.java |   2 +
 .../sidecar/tasks/HealthCheckPeriodicTaskTest.java |  50 +-
 .../cassandra/sidecar/utils/TestMetricUtils.java   |  39 +
 src/test/resources/config/sidecar_metrics.yaml |  69 +
 38 files changed, 1310 insertions(+), 139 deletions(-)

diff --git a/CHANGES.txt b/CHANGES.txt
index 638ee316..3e79c80f 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,5 +1,6 @@
 1.0.0
 -
+ * Improve observability in Sidecar (CASSANDRASC-111)
  * Improve logging for slice restore task (CASSANDRASC-107)
  * Add restore task watcher to report long running tasks (CASSANDRASC-106)
  * RestoreSliceTask could be stuck due to missing exception handling 
(CASSANDRASC-105)
diff --git a/src/main/dist/conf/sidecar.yaml b/src/main/dist/conf/sidecar.yaml
index 82e4b1b2..2369f252 100644
--- a/src/main/dist/conf/sidecar.yaml
+++ b/src/main/dist/conf/sidecar.yaml
@@ -142,6 +142,15 @@ healthcheck:
   initial_delay_millis: 0
   poll_freq_millis: 3
 
+metrics:
+  registry_name: cassandra_sidecar
+  vertx:
+enabled: true
+expose_via_jmx: false
+jmx_domain_name: sidecar.vertx.jmx_domain
+monitored_server_route_regexes:# regex list to match 
server routes
+ - /api/v1/.*
+
 cassandra_input_validation:
   forbidden_keyspaces:
 - system_schema
diff --git 
a/src/main/java/org/apache/cassandra/sidecar/cluster/instance/InstanceMetadata.java
 
b/src/main/java/org/apache/cassandra/sidecar/cluster/instance/InstanceMetadata.java
index 26da25e7..8862c8a1 100644
--- 
a/src/main/java/org/apache/cassandra/sidecar/cluster/instance/InstanceMetadata.java
+++ 
b/src/main/java/org/apache/cassandra/sidecar/cluster/instance/InstanceMetadata.java
@@ -21,9 +21,10 @@ package org.apache.cassandra.sidecar.cluster.instance;
 import java.util.List;
 
 import org.apache.cassandra.sidecar.cluster.CassandraAdapterDelegate;
+import org.apache.cassandra.sidecar.metrics.instance.InstanceMetrics;
+import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
-
 /**
  * Metadata of an instance
  */
@@ -58,4 +59,9 @@ pub

[jira] [Updated] (CASSANDRASC-111) Improve observability in Sidecar

2024-03-22 Thread Francisco Guerrero (Jira)


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

Francisco Guerrero updated CASSANDRASC-111:
---
  Fix Version/s: 1.0
Source Control Link: 
https://github.com/apache/cassandra-sidecar/commit/056faad8278365a77a36dd336e002136c269165a
 Resolution: Fixed
 Status: Resolved  (was: Ready to Commit)

>  Improve observability in Sidecar
> -
>
> Key: CASSANDRASC-111
> URL: https://issues.apache.org/jira/browse/CASSANDRASC-111
> Project: Sidecar for Apache Cassandra
>  Issue Type: Task
>  Components: Rest API
>Reporter: Saranya Krishnakumar
>Assignee: Saranya Krishnakumar
>Priority: Normal
>  Labels: pull-request-available
> Fix For: 1.0
>
>
> Currently we capture minimal metrics in Sidecar, through this patch we want 
> to improve observability in Sidecar.
> For this we want to record more metrics in Sidecar with Dropwizard. Introduce 
> setup changes needed for capturing sidecar metrics through Dropwizard. 
> Some of the metric kinds we will capture through this patch are, HTTP metrics 
> like number of requests created per route, response time taken endpoint wise. 
> Capture metrics per Cassandra instance maintained by Sidecar, such as, 
> instance specific restore metrics, instance specific stream and upload 
> metrics. We will also turn on registering, server route metrics emitted by 
> Vert.x.



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

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



(cassandra-website) branch asf-staging updated (b8c4937c9 -> 4b2dd127f)

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

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


 discard b8c4937c9 generate docs for fd550e9c
 new 4b2dd127f generate docs for fd550e9c

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

 * -- * -- B -- O -- O -- O   (b8c4937c9)
\
 N -- N -- N   refs/heads/asf-staging (4b2dd127f)

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

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

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


Summary of changes:
 content/search-index.js |   2 +-
 site-ui/build/ui-bundle.zip | Bin 4883646 -> 4883646 bytes
 2 files changed, 1 insertion(+), 1 deletion(-)


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



[jira] [Commented] (CASSANDRA-19150) Align values in rows in CQLSH right for numbers, left for text

2024-03-22 Thread Arun Ganesh (Jira)


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

Arun Ganesh commented on CASSANDRA-19150:
-

Ping [~bschoeni] [~smiklosovic]

The patch is almost ready. Just a quick question. The patch will break almost 
every test that depends on the cqlsh output. How should I go about fixing them?

> Align values in rows in CQLSH right for numbers, left for text
> --
>
> Key: CASSANDRA-19150
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19150
> Project: Cassandra
>  Issue Type: Improvement
>  Components: CQL/Interpreter
>Reporter: Stefan Miklosovic
>Assignee: Arun Ganesh
>Priority: Low
> Fix For: 5.x
>
> Attachments: Screenshot 2023-12-04 at 00.38.16.png, Screenshot 
> 2023-12-09 at 16.58.25.png, signature.asc
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> *Updated* Jan 17 2024 after dev discussion
> Change CQLSH to left-align text while continue to right-align numbers.  This 
> will match how Postgres shell and Excel treat alignment of text and number.
> -
> *Original*
> We need to make this
> [https://github.com/apache/cassandra/blob/trunk/pylib/cqlshlib/cqlshmain.py#L1101]
> configurable so values in columns are either all on left or on right side of 
> the column (basically change col.rjust to col.ljust).
> By default, it would be like it is now but there would be configuration 
> property in cqlsh for that as well as a corresponding CQLSH command 
> (optional), something like
> {code:java}
> ALIGNMENT LEFT|RIGHT
> {code}
> cc [~bschoeni]



--
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