From e182744cd0f0f1cd3be1e1b396946913de2bc7c8 Mon Sep 17 00:00:00 2001 From: Alex Petrov Date: Fri, 24 Nov 2023 17:39:43 +0100 Subject: [PATCH] Introduce 5.1 messaging format that brings in Epoch Patch by Alex Petrov; reviewed by Sam Tunnicliffe CASSANDRA-19066. --- .../apache/cassandra/db/CounterMutation.java | 6 ++++ .../org/apache/cassandra/db/Mutation.java | 7 ++++- .../org/apache/cassandra/db/ReadCommand.java | 4 +-- .../db/commitlog/CommitLogDescriptor.java | 5 +++- .../db/partitions/PartitionUpdate.java | 8 +++--- .../cassandra/hints/HintsDescriptor.java | 5 +++- .../org/apache/cassandra/net/Message.java | 27 ++++++++++++------ .../cassandra/net/MessagingService.java | 6 ++-- .../cassandra/tcm/membership/Directory.java | 6 ++-- .../serialization/5.1/gms.EndpointState.bin | Bin 0 -> 73 bytes test/data/serialization/5.1/gms.Gossip.bin | Bin 0 -> 166 bytes .../5.1/service.SyncComplete.bin | Bin 0 -> 256 bytes .../serialization/5.1/service.SyncRequest.bin | Bin 0 -> 111 bytes .../5.1/service.ValidationComplete.bin | Bin 0 -> 597 bytes .../5.1/service.ValidationRequest.bin | Bin 0 -> 74 bytes .../5.1/utils.EstimatedHistogram.bin | Bin 0 -> 97500 bytes .../AbstractSerializationsTester.java | 3 +- 17 files changed, 54 insertions(+), 23 deletions(-) create mode 100644 test/data/serialization/5.1/gms.EndpointState.bin create mode 100644 test/data/serialization/5.1/gms.Gossip.bin create mode 100644 test/data/serialization/5.1/service.SyncComplete.bin create mode 100644 test/data/serialization/5.1/service.SyncRequest.bin create mode 100644 test/data/serialization/5.1/service.ValidationComplete.bin create mode 100644 test/data/serialization/5.1/service.ValidationRequest.bin create mode 100644 test/data/serialization/5.1/utils.EstimatedHistogram.bin diff --git a/src/java/org/apache/cassandra/db/CounterMutation.java b/src/java/org/apache/cassandra/db/CounterMutation.java index ed64e0aad7..14d7a010ff 100644 --- a/src/java/org/apache/cassandra/db/CounterMutation.java +++ b/src/java/org/apache/cassandra/db/CounterMutation.java @@ -50,6 +50,7 @@ import org.apache.cassandra.utils.btree.BTreeSet; import static java.util.concurrent.TimeUnit.*; import static org.apache.cassandra.net.MessagingService.VERSION_40; import static org.apache.cassandra.net.MessagingService.VERSION_50; +import static org.apache.cassandra.net.MessagingService.VERSION_51; import static org.apache.cassandra.utils.Clock.Global.nanoTime; public class CounterMutation implements IMutation @@ -332,6 +333,7 @@ public class CounterMutation implements IMutation private int serializedSize40; private int serializedSize50; + private int serializedSize51; public int serializedSize(int version) { @@ -345,6 +347,10 @@ public class CounterMutation implements IMutation if (serializedSize50 == 0) serializedSize50 = (int) serializer.serializedSize(this, VERSION_50); return serializedSize50; + case VERSION_51: + if (serializedSize51 == 0) + serializedSize51 = (int) serializer.serializedSize(this, VERSION_51); + return serializedSize51; default: throw new IllegalStateException("Unknown serialization version: " + version); } diff --git a/src/java/org/apache/cassandra/db/Mutation.java b/src/java/org/apache/cassandra/db/Mutation.java index cceb8ea510..5a41271474 100644 --- a/src/java/org/apache/cassandra/db/Mutation.java +++ b/src/java/org/apache/cassandra/db/Mutation.java @@ -50,6 +50,7 @@ import org.apache.cassandra.utils.concurrent.Future; import static org.apache.cassandra.net.MessagingService.VERSION_40; import static org.apache.cassandra.net.MessagingService.VERSION_50; +import static org.apache.cassandra.net.MessagingService.VERSION_51; import static org.apache.cassandra.utils.MonotonicClock.Global.approxTime; public class Mutation implements IMutation, Supplier @@ -317,6 +318,7 @@ public class Mutation implements IMutation, Supplier private int serializedSize40; private int serializedSize50; + private int serializedSize51; public int serializedSize(int version) { @@ -330,7 +332,10 @@ public class Mutation implements IMutation, Supplier if (serializedSize50 == 0) serializedSize50 = (int) serializer.serializedSize(this, VERSION_50); return serializedSize50; - + case VERSION_51: + if (serializedSize51 == 0) + serializedSize51 = (int) serializer.serializedSize(this, VERSION_51); + return serializedSize51; default: throw new IllegalStateException("Unknown serialization version: " + version); } diff --git a/src/java/org/apache/cassandra/db/ReadCommand.java b/src/java/org/apache/cassandra/db/ReadCommand.java index 84cc9bfa24..0f78bf8150 100644 --- a/src/java/org/apache/cassandra/db/ReadCommand.java +++ b/src/java/org/apache/cassandra/db/ReadCommand.java @@ -1099,7 +1099,7 @@ public abstract class ReadCommand extends AbstractReadQuery if (command.isDigestQuery()) out.writeUnsignedVInt32(command.digestVersion()); command.metadata().id.serialize(out); - if (version >= MessagingService.VERSION_50) + if (version >= MessagingService.VERSION_51) Epoch.serializer.serialize(command.serializedAtEpoch, out); out.writeInt(version >= MessagingService.VERSION_50 ? CassandraUInt.fromLong(command.nowInSec()) : (int) command.nowInSec()); ColumnFilter.serializer.serialize(command.columnFilter(), out, version); @@ -1189,7 +1189,7 @@ public abstract class ReadCommand extends AbstractReadQuery return 2 // kind + flags + (command.isDigestQuery() ? TypeSizes.sizeofUnsignedVInt(command.digestVersion()) : 0) + command.metadata().id.serializedSize() - + (version >= MessagingService.VERSION_50 ? Epoch.serializer.serializedSize(command.metadata().epoch) : 0) + + (version >= MessagingService.VERSION_51 ? Epoch.serializer.serializedSize(command.metadata().epoch) : 0) + TypeSizes.INT_SIZE // command.nowInSec() is serialized as uint + ColumnFilter.serializer.serializedSize(command.columnFilter(), version) + RowFilter.serializer.serializedSize(command.rowFilter(), version) diff --git a/src/java/org/apache/cassandra/db/commitlog/CommitLogDescriptor.java b/src/java/org/apache/cassandra/db/commitlog/CommitLogDescriptor.java index 08bb189c90..82d8eb08df 100644 --- a/src/java/org/apache/cassandra/db/commitlog/CommitLogDescriptor.java +++ b/src/java/org/apache/cassandra/db/commitlog/CommitLogDescriptor.java @@ -63,13 +63,14 @@ public class CommitLogDescriptor public static final int VERSION_30 = 6; public static final int VERSION_40 = 7; public static final int VERSION_50 = 8; + public static final int VERSION_51 = 9; /** * Increment this number if there is a changes in the commit log disc layout or MessagingVersion changes. * Note: make sure to handle {@link #getMessagingVersion()} */ @VisibleForTesting - public static final int current_version = DatabaseDescriptor.getStorageCompatibilityMode().isBefore(5) ? VERSION_40 : VERSION_50; + public static final int current_version = DatabaseDescriptor.getStorageCompatibilityMode().isBefore(5) ? VERSION_40 : VERSION_51; final int version; public final long id; @@ -225,6 +226,8 @@ public class CommitLogDescriptor return MessagingService.VERSION_40; case VERSION_50: return MessagingService.VERSION_50; + case VERSION_51: + return MessagingService.VERSION_51; default: throw new IllegalStateException("Unknown commitlog version " + version); } diff --git a/src/java/org/apache/cassandra/db/partitions/PartitionUpdate.java b/src/java/org/apache/cassandra/db/partitions/PartitionUpdate.java index 9f25468495..5faf042bcb 100644 --- a/src/java/org/apache/cassandra/db/partitions/PartitionUpdate.java +++ b/src/java/org/apache/cassandra/db/partitions/PartitionUpdate.java @@ -729,7 +729,7 @@ public class PartitionUpdate extends AbstractBTreePartition assert !iter.isReverseOrder(); update.metadata.id.serialize(out); - if (version >= MessagingService.VERSION_50) + if (version >= MessagingService.VERSION_51) Epoch.serializer.serialize(update.metadata.epoch != null ? update.metadata.epoch : Epoch.EMPTY, out); UnfilteredRowIteratorSerializer.serializer.serialize(iter, null, out, version, update.rowCount()); } @@ -739,7 +739,7 @@ public class PartitionUpdate extends AbstractBTreePartition { TableId tableId = TableId.deserialize(in); Epoch remoteVersion = null; - if (version >= MessagingService.VERSION_50) + if (version >= MessagingService.VERSION_51) remoteVersion = Epoch.serializer.deserialize(in); TableMetadata tableMetadata; try @@ -796,7 +796,7 @@ public class PartitionUpdate extends AbstractBTreePartition if (position >= in.limit()) throw new EOFException(); - if (version >= MessagingService.VERSION_50) + if (version >= MessagingService.VERSION_51) { long epoch = VIntCoding.getUnsignedVInt(in, position); position += VIntCoding.computeVIntSize(epoch); @@ -816,7 +816,7 @@ public class PartitionUpdate extends AbstractBTreePartition try (UnfilteredRowIterator iter = update.unfilteredIterator()) { return update.metadata.id.serializedSize() - + (version >= MessagingService.VERSION_50 ? Epoch.serializer.serializedSize(update.metadata.epoch) : 0) + + (version >= MessagingService.VERSION_51 ? Epoch.serializer.serializedSize(update.metadata.epoch) : 0) + UnfilteredRowIteratorSerializer.serializer.serializedSize(iter, null, version, update.rowCount()); } } diff --git a/src/java/org/apache/cassandra/hints/HintsDescriptor.java b/src/java/org/apache/cassandra/hints/HintsDescriptor.java index 02820bcd04..3079c0b80c 100644 --- a/src/java/org/apache/cassandra/hints/HintsDescriptor.java +++ b/src/java/org/apache/cassandra/hints/HintsDescriptor.java @@ -69,7 +69,8 @@ final class HintsDescriptor static final int VERSION_30 = 1; static final int VERSION_40 = 2; static final int VERSION_50 = 3; - static final int CURRENT_VERSION = DatabaseDescriptor.getStorageCompatibilityMode().isBefore(5) ? VERSION_40 : VERSION_50; + static final int VERSION_51 = 4; + static final int CURRENT_VERSION = DatabaseDescriptor.getStorageCompatibilityMode().isBefore(5) ? VERSION_40 : VERSION_51; static final String COMPRESSION = "compression"; static final String ENCRYPTION = "encryption"; @@ -237,6 +238,8 @@ final class HintsDescriptor return MessagingService.VERSION_40; case VERSION_50: return MessagingService.VERSION_50; + case VERSION_51: + return MessagingService.VERSION_51; default: throw new AssertionError(); } diff --git a/src/java/org/apache/cassandra/net/Message.java b/src/java/org/apache/cassandra/net/Message.java index a20125c5a6..b0a0b9c48d 100644 --- a/src/java/org/apache/cassandra/net/Message.java +++ b/src/java/org/apache/cassandra/net/Message.java @@ -53,6 +53,7 @@ import static org.apache.cassandra.db.TypeSizes.sizeof; import static org.apache.cassandra.db.TypeSizes.sizeofUnsignedVInt; import static org.apache.cassandra.net.MessagingService.VERSION_40; import static org.apache.cassandra.net.MessagingService.VERSION_50; +import static org.apache.cassandra.net.MessagingService.VERSION_51; import static org.apache.cassandra.utils.FBUtilities.getBroadcastAddressAndPort; import static org.apache.cassandra.utils.MonotonicClock.Global.approxTime; import static org.apache.cassandra.utils.vint.VIntCoding.*; @@ -826,7 +827,7 @@ public class Message return -1; // not enough bytes to read id index += idSize; - if (version >= VERSION_50) + if (version >= VERSION_51) { int epochSize = computeUnsignedVIntSize(buf, index, readerLimit); if (epochSize < 0) @@ -888,7 +889,7 @@ public class Message index += computeUnsignedVIntSize(id); Epoch epoch = Epoch.EMPTY; - if (version >= VERSION_50) + if (version >= VERSION_51) { long epochl = getUnsignedVInt(buf, index); index += computeUnsignedVIntSize(epochl); @@ -924,7 +925,7 @@ public class Message private void serializeHeader(Header header, DataOutputPlus out, int version) throws IOException { out.writeUnsignedVInt(header.id); - if (version >= VERSION_50) + if (version >= VERSION_51) Epoch.messageSerializer.serialize(header.epoch, out, version); // int cast cuts off the high-order half of the timestamp, which we can assume remains // the same between now and when the recipient reconstructs it. @@ -939,7 +940,7 @@ public class Message { long id = in.readUnsignedVInt(); Epoch epoch = Epoch.EMPTY; - if (version >= VERSION_50) + if (version >= VERSION_51) epoch = Epoch.messageSerializer.deserialize(in, version); long currentTimeNanos = approxTime.now(); MonotonicClockTranslation timeSnapshot = approxTime.translate(); @@ -955,7 +956,7 @@ public class Message private void skipHeader(DataInputPlus in, int version) throws IOException { skipUnsignedVInt(in); // id - if (version >= VERSION_50) + if (version >= VERSION_51) skipUnsignedVInt(in); // epoch in.skipBytesFully(4); // createdAt skipUnsignedVInt(in); // expiresIn @@ -968,7 +969,7 @@ public class Message { long size = 0; size += sizeofUnsignedVInt(header.id); - if (version >= VERSION_50) + if (version >= VERSION_51) size += sizeofUnsignedVInt(header.epoch.getEpoch()); size += CREATION_TIME_SIZE; size += sizeofUnsignedVInt(NANOSECONDS.toMillis(header.expiresAtNanos - header.createdAtNanos)); @@ -1164,6 +1165,7 @@ public class Message private int serializedSize40; private int serializedSize50; + private int serializedSize51; /** * Serialized size of the entire message, for the provided messaging version. Caches the calculated value. @@ -1180,13 +1182,18 @@ public class Message if (serializedSize50 == 0) serializedSize50 = serializer.serializedSize(this, VERSION_50); return serializedSize50; + case VERSION_51: + if (serializedSize51 == 0) + serializedSize51 = serializer.serializedSize(this, VERSION_51); + return serializedSize51; default: throw new IllegalStateException("Unknown serialization version " + version); } } - private int payloadSize40 = -1; - private int payloadSize50 = -1; + private int payloadSize40 = -1; + private int payloadSize50 = -1; + private int payloadSize51 = -1; private int payloadSize(int version) { @@ -1200,6 +1207,10 @@ public class Message if (payloadSize50 < 0) payloadSize50 = serializer.payloadSize(this, VERSION_50); return payloadSize50; + case VERSION_51: + if (payloadSize51 < 0) + payloadSize51 = serializer.payloadSize(this, VERSION_51); + return payloadSize51; default: throw new IllegalStateException("Unkown serialization version " + version); diff --git a/src/java/org/apache/cassandra/net/MessagingService.java b/src/java/org/apache/cassandra/net/MessagingService.java index f4eaf72571..a0f40d3126 100644 --- a/src/java/org/apache/cassandra/net/MessagingService.java +++ b/src/java/org/apache/cassandra/net/MessagingService.java @@ -221,9 +221,10 @@ public class MessagingService extends MessagingServiceMBeanImpl implements Messa VERSION_3014(11), VERSION_40(12), // c14227 TTL overflow, 'uint' timestamps - VERSION_50(13); + VERSION_50(13), + VERSION_51(14); - public static final Version CURRENT = DatabaseDescriptor.getStorageCompatibilityMode().isBefore(5) ? VERSION_40 : VERSION_50; + public static final Version CURRENT = DatabaseDescriptor.getStorageCompatibilityMode().isBefore(5) ? VERSION_40 : VERSION_51; public final int value; @@ -253,6 +254,7 @@ public class MessagingService extends MessagingServiceMBeanImpl implements Messa public static final int VERSION_3014 = 11; public static final int VERSION_40 = 12; public static final int VERSION_50 = 13; // c14227 TTL overflow, 'uint' timestamps + public static final int VERSION_51 = 14; // TCM public static final int minimum_version = VERSION_40; public static final int current_version = Version.CURRENT.value; static AcceptVersions accept_messaging = new AcceptVersions(minimum_version, current_version); diff --git a/src/java/org/apache/cassandra/tcm/membership/Directory.java b/src/java/org/apache/cassandra/tcm/membership/Directory.java index ca5beecda5..bbd1225cbc 100644 --- a/src/java/org/apache/cassandra/tcm/membership/Directory.java +++ b/src/java/org/apache/cassandra/tcm/membership/Directory.java @@ -487,7 +487,7 @@ public class Directory implements MetadataValue else { out.writeBoolean(true); - UUIDSerializer.serializer.serialize(node.hostId, out, MessagingService.VERSION_50); + UUIDSerializer.serializer.serialize(node.hostId, out, MessagingService.VERSION_51); } } @@ -500,7 +500,7 @@ public class Directory implements MetadataValue NodeState state = NodeState.values()[in.readInt()]; NodeVersion nodeVersion = NodeVersion.serializer.deserialize(in, version); boolean hasHostId = in.readBoolean(); - UUID hostId = hasHostId ? UUIDSerializer.serializer.deserialize(in, MessagingService.VERSION_50) : null; + UUID hostId = hasHostId ? UUIDSerializer.serializer.deserialize(in, MessagingService.VERSION_51) : null; return new Node(id, addresses, location, state, nodeVersion, hostId); } @@ -515,7 +515,7 @@ public class Directory implements MetadataValue size += NodeVersion.serializer.serializedSize(node.version, version); size += TypeSizes.BOOL_SIZE; if (node.hostId != null) - size += UUIDSerializer.serializer.serializedSize(node.hostId, MessagingService.VERSION_50); + size += UUIDSerializer.serializer.serializedSize(node.hostId, MessagingService.VERSION_51); return size; } } diff --git a/test/data/serialization/5.1/gms.EndpointState.bin b/test/data/serialization/5.1/gms.EndpointState.bin new file mode 100644 index 0000000000000000000000000000000000000000..d5c4eacd842ff3d8e733753e86c51548e645fffe GIT binary patch literal 73 zcmZQzU`SZN3q=s8uEr1}@7q!y*71SA%fWR_&+=cN{b GoB{wnh$F55 literal 0 HcmV?d00001 diff --git a/test/data/serialization/5.1/service.SyncComplete.bin b/test/data/serialization/5.1/service.SyncComplete.bin new file mode 100644 index 0000000000000000000000000000000000000000..7c775cef6601900bc18ae7203966f3065b89c7a3 GIT binary patch literal 256 zcmZQ9F;>0c<1P56t3x-PL#*vKI-h~lJGHX7ATc@BkbyI}Brz`~u_(omfq{XM6-4|8 z6KwSi3{28VAc|Q!i4i1*Dg+YgajAAzm2+Rdd#;Yo&XAcWfMOscKp+K(8B1nIKH_b0 g|FODEaqFCb150c<1P56t3x-PL#*vKI-h~lJGHX7ATc@BkbyI}Brz`~u_(omfq{XM6-4|8 Y6KwTBrgRdBVuDc2(n)A)fLsO!06f1Mo&W#< literal 0 HcmV?d00001 diff --git a/test/data/serialization/5.1/service.ValidationComplete.bin b/test/data/serialization/5.1/service.ValidationComplete.bin new file mode 100644 index 0000000000000000000000000000000000000000..f0c502458a5f41d3a9154df35853be3f8abdd928 GIT binary patch literal 597 zcmZQ9F;>0c<1P56t3x-PL#*vKI-h~lJGHX7ATc@BkbyI}Brz`~u_(omfq{XM6-4|8 z6O16T4oCn&1DFI7j0{@&Md^BpK)o5MddZ2!#X!wPiFzp+C3-7NkY@k@z{YLD literal 0 HcmV?d00001 diff --git a/test/data/serialization/5.1/service.ValidationRequest.bin b/test/data/serialization/5.1/service.ValidationRequest.bin new file mode 100644 index 0000000000000000000000000000000000000000..04c492a8a1efcd9d17df4d49dced710d9acd7701 GIT binary patch literal 74 zcmZQ9F;>0c<1P56t3x-PL#*vKI-h~lJGHX7ATc@BkbyI}Brz`~u_(omfq{XM6-4}p H5-gVhu|gJN literal 0 HcmV?d00001 diff --git a/test/data/serialization/5.1/utils.EstimatedHistogram.bin b/test/data/serialization/5.1/utils.EstimatedHistogram.bin new file mode 100644 index 0000000000000000000000000000000000000000..e878eda0ce8d45a08740a90d3270bfd8611bfe83 GIT binary patch literal 97500 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 J&*VJ|{ttaffFu9_ literal 0 HcmV?d00001 diff --git a/test/unit/org/apache/cassandra/AbstractSerializationsTester.java b/test/unit/org/apache/cassandra/AbstractSerializationsTester.java index d1a96298bf..92d9cc9522 100644 --- a/test/unit/org/apache/cassandra/AbstractSerializationsTester.java +++ b/test/unit/org/apache/cassandra/AbstractSerializationsTester.java @@ -32,12 +32,13 @@ import static org.apache.cassandra.config.CassandraRelevantProperties.TEST_SERIA public class AbstractSerializationsTester { - protected static final String CUR_VER = CASSANDRA_VERSION.getString("5.0"); + protected static final String CUR_VER = CASSANDRA_VERSION.getString("5.1"); protected static final Map VERSION_MAP = new HashMap () {{ put("3.0", MessagingService.VERSION_30); put("4.0", MessagingService.VERSION_40); put("5.0", MessagingService.VERSION_50); + put("5.1", MessagingService.VERSION_51); }}; protected static final boolean EXECUTE_WRITES = TEST_SERIALIZATION_WRITES.getBoolean();