public CompressionInfo serialize(FileMessageHeader header, DataOutputPlus out, int version) throws IOException { UUIDSerializer.serializer.serialize(header.cfId, out, version); out.writeInt(header.sequenceNumber); out.writeUTF(header.version); out.writeLong(header.estimatedKeys); out.writeInt(header.sections.size()); for (Pair<Long, Long> section : header.sections) { out.writeLong(section.left); out.writeLong(section.right); } // construct CompressionInfo here to avoid holding large number of Chunks on heap. CompressionInfo compressionInfo = null; if (header.compressionMetadata != null) compressionInfo = new CompressionInfo(header.compressionMetadata.getChunksForSections(header.sections), header.compressionMetadata.parameters); CompressionInfo.serializer.serialize(compressionInfo, out, version); out.writeLong(header.repairedAt); return compressionInfo; }
public CompressionInfo serialize(FileMessageHeader header, DataOutputPlus out, int version) throws IOException { UUIDSerializer.serializer.serialize(header.cfId, out, version); out.writeInt(header.sequenceNumber); out.writeUTF(header.version.toString()); //We can't stream to a node that doesn't understand a new sstable format if (version < StreamMessage.VERSION_22 && header.format != SSTableFormat.Type.LEGACY && header.format != SSTableFormat.Type.BIG) throw new UnsupportedOperationException("Can't stream non-legacy sstables to nodes < 2.2"); if (version >= StreamMessage.VERSION_22) out.writeUTF(header.format.name); out.writeLong(header.estimatedKeys); out.writeInt(header.sections.size()); for (Pair<Long, Long> section : header.sections) { out.writeLong(section.left); out.writeLong(section.right); } // construct CompressionInfo here to avoid holding large number of Chunks on heap. CompressionInfo compressionInfo = null; if (header.compressionMetadata != null) compressionInfo = new CompressionInfo(header.compressionMetadata.getChunksForSections(header.sections), header.compressionMetadata.parameters); CompressionInfo.serializer.serialize(compressionInfo, out, version); out.writeLong(header.repairedAt); out.writeInt(header.sstableLevel); if (version >= StreamMessage.VERSION_30 && header.version.storeRows()) SerializationHeader.serializer.serialize(header.version, header.header, out); return compressionInfo; }
public CompressionInfo serialize(FileMessageHeader header, DataOutputPlus out, int version) throws IOException { UUIDSerializer.serializer.serialize(header.cfId, out, version); out.writeInt(header.sequenceNumber); out.writeUTF(header.version.toString()); //We can't stream to a node that doesn't understand a new sstable format if (version < StreamMessage.VERSION_22 && header.format != SSTableFormat.Type.LEGACY && header.format != SSTableFormat.Type.BIG) throw new UnsupportedOperationException("Can't stream non-legacy sstables to nodes < 2.2"); if (version >= StreamMessage.VERSION_22) out.writeUTF(header.format.name); out.writeLong(header.estimatedKeys); out.writeInt(header.sections.size()); for (Pair<Long, Long> section : header.sections) { out.writeLong(section.left); out.writeLong(section.right); } // construct CompressionInfo here to avoid holding large number of Chunks on heap. CompressionInfo compressionInfo = null; if (header.compressionMetadata != null) compressionInfo = new CompressionInfo(header.compressionMetadata.getChunksForSections(header.sections), header.compressionMetadata.parameters); CompressionInfo.serializer.serialize(compressionInfo, out, version); out.writeLong(header.repairedAt); out.writeInt(header.sstableLevel); if (version >= StreamMessage.VERSION_30 && header.version.storeRows()) SerializationHeader.serializer.serialize(header.version, header.header, out); return compressionInfo; }
public CompressionInfo serialize(FileMessageHeader header, DataOutputPlus out, int version) throws IOException { UUIDSerializer.serializer.serialize(header.cfId, out, version); out.writeInt(header.sequenceNumber); out.writeUTF(header.version.toString()); //We can't stream to a node that doesn't understand a new sstable format if (version < StreamMessage.VERSION_22 && header.format != SSTableFormat.Type.LEGACY && header.format != SSTableFormat.Type.BIG) throw new UnsupportedOperationException("Can't stream non-legacy sstables to nodes < 2.2"); if (version >= StreamMessage.VERSION_22) out.writeUTF(header.format.name); out.writeLong(header.estimatedKeys); out.writeInt(header.sections.size()); for (Pair<Long, Long> section : header.sections) { out.writeLong(section.left); out.writeLong(section.right); } // construct CompressionInfo here to avoid holding large number of Chunks on heap. CompressionInfo compressionInfo = null; if (header.compressionMetadata != null) compressionInfo = new CompressionInfo(header.compressionMetadata.getChunksForSections(header.sections), header.compressionMetadata.parameters); CompressionInfo.serializer.serialize(compressionInfo, out, version); out.writeLong(header.repairedAt); out.writeInt(header.sstableLevel); if (version >= StreamMessage.VERSION_30 && header.version.storeRows()) SerializationHeader.serializer.serialize(header.version, header.header, out); return compressionInfo; }