Repository: hbase Updated Branches: refs/heads/0.98 1bdf05b1f -> 6903296a3 refs/heads/branch-1 4566e4df5 -> 67a43c305 refs/heads/master f06c0060a -> b9ec59ebb
HBASE-16694 Reduce garbage for onDiskChecksum in HFileBlock (binlijin) Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/6903296a Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/6903296a Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/6903296a Branch: refs/heads/0.98 Commit: 6903296a3c181958eda82d0e2cbe24aba986efda Parents: 1bdf05b Author: Andrew Purtell <[email protected]> Authored: Mon Sep 26 13:49:10 2016 -0700 Committer: Andrew Purtell <[email protected]> Committed: Mon Sep 26 13:55:26 2016 -0700 ---------------------------------------------------------------------- .../main/java/org/apache/hadoop/hbase/io/hfile/HFileBlock.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/6903296a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileBlock.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileBlock.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileBlock.java index 46e2ba1..546e1c6 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileBlock.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileBlock.java @@ -773,7 +773,7 @@ public class HFileBlock implements Cacheable { * part of onDiskBytesWithHeader. If data is uncompressed, then this * variable stores the checksum data for this block. */ - private byte[] onDiskChecksum; + private byte[] onDiskChecksum = HConstants.EMPTY_BYTE_ARRAY; /** * Valid in the READY state. Contains the header and the uncompressed (but @@ -918,7 +918,9 @@ public class HFileBlock implements Cacheable { onDiskBytesWithHeader.length + numBytes, uncompressedBytesWithHeader.length, onDiskBytesWithHeader.length); - onDiskChecksum = new byte[numBytes]; + if (onDiskChecksum.length != numBytes) { + onDiskChecksum = new byte[numBytes]; + } ChecksumUtil.generateChecksums( onDiskBytesWithHeader, 0, onDiskBytesWithHeader.length, onDiskChecksum, 0, fileContext.getChecksumType(), fileContext.getBytesPerChecksum());
