This is an automated email from the ASF dual-hosted git repository.

samt pushed a commit to branch cep-21-tcm
in repository https://gitbox.apache.org/repos/asf/cassandra.git

commit 55bdbcde6e3d75cfb6371ead0733b3ce8a376797
Author: Marcus Eriksson <[email protected]>
AuthorDate: Fri Mar 31 16:03:47 2023 +0200

    [CEP-21] During startup request replay from CMS asynchronously
    
    patch by Marcus Eriksson; reviewed by Alex Petrov and Sam Tunnicliffe
    for CASSANDRA-18456
---
 src/java/org/apache/cassandra/locator/ReplicaLayout.java   | 5 +----
 src/java/org/apache/cassandra/schema/TableMetadata.java    | 7 +------
 src/java/org/apache/cassandra/service/CassandraDaemon.java | 4 ++--
 src/java/org/apache/cassandra/tcm/RemoteProcessor.java     | 2 +-
 4 files changed, 5 insertions(+), 13 deletions(-)

diff --git a/src/java/org/apache/cassandra/locator/ReplicaLayout.java 
b/src/java/org/apache/cassandra/locator/ReplicaLayout.java
index 4d4d6fc363..82d9dd31f5 100644
--- a/src/java/org/apache/cassandra/locator/ReplicaLayout.java
+++ b/src/java/org/apache/cassandra/locator/ReplicaLayout.java
@@ -27,7 +27,6 @@ import org.apache.cassandra.dht.Token;
 import org.apache.cassandra.gms.FailureDetector;
 import org.apache.cassandra.tcm.Epoch;
 import org.apache.cassandra.schema.KeyspaceMetadata;
-import org.apache.cassandra.tcm.ownership.TokenMap;
 import org.apache.cassandra.tcm.ClusterMetadata;
 import org.apache.cassandra.utils.FBUtilities;
 
@@ -401,9 +400,7 @@ public abstract class ReplicaLayout<E extends Endpoints<E>>
 
     static EndpointsForRange forNonLocalStategyRangeRead(ClusterMetadata 
metadata, KeyspaceMetadata keyspace, AbstractBounds<PartitionPosition> range)
     {
-        TokenMap tokenMap = metadata.tokenMap;
-        Token token = tokenMap.nextToken(tokenMap.tokens(), 
range.right.getToken());
-        return  
metadata.placements.get(keyspace.params.replication).reads.forRange(token);
+        return 
metadata.placements.get(keyspace.params.replication).reads.forRange(range.right.getToken());
     }
 
     static EndpointsForToken forNonLocalStrategyTokenRead(ClusterMetadata 
metadata, KeyspaceMetadata keyspace, Token token)
diff --git a/src/java/org/apache/cassandra/schema/TableMetadata.java 
b/src/java/org/apache/cassandra/schema/TableMetadata.java
index 031fa829b6..dda2c519b1 100644
--- a/src/java/org/apache/cassandra/schema/TableMetadata.java
+++ b/src/java/org/apache/cassandra/schema/TableMetadata.java
@@ -823,12 +823,7 @@ public class TableMetadata implements SchemaElement
                 partitioner = DatabaseDescriptor.getPartitioner();
 
             if (id == null)
-            {
-                // make sure vtables use determiniestic ids so they can be 
referenced in calls cross-nodes
-                // see CASSANDRA-17295
-                if (DatabaseDescriptor.useDeterministicTableID() || kind == 
Kind.VIRTUAL) id = TableId.unsafeDeterministic(keyspace, name);
-                else id = TableId.generate();
-            }
+                id = TableId.unsafeDeterministic(keyspace, name);
 
             if (Flag.isCQLTable(flags))
                 return new TableMetadata(this);
diff --git a/src/java/org/apache/cassandra/service/CassandraDaemon.java 
b/src/java/org/apache/cassandra/service/CassandraDaemon.java
index aa8921109e..18e5ac5163 100644
--- a/src/java/org/apache/cassandra/service/CassandraDaemon.java
+++ b/src/java/org/apache/cassandra/service/CassandraDaemon.java
@@ -428,7 +428,7 @@ public class CassandraDaemon
             exitOrFail(1, "Fatal configuration error", e);
         }
 
-        ClusterMetadataService.instance().replayAndWait();
+        ScheduledExecutors.nonPeriodicTasks.execute(() -> 
ClusterMetadataService.instance().replayAndWait());
 
         // TODO: (TM/alexp), this can be made time-dependent
         // Because we are writing to the system_distributed keyspace, this 
should happen after that is created, which
@@ -732,7 +732,7 @@ public class CassandraDaemon
         // jsvc takes care of taking the rest down
         logger.info("Cassandra shutting down...");
         destroyClientTransports();
-        //StorageService.instance.setRpcReady(false);
+        StorageService.instance.setRpcReady(false);
 
         if (jmxServer != null)
         {
diff --git a/src/java/org/apache/cassandra/tcm/RemoteProcessor.java 
b/src/java/org/apache/cassandra/tcm/RemoteProcessor.java
index db0310d1a1..6b70918f37 100644
--- a/src/java/org/apache/cassandra/tcm/RemoteProcessor.java
+++ b/src/java/org/apache/cassandra/tcm/RemoteProcessor.java
@@ -186,7 +186,7 @@ public final class RemoteProcessor implements Processor
                     else
                     {
                         candidates.timeout(from);
-                        logger.error("Got error from {}: {} when sending {}, 
retrying on {}", from, reason, verb, candidates);
+                        logger.warn("Got error from {}: {} when sending {}, 
retrying on {}", from, reason, verb, candidates);
                     }
 
                     promise.tryFailure(null);


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to