From 5385e9c60a30ec451f66bf442f24c23060edb763 Mon Sep 17 00:00:00 2001 From: Aleksey Yeschenko Date: Thu, 18 Jan 2024 15:45:05 +0000 Subject: [PATCH] Fix LocalPartitioner duplication in *_for_key Accord system tables patch by Aleksey Yeschenko; reviewed by Marcus Eriksson for CASSANDRA-19265 --- .../apache/cassandra/service/accord/AccordKeyspace.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/java/org/apache/cassandra/service/accord/AccordKeyspace.java b/src/java/org/apache/cassandra/service/accord/AccordKeyspace.java index 963a20adb1..fc695f9263 100644 --- a/src/java/org/apache/cassandra/service/accord/AccordKeyspace.java +++ b/src/java/org/apache/cassandra/service/accord/AccordKeyspace.java @@ -192,6 +192,10 @@ public class AccordKeyspace private static final TupleType KEY_TYPE = new TupleType(Arrays.asList(UUIDType.instance, BytesType.instance)); private static final String KEY_TUPLE = KEY_TYPE.asCQL3Type().toString(); + // shared LocalPartitioner for all *_for_key Accord tables with (store_id, key_token, key) partition key + private static final LocalPartitioner FOR_KEYS_LOCAL_PARTITIONER = + new LocalPartitioner(CompositeType.getInstance(Int32Type.instance, BytesType.instance, KEY_TYPE)); + private static final ClusteringIndexFilter FULL_PARTITION = new ClusteringIndexSliceFilter(Slices.ALL, false); private enum TokenType @@ -424,7 +428,7 @@ public class AccordKeyspace + format("last_write_timestamp %s, ", TIMESTAMP_TUPLE) + "PRIMARY KEY((store_id, key_token, key))" + ')') - .partitioner(new LocalPartitioner(CompositeType.getInstance(Int32Type.instance, BytesType.instance, KEY_TYPE))) + .partitioner(FOR_KEYS_LOCAL_PARTITIONER) .build(); public static class TimestampsForKeyColumns @@ -558,7 +562,7 @@ public class AccordKeyspace + "data blob, " + "PRIMARY KEY((store_id, key_token, key), timestamp)" + ')') - .partitioner(new LocalPartitioner(CompositeType.getInstance(Int32Type.instance, BytesType.instance, KEY_TYPE))) + .partitioner(FOR_KEYS_LOCAL_PARTITIONER) .build(); }