public void serialize(OutgoingFileMessage message, DataOutputStreamPlus out, int version, StreamSession session) throws IOException { message.startTransfer(); try { message.serialize(out, version, session); session.fileSent(message.header); } finally { message.finishTransfer(); } } };
public synchronized void abort() { if (aborted) return; aborted = true; for (ScheduledFuture future : timeoutTasks.values()) future.cancel(false); timeoutTasks.clear(); Throwable fail = null; for (OutgoingFileMessage file : files.values()) { try { file.complete(); } catch (Throwable t) { if (fail == null) fail = t; else fail.addSuppressed(t); } } files.clear(); if (fail != null) Throwables.propagate(fail); }
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 void serialize(OutgoingFileMessage message, DataOutputStreamAndChannel out, int version, StreamSession session) throws IOException { message.serialize(out, version, session); session.fileSent(message.header); } };
/** * Received ACK for file at {@code sequenceNumber}. * * @param sequenceNumber sequence number of file */ public void complete(int sequenceNumber) { boolean signalComplete; synchronized (this) { ScheduledFuture timeout = timeoutTasks.remove(sequenceNumber); if (timeout != null) timeout.cancel(false); OutgoingFileMessage file = files.remove(sequenceNumber); if (file != null) file.complete(); signalComplete = files.isEmpty(); } // all file sent, notify session this task is complete. if (signalComplete) session.taskCompleted(this); }
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, session.keepSSTableLevel()); message = StreamHook.instance.reportOutgoingFile(session, ref.get(), message); files.put(message.header.sequenceNumber, message); totalSize += message.header.size(); }
public void serialize(OutgoingFileMessage message, DataOutputStreamPlus out, int version, StreamSession session) throws IOException { message.startTransfer(); try { message.serialize(out, version, session); session.fileSent(message.header); } finally { message.finishTransfer(); } } };
public synchronized void abort() { if (aborted) return; aborted = true; for (ScheduledFuture future : timeoutTasks.values()) future.cancel(false); timeoutTasks.clear(); Throwable fail = null; for (OutgoingFileMessage file : files.values()) { try { file.complete(); } catch (Throwable t) { if (fail == null) fail = t; else fail.addSuppressed(t); } } files.clear(); if (fail != null) Throwables.propagate(fail); }
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, session.keepSSTableLevel()); message = StreamHook.instance.reportOutgoingFile(session, ref.get(), message); files.put(message.header.sequenceNumber, message); totalSize += message.header.size(); }
public void serialize(OutgoingFileMessage message, DataOutputStreamPlus out, int version, StreamSession session) throws IOException { message.startTransfer(); try { message.serialize(out, version, session); session.fileSent(message.header); } finally { message.finishTransfer(); } } };
/** * Received ACK for file at {@code sequenceNumber}. * * @param sequenceNumber sequence number of file */ public void complete(int sequenceNumber) { boolean signalComplete; synchronized (this) { ScheduledFuture timeout = timeoutTasks.remove(sequenceNumber); if (timeout != null) timeout.cancel(false); OutgoingFileMessage file = files.remove(sequenceNumber); if (file != null) file.complete(); signalComplete = files.isEmpty(); } // all file sent, notify session this task is complete. if (signalComplete) session.taskCompleted(this); }
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, session.keepSSTableLevel()); message = StreamHook.instance.reportOutgoingFile(session, ref.get(), message); files.put(message.header.sequenceNumber, message); totalSize += message.header.size(); }
public synchronized void abort() { if (aborted) return; aborted = true; for (ScheduledFuture future : timeoutTasks.values()) future.cancel(false); timeoutTasks.clear(); Throwable fail = null; for (OutgoingFileMessage file : files.values()) { try { file.complete(); } catch (Throwable t) { if (fail == null) fail = t; else fail.addSuppressed(t); } } files.clear(); if (fail != null) Throwables.propagate(fail); }
public synchronized void abort() { if (aborted) return; aborted = true; for (ScheduledFuture future : timeoutTasks.values()) future.cancel(false); timeoutTasks.clear(); Throwable fail = null; for (OutgoingFileMessage file : files.values()) { try { file.complete(); } catch (Throwable t) { if (fail == null) fail = t; else fail.addSuppressed(t); } } files.clear(); if (fail != null) Throwables.propagate(fail); }
/** * Received ACK for file at {@code sequenceNumber}. * * @param sequenceNumber sequence number of file */ public void complete(int sequenceNumber) { boolean signalComplete; synchronized (this) { ScheduledFuture timeout = timeoutTasks.remove(sequenceNumber); if (timeout != null) timeout.cancel(false); OutgoingFileMessage file = files.remove(sequenceNumber); if (file != null) file.complete(); signalComplete = files.isEmpty(); } // all file sent, notify session this task is complete. if (signalComplete) session.taskCompleted(this); }
/** * Received ACK for file at {@code sequenceNumber}. * * @param sequenceNumber sequence number of file */ public void complete(int sequenceNumber) { boolean signalComplete; synchronized (this) { ScheduledFuture timeout = timeoutTasks.remove(sequenceNumber); if (timeout != null) timeout.cancel(false); OutgoingFileMessage file = files.remove(sequenceNumber); if (file != null) file.complete(); signalComplete = files.isEmpty(); } // all file sent, notify session this task is complete. if (signalComplete) session.taskCompleted(this); }