You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by am...@apache.org on 2016/01/11 11:23:00 UTC
incubator-asterixdb-hyracks git commit: Stop Network Output Channel
Sending Extra Bytes
Repository: incubator-asterixdb-hyracks
Updated Branches:
refs/heads/master 45d1649c8 -> 384b38491
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 <hu...@gmail.com>
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
Project: http://git-wip-us.apache.org/repos/asf/incubator-asterixdb-hyracks/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-asterixdb-hyracks/commit/384b3849
Tree: http://git-wip-us.apache.org/repos/asf/incubator-asterixdb-hyracks/tree/384b3849
Diff: http://git-wip-us.apache.org/repos/asf/incubator-asterixdb-hyracks/diff/384b3849
Branch: refs/heads/master
Commit: 384b38491be97fa3f73b03efba6dd101a742f17a
Parents: 45d1649
Author: Abdullah Alamoudi <ba...@gmail.com>
Authored: Mon Jan 11 08:57:47 2016 +0300
Committer: abdullah alamoudi <ba...@gmail.com>
Committed: Mon Jan 11 02:17:06 2016 -0800
----------------------------------------------------------------------
.../hyracks/comm/channels/NetworkOutputChannel.java | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb-hyracks/blob/384b3849/hyracks/hyracks-comm/src/main/java/org/apache/hyracks/comm/channels/NetworkOutputChannel.java
----------------------------------------------------------------------
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 @@ public class NetworkOutputChannel implements IFrameWriter {
@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 @@ public class NetworkOutputChannel implements IFrameWriter {
}
}
}
- 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