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]