From 6b92c699e66f30c7974c79ba24de0bf2a91db151 Mon Sep 17 00:00:00 2001 From: chenheng Date: Fri, 23 Oct 2015 11:56:03 +0800 Subject: [PATCH] HBASE-14657 Remove unneeded API from EncodedSeeker --- .../io/encoding/BufferedDataBlockEncoder.java | 34 ---------------------- .../hadoop/hbase/io/encoding/DataBlockEncoder.java | 3 -- .../hbase/codec/prefixtree/PrefixTreeSeeker.java | 8 ----- .../hbase/io/encoding/TestDataBlockEncoders.java | 14 ++++----- 4 files changed, 7 insertions(+), 52 deletions(-) diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/io/encoding/BufferedDataBlockEncoder.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/io/encoding/BufferedDataBlockEncoder.java index dacabe6..74e0567 100644 --- a/hbase-common/src/main/java/org/apache/hadoop/hbase/io/encoding/BufferedDataBlockEncoder.java +++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/io/encoding/BufferedDataBlockEncoder.java @@ -595,40 +595,6 @@ abstract class BufferedDataBlockEncoder implements DataBlockEncoder { } @Override - public ByteBuffer getKeyValueBuffer() { - ByteBuffer kvBuffer = createKVBuffer(); - kvBuffer.putInt(current.keyLength); - kvBuffer.putInt(current.valueLength); - kvBuffer.put(current.keyBuffer, 0, current.keyLength); - ByteBufferUtils.copyFromBufferToBuffer(kvBuffer, currentBuffer, current.valueOffset, - current.valueLength); - if (current.tagsLength > 0) { - // Put short as unsigned - kvBuffer.put((byte) (current.tagsLength >> 8 & 0xff)); - kvBuffer.put((byte) (current.tagsLength & 0xff)); - if (current.tagsOffset != -1) { - // the offset of the tags bytes in the underlying buffer is marked. So the temp - // buffer,tagsBuffer was not been used. - ByteBufferUtils.copyFromBufferToBuffer(kvBuffer, currentBuffer, current.tagsOffset, - current.tagsLength); - } else { - // When tagsOffset is marked as -1, tag compression was present and so the tags were - // uncompressed into temp buffer, tagsBuffer. Let us copy it from there - kvBuffer.put(current.tagsBuffer, 0, current.tagsLength); - } - } - kvBuffer.rewind(); - return kvBuffer; - } - - protected ByteBuffer createKVBuffer() { - int kvBufSize = (int) KeyValue.getKeyValueDataStructureSize(current.keyLength, - current.valueLength, current.tagsLength); - ByteBuffer kvBuffer = ByteBuffer.allocate(kvBufSize); - return kvBuffer; - } - - @Override public Cell getKeyValue() { return current.shallowCopy(); } diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/io/encoding/DataBlockEncoder.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/io/encoding/DataBlockEncoder.java index 7218ad5..a9f693b 100644 --- a/hbase-common/src/main/java/org/apache/hadoop/hbase/io/encoding/DataBlockEncoder.java +++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/io/encoding/DataBlockEncoder.java @@ -154,9 +154,6 @@ public interface DataBlockEncoder { */ ByteBuffer getValueShallowCopy(); - //TODO : to be removed - currently used in testcases only - /** @return a key value buffer with the position set at the beginning of the buffer */ - ByteBuffer getKeyValueBuffer(); /** * @return the KeyValue object at the current position. Includes memstore diff --git a/hbase-prefix-tree/src/main/java/org/apache/hadoop/hbase/codec/prefixtree/PrefixTreeSeeker.java b/hbase-prefix-tree/src/main/java/org/apache/hadoop/hbase/codec/prefixtree/PrefixTreeSeeker.java index 2d0526c..94f83fb 100644 --- a/hbase-prefix-tree/src/main/java/org/apache/hadoop/hbase/codec/prefixtree/PrefixTreeSeeker.java +++ b/hbase-prefix-tree/src/main/java/org/apache/hadoop/hbase/codec/prefixtree/PrefixTreeSeeker.java @@ -89,14 +89,6 @@ public class PrefixTreeSeeker implements EncodedSeeker { * currently must do deep copy into new array */ @Override - public ByteBuffer getKeyValueBuffer() { - return KeyValueUtil.copyToNewByteBuffer(ptSearcher.current()); - } - - /** - * currently must do deep copy into new array - */ - @Override public Cell getKeyValue() { Cell cell = ptSearcher.current(); if (cell == null) { diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/io/encoding/TestDataBlockEncoders.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/io/encoding/TestDataBlockEncoders.java index 7fd0fd8..4170b44 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/io/encoding/TestDataBlockEncoders.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/io/encoding/TestDataBlockEncoders.java @@ -273,17 +273,17 @@ public class TestDataBlockEncoders { int i = 0; do { KeyValue expectedKeyValue = sampleKv.get(i); - ByteBuffer keyValue = seeker.getKeyValueBuffer(); - if (0 != Bytes.compareTo(keyValue.array(), keyValue.arrayOffset(), keyValue.limit(), + KeyValue keyValue = KeyValueUtil.copyToNewKeyValue(seeker.getKeyValue()); + if (0 != Bytes.compareTo(keyValue.getBuffer(), keyValue.getOffset(), keyValue.getLength(), expectedKeyValue.getBuffer(), expectedKeyValue.getOffset(), expectedKeyValue.getLength())) { int commonPrefix = 0; - byte[] left = keyValue.array(); + byte[] left = keyValue.getBuffer(); byte[] right = expectedKeyValue.getBuffer(); - int leftOff = keyValue.arrayOffset(); + int leftOff = keyValue.getOffset(); int rightOff = expectedKeyValue.getOffset(); - int length = Math.min(keyValue.limit(), expectedKeyValue.getLength()); + int length = Math.min(keyValue.getLength(), expectedKeyValue.getLength()); while (commonPrefix < length && left[commonPrefix + leftOff] == right[commonPrefix + rightOff]) { commonPrefix++; @@ -293,7 +293,7 @@ public class TestDataBlockEncoders { + "encoder: %s i: %d commonPrefix: %d" + "\n expected %s\n actual %s", encoder .toString(), i, commonPrefix, Bytes.toStringBinary(expectedKeyValue.getBuffer(), expectedKeyValue.getOffset(), expectedKeyValue.getLength()), Bytes - .toStringBinary(keyValue))); + .toStringBinary(keyValue.getBuffer()))); } i++; } while (seeker.next()); @@ -341,7 +341,7 @@ public class TestDataBlockEncoders { seeker.seekToKeyInBlock(keyValue, seekBefore); seeker.rewind(); - ByteBuffer actualKeyValue = seeker.getKeyValueBuffer(); + ByteBuffer actualKeyValue = KeyValueUtil.copyKeyToNewByteBuffer(seeker.getKeyValue()); ByteBuffer actualKey = seeker.getKeyDeepCopy(); ByteBuffer actualValue = seeker.getValueShallowCopy(); -- 1.9.3 (Apple Git-50)