aratno commented on code in PR #4449:
URL: https://github.com/apache/cassandra/pull/4449#discussion_r2582064990


##########
src/java/org/apache/cassandra/service/consensus/migration/ConsensusMigrationMutationHelper.java:
##########
@@ -171,57 +181,103 @@ public void consume(@Nullable T accordMutation, 
@Nullable T normalMutation, List
                     accordMutations = new 
ArrayList<>(Math.min(mutations.size(), 10));
                 accordMutations.add(accordMutation);
             }
-            if (normalMutation != null)
+            if (untrackedMutation != null)
+            {
+                if (untrackedMutations == null)
+                    untrackedMutations = new 
ArrayList<>(Math.min(mutations.size(), 10));
+                untrackedMutations.add(untrackedMutation);
+            }
+
+            if (trackedMutation != null)
             {
-                if (normalMutations == null)
-                    normalMutations = new 
ArrayList<>(Math.min(mutations.size(), 10));
-                normalMutations.add(normalMutation);
+                if (trackedMutations == null)
+                    trackedMutations = new 
ArrayList<>(Math.min(mutations.size(), 10));
+                trackedMutations.add(trackedMutation);
             }
         }
     }
 
     public interface SplitConsumer<T extends IMutation>
     {
-        void consume(@Nullable T accordMutation, @Nullable T normalMutation, 
List<T> mutations, int mutationIndex);
+        void consume(@Nullable T accordMutation, @Nullable T 
untrackedMutation, @Nullable T trackedMutation, List<T> mutations, int 
mutationIndex);
     }
 
-    public static <T extends IMutation> SplitMutations<T> 
splitMutationsIntoAccordAndNormal(ClusterMetadata cm, List<T> mutations)
+    public static <T extends IMutation> void splitMutations(ClusterMetadata 
cm, List<T> mutations, SplitConsumer<T> splitConsumer)
     {
-        SplitMutations<T> splitMutations = new SplitMutations<>();
-        splitMutationsIntoAccordAndNormal(cm, mutations, splitMutations);
-        return splitMutations;
+        for (int i=0,mi=mutations.size(); i<mi; i++)
+        {
+            SplitMutation<T> splitMutation = 
instance.splitMutation(mutations.get(i), cm);
+            splitConsumer.consume(splitMutation.accordMutation, 
splitMutation.untrackedMutation, splitMutation.trackedMutation, mutations, i);
+        }
     }
 
-    public static <T extends IMutation> void 
splitMutationsIntoAccordAndNormal(ClusterMetadata cm, List<T> mutations, 
SplitConsumer<T> splitConsumer)
+    private static boolean isTrackedMutation(IMutation mutation)
     {
-        for (int i=0,mi=mutations.size(); i<mi; i++)
+        return 
Schema.instance.getKeyspaceMetadata(mutation.getKeyspaceName()).params.replicationType.isTracked();

Review Comment:
   This is called during hints dispatch, need to handle NPE if keyspace is 
dropped between hint creation and dispatch



-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


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

Reply via email to