You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by bu...@apache.org on 2016/09/29 06:56:47 UTC
[02/50] [abbrv] hbase git commit: Revert "HBASE-16880 Reduce garbage
in BufferChain (binlijin)" to fix JIRA number
Revert "HBASE-16880 Reduce garbage in BufferChain (binlijin)" to fix JIRA number
This reverts commit ce493642c0e295a08701cdcfe3ddc6755cdd7718.
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/96c5a022
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/96c5a022
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/96c5a022
Branch: refs/heads/hbase-14439
Commit: 96c5a02217c5e0f89983ca216915b88ea07c175e
Parents: 07ed155
Author: Yu Li <li...@apache.org>
Authored: Fri Sep 23 11:03:21 2016 +0800
Committer: Yu Li <li...@apache.org>
Committed: Fri Sep 23 11:03:21 2016 +0800
----------------------------------------------------------------------
.../apache/hadoop/hbase/ipc/BufferChain.java | 17 ++++++++++--
.../org/apache/hadoop/hbase/ipc/RpcServer.java | 29 ++++++--------------
2 files changed, 23 insertions(+), 23 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/96c5a022/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/BufferChain.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/BufferChain.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/BufferChain.java
index 26bc56c..7adc94d 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/BufferChain.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/BufferChain.java
@@ -20,6 +20,8 @@ package org.apache.hadoop.hbase.ipc;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.GatheringByteChannel;
+import java.util.ArrayList;
+import java.util.List;
import org.apache.hadoop.hbase.classification.InterfaceAudience;
@@ -33,11 +35,22 @@ class BufferChain {
private int remaining = 0;
private int bufferOffset = 0;
- BufferChain(ByteBuffer[] buffers) {
+ BufferChain(ByteBuffer ... buffers) {
+ // Some of the incoming buffers can be null
+ List<ByteBuffer> bbs = new ArrayList<ByteBuffer>(buffers.length);
for (ByteBuffer b : buffers) {
+ if (b == null) continue;
+ bbs.add(b);
this.remaining += b.remaining();
}
- this.buffers = buffers;
+ this.buffers = bbs.toArray(new ByteBuffer[bbs.size()]);
+ }
+
+ BufferChain(List<ByteBuffer> buffers) {
+ for (ByteBuffer b : buffers) {
+ this.remaining += b.remaining();
+ }
+ this.buffers = buffers.toArray(new ByteBuffer[buffers.size()]);
}
/**
http://git-wip-us.apache.org/repos/asf/hbase/blob/96c5a022/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
index 0dbaf04..12c21d9 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java
@@ -411,9 +411,7 @@ public class RpcServer implements RpcServerInterface, ConfigurationObserver {
}
protected synchronized void setSaslTokenResponse(ByteBuffer response) {
- ByteBuffer[] responseBufs = new ByteBuffer[1];
- responseBufs[0] = response;
- this.response = new BufferChain(responseBufs);
+ this.response = new BufferChain(response);
}
protected synchronized void setResponse(Object m, final CellScanner cells,
@@ -460,20 +458,10 @@ public class RpcServer implements RpcServerInterface, ConfigurationObserver {
}
Message header = headerBuilder.build();
byte[] b = createHeaderAndMessageBytes(result, header, cellBlockSize);
- ByteBuffer[] responseBufs = null;
- int cellBlockBufferSize = 0;
- if (cellBlock != null) {
- cellBlockBufferSize = cellBlock.size();
- responseBufs = new ByteBuffer[1 + cellBlockBufferSize];
- } else {
- responseBufs = new ByteBuffer[1];
- }
- responseBufs[0] = ByteBuffer.wrap(b);
- if (cellBlock != null) {
- for (int i = 0; i < cellBlockBufferSize; i++) {
- responseBufs[i + 1] = cellBlock.get(i);
- }
- }
+ List<ByteBuffer> responseBufs = new ArrayList<ByteBuffer>(
+ (cellBlock == null ? 1 : cellBlock.size()) + 1);
+ responseBufs.add(ByteBuffer.wrap(b));
+ if (cellBlock != null) responseBufs.addAll(cellBlock);
bc = new BufferChain(responseBufs);
if (connection.useWrap) {
bc = wrapWithSasl(bc);
@@ -567,10 +555,9 @@ public class RpcServer implements RpcServerInterface, ConfigurationObserver {
+ " as call response.");
}
- ByteBuffer[] responseBufs = new ByteBuffer[2];
- responseBufs[0] = ByteBuffer.wrap(Bytes.toBytes(token.length));
- responseBufs[1] = ByteBuffer.wrap(token);
- return new BufferChain(responseBufs);
+ ByteBuffer bbTokenLength = ByteBuffer.wrap(Bytes.toBytes(token.length));
+ ByteBuffer bbTokenBytes = ByteBuffer.wrap(token);
+ return new BufferChain(bbTokenLength, bbTokenBytes);
}
@Override