This is an automated email from the ASF dual-hosted git repository. maedhroz pushed a commit to branch cep-15-accord in repository https://gitbox.apache.org/repos/asf/cassandra.git
commit e4f9434559cfcb78440f6a07408e687764f5b37e Author: Caleb Rackliffe <calebrackli...@gmail.com> AuthorDate: Wed May 8 12:24:33 2024 -0500 post-rebase fixes, mostly around CASSANDRA-19341 and CASSANDRA-19567 --- .../cassandra/cql3/conditions/ColumnCondition.java | 2 +- .../cassandra/cql3/statements/SelectStatement.java | 2 -- .../cassandra/cql3/statements/UpdateStatement.java | 2 +- .../org/apache/cassandra/index/accord/IndexMetrics.java | 2 +- .../org/apache/cassandra/index/accord/RouteIndex.java | 3 ++- src/java/org/apache/cassandra/journal/Metrics.java | 6 ++++-- .../cassandra/metrics/AccordStateCacheMetrics.java | 6 +++--- .../org/apache/cassandra/metrics/CacheSizeMetrics.java | 4 ++-- .../cassandra/metrics/CassandraMetricsRegistry.java | 4 ++++ src/java/org/apache/cassandra/net/Message.java | 2 +- src/java/org/apache/cassandra/net/MessageDelivery.java | 3 ++- .../org/apache/cassandra/schema/ColumnMetadata.java | 1 + .../cassandra/tcm/StubClusterMetadataService.java | 4 ++++ src/java/org/apache/cassandra/tcm/Transformation.java | 1 - test/data/serialization/5.1/service.SyncComplete.bin | Bin 258 -> 346 bytes .../serialization/5.1/service.ValidationComplete.bin | Bin 597 -> 729 bytes .../tcm/listeners/MetadataSnapshotListenerTest.java | 4 +++- 17 files changed, 29 insertions(+), 17 deletions(-) diff --git a/src/java/org/apache/cassandra/cql3/conditions/ColumnCondition.java b/src/java/org/apache/cassandra/cql3/conditions/ColumnCondition.java index 52a3642048..387549ea6f 100644 --- a/src/java/org/apache/cassandra/cql3/conditions/ColumnCondition.java +++ b/src/java/org/apache/cassandra/cql3/conditions/ColumnCondition.java @@ -813,7 +813,7 @@ public abstract class ColumnCondition { int numTerminals = readCollectionSize(in, version); List<Terminal> terminals = new ArrayList<>(numTerminals); - if (operator.isContains() || operator.isContainsKey()) + if (operator == Operator.CONTAINS || operator == Operator.CONTAINS_KEY) { for (int i = 0; i < numTerminals; i++) terminals.add(new Constants.Value(nullableByteBufferSerializer.deserialize(in, version))); diff --git a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java index 56c45f70b1..2380e711fc 100644 --- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java @@ -29,7 +29,6 @@ import java.util.List; import java.util.Map; import java.util.NavigableSet; import java.util.Set; -import java.util.SortedSet; import java.util.TreeMap; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -72,7 +71,6 @@ import org.apache.cassandra.cql3.selection.Selector; import org.apache.cassandra.cql3.terms.Marker; import org.apache.cassandra.cql3.terms.Term; import org.apache.cassandra.db.Clustering; -import org.apache.cassandra.db.ClusteringBound; import org.apache.cassandra.db.ColumnFamilyStore; import org.apache.cassandra.db.ConsistencyLevel; import org.apache.cassandra.db.DataRange; diff --git a/src/java/org/apache/cassandra/cql3/statements/UpdateStatement.java b/src/java/org/apache/cassandra/cql3/statements/UpdateStatement.java index 9d2ab3d7b7..542609385c 100644 --- a/src/java/org/apache/cassandra/cql3/statements/UpdateStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/UpdateStatement.java @@ -35,7 +35,7 @@ import org.apache.cassandra.cql3.Operation; import org.apache.cassandra.cql3.Operations; import org.apache.cassandra.cql3.Operator; import org.apache.cassandra.cql3.QualifiedName; -import org.apache.cassandra.cql3.SingleColumnRelation; +import org.apache.cassandra.cql3.Relation; import org.apache.cassandra.cql3.StatementSource; import org.apache.cassandra.cql3.UpdateParameters; import org.apache.cassandra.cql3.VariableSpecifications; diff --git a/src/java/org/apache/cassandra/index/accord/IndexMetrics.java b/src/java/org/apache/cassandra/index/accord/IndexMetrics.java index 2956082235..c761e5f81f 100644 --- a/src/java/org/apache/cassandra/index/accord/IndexMetrics.java +++ b/src/java/org/apache/cassandra/index/accord/IndexMetrics.java @@ -30,7 +30,7 @@ import static org.apache.cassandra.metrics.CassandraMetricsRegistry.Metrics; // Stolen from org.apache.cassandra.index.sai.metrics.AbstractMetrics public class IndexMetrics { - private static final String TYPE = "RouteIndex"; + public static final String TYPE = "RouteIndex"; private static final String SCOPE = "IndexMetrics"; private final List<CassandraMetricsRegistry.MetricName> tracked = new ArrayList<>(); diff --git a/src/java/org/apache/cassandra/index/accord/RouteIndex.java b/src/java/org/apache/cassandra/index/accord/RouteIndex.java index 7e83e3e26f..8dcaf2067c 100644 --- a/src/java/org/apache/cassandra/index/accord/RouteIndex.java +++ b/src/java/org/apache/cassandra/index/accord/RouteIndex.java @@ -80,6 +80,7 @@ import org.apache.cassandra.schema.IndexMetadata; import org.apache.cassandra.schema.SchemaConstants; import org.apache.cassandra.schema.TableId; import org.apache.cassandra.schema.TableMetadata; +import org.apache.cassandra.service.ClientState; import org.apache.cassandra.service.StorageService; import org.apache.cassandra.service.accord.AccordKeyspace; import org.apache.cassandra.service.accord.api.AccordRoutingKey; @@ -302,7 +303,7 @@ public class RouteIndex implements Index, INotificationConsumer } @Override - public void validate(PartitionUpdate update) throws InvalidRequestException + public void validate(PartitionUpdate update, ClientState state) throws InvalidRequestException { // only internal can write... so it must be valid no? } diff --git a/src/java/org/apache/cassandra/journal/Metrics.java b/src/java/org/apache/cassandra/journal/Metrics.java index befc3c2ddb..4bca57c77c 100644 --- a/src/java/org/apache/cassandra/journal/Metrics.java +++ b/src/java/org/apache/cassandra/journal/Metrics.java @@ -23,8 +23,10 @@ import org.apache.cassandra.metrics.CassandraMetricsRegistry; import org.apache.cassandra.metrics.DefaultNameFactory; import org.apache.cassandra.metrics.MetricNameFactory; -final class Metrics<K, V> +public final class Metrics<K, V> { + public static final String TYPE_NAME = "Journal"; + private static final String WAITING_ON_FLUSH = "WaitingOnFlush"; private static final String WAITING_ON_ALLOCATION = "WaitingOnSegmentAllocation"; private static final String WRITTEN_ENTRIES = "WrittenEntries"; @@ -49,7 +51,7 @@ final class Metrics<K, V> Metrics(String name) { - this.factory = new DefaultNameFactory("Journal", name); + this.factory = new DefaultNameFactory(TYPE_NAME, name); } void register(Flusher<K, V> flusher) diff --git a/src/java/org/apache/cassandra/metrics/AccordStateCacheMetrics.java b/src/java/org/apache/cassandra/metrics/AccordStateCacheMetrics.java index a090a05a34..f63fedf282 100644 --- a/src/java/org/apache/cassandra/metrics/AccordStateCacheMetrics.java +++ b/src/java/org/apache/cassandra/metrics/AccordStateCacheMetrics.java @@ -23,7 +23,7 @@ import java.util.concurrent.ConcurrentHashMap; import com.codahale.metrics.Histogram; -import static org.apache.cassandra.metrics.CacheMetrics.CACHE; +import static org.apache.cassandra.metrics.CacheMetrics.TYPE_NAME; import static org.apache.cassandra.metrics.CassandraMetricsRegistry.Metrics; public class AccordStateCacheMetrics extends CacheAccessMetrics @@ -38,7 +38,7 @@ public class AccordStateCacheMetrics extends CacheAccessMetrics public AccordStateCacheMetrics(String type) { - super(new DefaultNameFactory(CACHE, type)); + super(new DefaultNameFactory(TYPE_NAME, type)); objectSize = Metrics.histogram(factory.createMetricName(OBJECT_SIZE), false); this.type = type; } @@ -47,6 +47,6 @@ public class AccordStateCacheMetrics extends CacheAccessMetrics { // cannot make Class<?> hashCode deterministic, as cannot rewrite - so cannot safely use as Map key if want deterministic simulation // (or we need to create extra hoops to catch this specific case in method rewriting) - return instanceMetrics.computeIfAbsent(klass.getSimpleName(), k -> new CacheAccessMetrics(new DefaultNameFactory(CACHE, String.format("%s-%s", type, k)))); + return instanceMetrics.computeIfAbsent(klass.getSimpleName(), k -> new CacheAccessMetrics(new DefaultNameFactory(TYPE_NAME, String.format("%s-%s", type, k)))); } } diff --git a/src/java/org/apache/cassandra/metrics/CacheSizeMetrics.java b/src/java/org/apache/cassandra/metrics/CacheSizeMetrics.java index a8ecdd5f2f..fb34cfcc19 100644 --- a/src/java/org/apache/cassandra/metrics/CacheSizeMetrics.java +++ b/src/java/org/apache/cassandra/metrics/CacheSizeMetrics.java @@ -20,7 +20,7 @@ package org.apache.cassandra.metrics; import com.codahale.metrics.Gauge; import org.apache.cassandra.cache.CacheSize; -import static org.apache.cassandra.metrics.CacheMetrics.CACHE; +import static org.apache.cassandra.metrics.CacheMetrics.TYPE_NAME; import static org.apache.cassandra.metrics.CassandraMetricsRegistry.Metrics; public class CacheSizeMetrics @@ -51,7 +51,7 @@ public class CacheSizeMetrics */ public CacheSizeMetrics(String type, CacheSize cache) { - this(new DefaultNameFactory(CACHE, type), cache); + this(new DefaultNameFactory(TYPE_NAME, type), cache); } public CacheSizeMetrics(MetricNameFactory factory, CacheSize cache) diff --git a/src/java/org/apache/cassandra/metrics/CassandraMetricsRegistry.java b/src/java/org/apache/cassandra/metrics/CassandraMetricsRegistry.java index 2464533c99..ea7adb6e4e 100644 --- a/src/java/org/apache/cassandra/metrics/CassandraMetricsRegistry.java +++ b/src/java/org/apache/cassandra/metrics/CassandraMetricsRegistry.java @@ -114,6 +114,8 @@ public class CassandraMetricsRegistry extends MetricRegistry // for virtual tables. metricGroups = ImmutableSet.<String>builder() .add(AbstractMetrics.TYPE) + .add(AccordMetrics.ACCORD_COORDINATOR) + .add(AccordMetrics.ACCORD_REPLICA) .add(BatchMetrics.TYPE_NAME) .add(BufferPoolMetrics.TYPE_NAME) .add(CIDRAuthorizerMetrics.TYPE_NAME) @@ -130,8 +132,10 @@ public class CassandraMetricsRegistry extends MetricRegistry .add(DroppedMessageMetrics.TYPE) .add(HintedHandoffMetrics.TYPE_NAME) .add(HintsServiceMetrics.TYPE_NAME) + .add(org.apache.cassandra.index.accord.IndexMetrics.TYPE) .add(InternodeInboundMetrics.TYPE_NAME) .add(InternodeOutboundMetrics.TYPE_NAME) + .add(org.apache.cassandra.journal.Metrics.TYPE_NAME) .add(KeyspaceMetrics.TYPE_NAME) .add(MemtablePool.TYPE_NAME) .add(MessagingMetrics.TYPE_NAME) diff --git a/src/java/org/apache/cassandra/net/Message.java b/src/java/org/apache/cassandra/net/Message.java index 4e0f8c2e6c..dab67b7952 100644 --- a/src/java/org/apache/cassandra/net/Message.java +++ b/src/java/org/apache/cassandra/net/Message.java @@ -323,7 +323,7 @@ public class Message<T> implements ResponseContext } /** Builds a response Message with provided payload, and all the right fields inferred from request Message */ - public Message<T> responseWith(T payload) + public <T> Message<T> responseWith(T payload) { Message<T> msg = responseWith(payload, this); if (header.hasFlag(MessageFlag.URGENT)) diff --git a/src/java/org/apache/cassandra/net/MessageDelivery.java b/src/java/org/apache/cassandra/net/MessageDelivery.java index bbd0ae36ac..a56d35a8d9 100644 --- a/src/java/org/apache/cassandra/net/MessageDelivery.java +++ b/src/java/org/apache/cassandra/net/MessageDelivery.java @@ -27,6 +27,7 @@ import org.slf4j.LoggerFactory; import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.exceptions.RequestFailure; +import org.apache.cassandra.exceptions.RequestFailureReason; import org.apache.cassandra.locator.InetAddressAndPort; import org.apache.cassandra.utils.Pair; import org.apache.cassandra.utils.concurrent.Accumulator; @@ -77,6 +78,6 @@ public interface MessageDelivery public <V> void respond(V response, Message<?> message); public default void respondWithFailure(RequestFailureReason reason, Message<?> message) { - send(Message.failureResponse(message.id(), message.expiresAtNanos(), reason), message.respondTo()); + send(Message.failureResponse(message.id(), message.expiresAtNanos(), new RequestFailure(reason, null)), message.respondTo()); } } diff --git a/src/java/org/apache/cassandra/schema/ColumnMetadata.java b/src/java/org/apache/cassandra/schema/ColumnMetadata.java index 309e5eeb17..4c4ac38d77 100644 --- a/src/java/org/apache/cassandra/schema/ColumnMetadata.java +++ b/src/java/org/apache/cassandra/schema/ColumnMetadata.java @@ -19,6 +19,7 @@ package org.apache.cassandra.schema; import java.io.IOException; import java.nio.ByteBuffer; +import java.util.ArrayList; import java.util.Collection; import java.util.Comparator; import java.util.Iterator; diff --git a/src/java/org/apache/cassandra/tcm/StubClusterMetadataService.java b/src/java/org/apache/cassandra/tcm/StubClusterMetadataService.java index 8e191307d1..2a76375af3 100644 --- a/src/java/org/apache/cassandra/tcm/StubClusterMetadataService.java +++ b/src/java/org/apache/cassandra/tcm/StubClusterMetadataService.java @@ -28,6 +28,8 @@ import org.apache.cassandra.schema.DistributedMetadataLogKeyspace; import org.apache.cassandra.schema.DistributedSchema; import org.apache.cassandra.schema.KeyspaceMetadata; import org.apache.cassandra.schema.Keyspaces; +import org.apache.cassandra.service.accord.AccordFastPath; +import org.apache.cassandra.service.consensus.migration.ConsensusMigrationState; import org.apache.cassandra.tcm.Commit.Replicator; import org.apache.cassandra.tcm.log.Entry; import org.apache.cassandra.tcm.log.LocalLog; @@ -173,8 +175,10 @@ public class StubClusterMetadataService extends ClusterMetadataService Directory.EMPTY, new TokenMap(partitioner), DataPlacements.EMPTY, + AccordFastPath.EMPTY, LockedRanges.EMPTY, InProgressSequences.EMPTY, + ConsensusMigrationState.EMPTY, ImmutableMap.of()); return new StubClusterMetadataService(new UniformRangePlacement(), snapshots != null ? snapshots : MetadataSnapshots.NO_OP, diff --git a/src/java/org/apache/cassandra/tcm/Transformation.java b/src/java/org/apache/cassandra/tcm/Transformation.java index 26ace765a7..12ba31f0c1 100644 --- a/src/java/org/apache/cassandra/tcm/Transformation.java +++ b/src/java/org/apache/cassandra/tcm/Transformation.java @@ -51,7 +51,6 @@ import org.apache.cassandra.tcm.transformations.PrepareLeave; import org.apache.cassandra.tcm.transformations.PrepareMove; import org.apache.cassandra.tcm.transformations.PrepareReplace; import org.apache.cassandra.tcm.transformations.Register; -import org.apache.cassandra.tcm.transformations.SealPeriod; import org.apache.cassandra.tcm.transformations.Startup; import org.apache.cassandra.tcm.transformations.cms.AdvanceCMSReconfiguration; import org.apache.cassandra.tcm.transformations.cms.FinishAddToCMS; diff --git a/test/data/serialization/5.1/service.SyncComplete.bin b/test/data/serialization/5.1/service.SyncComplete.bin index 4cc1973bb0..aede3aae15 100644 Binary files a/test/data/serialization/5.1/service.SyncComplete.bin and b/test/data/serialization/5.1/service.SyncComplete.bin differ diff --git a/test/data/serialization/5.1/service.ValidationComplete.bin b/test/data/serialization/5.1/service.ValidationComplete.bin index d3ccb15a87..3a632bd489 100644 Binary files a/test/data/serialization/5.1/service.ValidationComplete.bin and b/test/data/serialization/5.1/service.ValidationComplete.bin differ diff --git a/test/unit/org/apache/cassandra/tcm/listeners/MetadataSnapshotListenerTest.java b/test/unit/org/apache/cassandra/tcm/listeners/MetadataSnapshotListenerTest.java index 2f962f1ab2..4c57a76c8b 100644 --- a/test/unit/org/apache/cassandra/tcm/listeners/MetadataSnapshotListenerTest.java +++ b/test/unit/org/apache/cassandra/tcm/listeners/MetadataSnapshotListenerTest.java @@ -20,6 +20,7 @@ package org.apache.cassandra.tcm.listeners; import java.util.Random; +import org.apache.cassandra.config.DatabaseDescriptor; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; @@ -50,7 +51,7 @@ import static org.junit.Assert.assertNull; public class MetadataSnapshotListenerTest { private static final Logger logger = LoggerFactory.getLogger(MetadataSnapshotListenerTest.class); - private IPartitioner partitioner = Murmur3Partitioner.instance; + private final IPartitioner partitioner = Murmur3Partitioner.instance; private Random r; @BeforeClass @@ -59,6 +60,7 @@ public class MetadataSnapshotListenerTest // Set this so that we don't attempt to sort the random placements as this depends on a populated // TokenMap. This is a temporary element of ClusterMetadata, at least in the current form CassandraRelevantProperties.TCM_SORT_REPLICA_GROUPS.setBoolean(false); + DatabaseDescriptor.daemonInitialization(); } @Before --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org