abdullah alamoudi has submitted this change and it was merged. Change subject: Stop Network Output Channel Sending Extra Bytes ......................................................................
Stop Network Output Channel Sending Extra Bytes This change re-introduce an optimization to the output channel which ensures sending of data bytes only. This optimization was broken when the big object change was introduced. Change-Id: I896daf80deb23bcae5d5e934565cf5493ed828ba Reviewed-on: https://asterix-gerrit.ics.uci.edu/581 Reviewed-by: Murtadha Hubail <[email protected]> Tested-by: Jenkins <[email protected]> --- M hyracks/hyracks-comm/src/main/java/org/apache/hyracks/comm/channels/NetworkOutputChannel.java 1 file changed, 8 insertions(+), 7 deletions(-) Approvals: Murtadha Hubail: Looks good to me, approved Jenkins: Verified diff --git a/hyracks/hyracks-comm/src/main/java/org/apache/hyracks/comm/channels/NetworkOutputChannel.java b/hyracks/hyracks-comm/src/main/java/org/apache/hyracks/comm/channels/NetworkOutputChannel.java index 84307c2..ed4279d 100644 --- a/hyracks/hyracks-comm/src/main/java/org/apache/hyracks/comm/channels/NetworkOutputChannel.java +++ b/hyracks/hyracks-comm/src/main/java/org/apache/hyracks/comm/channels/NetworkOutputChannel.java @@ -58,8 +58,7 @@ @Override public void nextFrame(ByteBuffer buffer) throws HyracksDataException { ByteBuffer destBuffer = null; - int startPos = 0; - do { + while (buffer.hasRemaining()) { synchronized (this) { while (true) { if (aborted) { @@ -80,14 +79,16 @@ } } } - buffer.position(startPos); - startPos = Math.min(startPos + destBuffer.capacity(), buffer.capacity()); - buffer.limit(startPos); destBuffer.clear(); - destBuffer.put(buffer); + if (destBuffer.capacity() < buffer.remaining()) { + destBuffer.put(buffer.array(), buffer.position(), destBuffer.capacity()); + buffer.position(buffer.position() + destBuffer.capacity()); + } else { + destBuffer.put(buffer); + } destBuffer.flip(); ccb.getWriteInterface().getFullBufferAcceptor().accept(destBuffer); - } while (startPos < buffer.capacity()); + } } @Override -- To view, visit https://asterix-gerrit.ics.uci.edu/581 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-MessageType: merged Gerrit-Change-Id: I896daf80deb23bcae5d5e934565cf5493ed828ba Gerrit-PatchSet: 3 Gerrit-Project: hyracks Gerrit-Branch: master Gerrit-Owner: abdullah alamoudi <[email protected]> Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Murtadha Hubail <[email protected]> Gerrit-Reviewer: abdullah alamoudi <[email protected]>
