This is an automated email from the ASF dual-hosted git repository.
asf-gitbox-commits pushed a commit to branch cassandra-6.0
in repository https://gitbox.apache.org/repos/asf/cassandra.git
The following commit(s) were added to refs/heads/cassandra-6.0 by this push:
new 9017e18fa1 Allocation improvements in ProtocolVersion, StorageProxy
and MerkleTree
9017e18fa1 is described below
commit 9017e18fa1223b3638064bb832da62f3cb32c74a
Author: Matt Byrd <[email protected]>
AuthorDate: Wed Mar 4 19:47:19 2026 +0000
Allocation improvements in ProtocolVersion, StorageProxy and MerkleTree
Patch by Matt Byrd; reviewed by Dmitry Konstantinov and marcuse for
CASSANDRA-21199
---
CHANGES.txt | 1 +
src/java/org/apache/cassandra/service/StorageProxy.java | 7 +++++--
src/java/org/apache/cassandra/transport/ProtocolVersion.java | 10 +++++-----
src/java/org/apache/cassandra/utils/MerkleTree.java | 2 +-
4 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/CHANGES.txt b/CHANGES.txt
index 628ba1f48f..b03e6d6627 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
6.0-alpha2
+ * Allocation improvements in ProtocolVersion, StorageProxy and MerkleTree
(CASSANDRA-21199)
* Don’t leave autocompaction disabled during bootstrap and replace
(CASSANDRA-21236)
* Make nodetool abortbootstrap more robust (CASSANDRA-21235)
* Don't clear prepared statement cache on nodetool cms initialize
(CASSANDRA-21234)
diff --git a/src/java/org/apache/cassandra/service/StorageProxy.java
b/src/java/org/apache/cassandra/service/StorageProxy.java
index 70de57d6be..4368f6d4fc 100644
--- a/src/java/org/apache/cassandra/service/StorageProxy.java
+++ b/src/java/org/apache/cassandra/service/StorageProxy.java
@@ -1441,8 +1441,11 @@ public class StorageProxy implements StorageProxyMBean
boolean attributeNonAccordLatency = true;
long nonAccordEndTime = -1;
- if (mutations.stream().anyMatch(mutation ->
Keyspace.open(mutation.getKeyspaceName()).getReplicationStrategy().hasTransientReplicas()))
- throw new AssertionError("Logged batches are unsupported with
transient replication");
+ for (IMutation mutation : mutations)
+ {
+ if
(Keyspace.open(mutation.getKeyspaceName()).getReplicationStrategy().hasTransientReplicas())
+ throw new AssertionError("Logged batches are unsupported with
transient replication");
+ }
try
{
diff --git a/src/java/org/apache/cassandra/transport/ProtocolVersion.java
b/src/java/org/apache/cassandra/transport/ProtocolVersion.java
index 1555e5f558..7a7e23808c 100644
--- a/src/java/org/apache/cassandra/transport/ProtocolVersion.java
+++ b/src/java/org/apache/cassandra/transport/ProtocolVersion.java
@@ -24,6 +24,8 @@ import java.util.EnumSet;
import java.util.List;
import java.util.Optional;
+import com.google.common.collect.ImmutableList;
+
import org.apache.commons.lang3.ArrayUtils;
import org.apache.cassandra.cql3.FunctionContext;
@@ -73,6 +75,7 @@ public enum ProtocolVersion implements
Comparable<ProtocolVersion>, FunctionCont
/** All supported versions, published as an enumset */
public final static EnumSet<ProtocolVersion> SUPPORTED =
EnumSet.copyOf(Arrays.asList(ArrayUtils.addAll(SUPPORTED_VERSIONS)));
+ private final static ImmutableList<String> SUPPORTED_VERSION_STRINGS =
SUPPORTED.stream().map(ProtocolVersion::toString).collect(ImmutableList.toImmutableList());
/** Old unsupported versions, this is OK as long as we never add newer
unsupported versions */
public final static EnumSet<ProtocolVersion> UNSUPPORTED =
EnumSet.complementOf(SUPPORTED);
@@ -84,12 +87,9 @@ public enum ProtocolVersion implements
Comparable<ProtocolVersion>, FunctionCont
public final static ProtocolVersion CURRENT = V5;
public final static Optional<ProtocolVersion> BETA = Optional.of(V6);
- public static List<String> supportedVersions()
+ public static ImmutableList<String> supportedVersions()
{
- List<String> ret = new ArrayList<>(SUPPORTED.size());
- for (ProtocolVersion version : SUPPORTED)
- ret.add(version.toString());
- return ret;
+ return SUPPORTED_VERSION_STRINGS;
}
public static List<ProtocolVersion>
supportedVersionsStartingWith(ProtocolVersion smallestVersion)
diff --git a/src/java/org/apache/cassandra/utils/MerkleTree.java
b/src/java/org/apache/cassandra/utils/MerkleTree.java
index b6b0141db1..d5270673ad 100644
--- a/src/java/org/apache/cassandra/utils/MerkleTree.java
+++ b/src/java/org/apache/cassandra/utils/MerkleTree.java
@@ -1482,7 +1482,7 @@ public class MerkleTree
{
assert left.length == right.length;
- byte[] out = Arrays.copyOf(right, right.length);
+ byte[] out = new byte[right.length];
for (int i = 0; i < left.length; i++)
out[i] = (byte)((left[i] & 0xFF) ^ (right[i] & 0xFF));
return out;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]