public FileMessageHeader deserialize(DataInput in, int version) throws IOException { UUID cfId = UUIDSerializer.serializer.deserialize(in, MessagingService.current_version); int sequenceNumber = in.readInt(); String sstableVersion = in.readUTF(); long estimatedKeys = in.readLong(); int count = in.readInt(); List<Pair<Long, Long>> sections = new ArrayList<>(count); for (int k = 0; k < count; k++) sections.add(Pair.create(in.readLong(), in.readLong())); CompressionInfo compressionInfo = CompressionInfo.serializer.deserialize(in, MessagingService.current_version); long repairedAt = in.readLong(); return new FileMessageHeader(cfId, sequenceNumber, sstableVersion, estimatedKeys, sections, compressionInfo, repairedAt); }
@Override public String toString() { final StringBuilder sb = new StringBuilder("Header ("); sb.append("cfId: ").append(cfId); sb.append(", #").append(sequenceNumber); sb.append(", version: ").append(version); sb.append(", estimated keys: ").append(estimatedKeys); sb.append(", transfer size: ").append(size()); sb.append(", compressed?: ").append(isCompressed()); sb.append(", repairedAt: ").append(repairedAt); sb.append(')'); return sb.toString(); }
this.sstableLevel = sstableLevel; this.header = header; this.size = calculateSize(); this.sstableLevel = sstableLevel; this.header = header; this.size = calculateSize();
/** * Call back after sending FileMessageHeader. * * @param header sent header */ public void fileSent(FileMessageHeader header) { long headerSize = header.size(); StreamingMetrics.totalOutgoingBytes.inc(headerSize); metrics.outgoingBytes.inc(headerSize); // schedule timeout for receiving ACK StreamTransferTask task = transfers.get(header.cfId); if (task != null) { task.scheduleTimeout(header.sequenceNumber, 12, TimeUnit.HOURS); } }
StreamReader reader = !header.isCompressed() ? new StreamReader(header, session) : new CompressedStreamReader(header, session);
/** * Call back after sending FileMessageHeader. * * @param header sent header */ public void fileSent(FileMessageHeader header) { long headerSize = header.size(); StreamingMetrics.totalOutgoingBytes.inc(headerSize); metrics.outgoingBytes.inc(headerSize); // schedule timeout for receiving ACK StreamTransferTask task = transfers.get(header.cfId); if (task != null) { task.scheduleTimeout(header.sequenceNumber, 12, TimeUnit.HOURS); } }
@SuppressWarnings("resource") public IncomingFileMessage deserialize(ReadableByteChannel in, int version, StreamSession session) throws IOException { DataInputPlus input = new DataInputStreamPlus(Channels.newInputStream(in)); FileMessageHeader header = FileMessageHeader.serializer.deserialize(input, version); StreamReader reader = !header.isCompressed() ? new StreamReader(header, session) : new CompressedStreamReader(header, session); try { return new IncomingFileMessage(reader.read(in), header); } catch (Throwable t) { JVMStabilityInspector.inspectThrowable(t); throw t; } }
@Override public String toString() { final StringBuilder sb = new StringBuilder("Header ("); sb.append("cfId: ").append(cfId); sb.append(", #").append(sequenceNumber); sb.append(", version: ").append(version); sb.append(", format: ").append(format); sb.append(", estimated keys: ").append(estimatedKeys); sb.append(", transfer size: ").append(size()); sb.append(", compressed?: ").append(isCompressed()); sb.append(", repairedAt: ").append(repairedAt); sb.append(", level: ").append(sstableLevel); sb.append(')'); return sb.toString(); }
/** * Call back after sending FileMessageHeader. * * @param header sent header */ public void fileSent(FileMessageHeader header) { long headerSize = header.size(); StreamingMetrics.totalOutgoingBytes.inc(headerSize); metrics.outgoingBytes.inc(headerSize); // schedule timeout for receiving ACK StreamTransferTask task = transfers.get(header.cfId); if (task != null) { task.scheduleTimeout(header.sequenceNumber, 12, TimeUnit.HOURS); } }
public OutgoingFileMessage(Ref<SSTableReader> ref, int sequenceNumber, long estimatedKeys, List<Pair<Long, Long>> sections, long repairedAt) { super(Type.FILE); this.ref = ref; SSTableReader sstable = ref.get(); filename = sstable.getFilename(); this.header = new FileMessageHeader(sstable.metadata.cfId, sequenceNumber, sstable.descriptor.version.toString(), estimatedKeys, sections, sstable.compression ? sstable.getCompressionMetadata() : null, repairedAt); }
@SuppressWarnings("resource") public IncomingFileMessage deserialize(ReadableByteChannel in, int version, StreamSession session) throws IOException { DataInputPlus input = new DataInputStreamPlus(Channels.newInputStream(in)); FileMessageHeader header = FileMessageHeader.serializer.deserialize(input, version); StreamReader reader = !header.isCompressed() ? new StreamReader(header, session) : new CompressedStreamReader(header, session); try { return new IncomingFileMessage(reader.read(in), header); } catch (Throwable t) { JVMStabilityInspector.inspectThrowable(t); throw t; } }
this.sstableLevel = sstableLevel; this.header = header; this.size = calculateSize(); this.sstableLevel = sstableLevel; this.header = header; this.size = calculateSize();
@Override public String toString() { final StringBuilder sb = new StringBuilder("Header ("); sb.append("cfId: ").append(cfId); sb.append(", #").append(sequenceNumber); sb.append(", version: ").append(version); sb.append(", format: ").append(format); sb.append(", estimated keys: ").append(estimatedKeys); sb.append(", transfer size: ").append(size()); sb.append(", compressed?: ").append(isCompressed()); sb.append(", repairedAt: ").append(repairedAt); sb.append(", level: ").append(sstableLevel); sb.append(')'); return sb.toString(); }
public synchronized void addTransferFile(Ref<SSTableReader> ref, long estimatedKeys, List<Pair<Long, Long>> sections, long repairedAt) { assert ref.get() != null && cfId.equals(ref.get().metadata.cfId); OutgoingFileMessage message = new OutgoingFileMessage(ref, sequenceNumber.getAndIncrement(), estimatedKeys, sections, repairedAt); files.put(message.header.sequenceNumber, message); totalSize += message.header.size(); }
public OutgoingFileMessage(Ref<SSTableReader> ref, int sequenceNumber, long estimatedKeys, List<Pair<Long, Long>> sections, long repairedAt, boolean keepSSTableLevel) { super(Type.FILE); this.ref = ref; SSTableReader sstable = ref.get(); filename = sstable.getFilename(); this.header = new FileMessageHeader(sstable.metadata.cfId, sequenceNumber, sstable.descriptor.version, sstable.descriptor.formatType, estimatedKeys, sections, sstable.compression ? sstable.getCompressionMetadata() : null, repairedAt, keepSSTableLevel ? sstable.getSSTableLevel() : 0, sstable.header == null ? null : sstable.header.toComponent()); }
@SuppressWarnings("resource") public IncomingFileMessage deserialize(ReadableByteChannel in, int version, StreamSession session) throws IOException { DataInputPlus input = new DataInputStreamPlus(Channels.newInputStream(in)); FileMessageHeader header = FileMessageHeader.serializer.deserialize(input, version); StreamReader reader = !header.isCompressed() ? new StreamReader(header, session) : new CompressedStreamReader(header, session); try { return new IncomingFileMessage(reader.read(in), header); } catch (Throwable t) { JVMStabilityInspector.inspectThrowable(t); throw t; } }
this.sstableLevel = sstableLevel; this.header = header; this.size = calculateSize(); this.sstableLevel = sstableLevel; this.header = header; this.size = calculateSize();
@Override public String toString() { final StringBuilder sb = new StringBuilder("Header ("); sb.append("cfId: ").append(cfId); sb.append(", #").append(sequenceNumber); sb.append(", version: ").append(version); sb.append(", format: ").append(format); sb.append(", estimated keys: ").append(estimatedKeys); sb.append(", transfer size: ").append(size()); sb.append(", compressed?: ").append(isCompressed()); sb.append(", repairedAt: ").append(repairedAt); sb.append(", level: ").append(sstableLevel); sb.append(')'); return sb.toString(); }
/** * Call back after receiving FileMessageHeader. * * @param message received file */ public void receive(IncomingFileMessage message) { long headerSize = message.header.size(); StreamingMetrics.totalIncomingBytes.inc(headerSize); metrics.incomingBytes.inc(headerSize); // send back file received message handler.sendMessage(new ReceivedMessage(message.header.cfId, message.header.sequenceNumber)); receivers.get(message.header.cfId).received(message.sstable); }
public OutgoingFileMessage(Ref<SSTableReader> ref, int sequenceNumber, long estimatedKeys, List<Pair<Long, Long>> sections, long repairedAt, boolean keepSSTableLevel) { super(Type.FILE); this.ref = ref; SSTableReader sstable = ref.get(); filename = sstable.getFilename(); this.header = new FileMessageHeader(sstable.metadata.cfId, sequenceNumber, sstable.descriptor.version, sstable.descriptor.formatType, estimatedKeys, sections, sstable.compression ? sstable.getCompressionMetadata() : null, repairedAt, keepSSTableLevel ? sstable.getSSTableLevel() : 0, sstable.header == null ? null : sstable.header.toComponent()); }