From 53a7b7f6db1b79b5be9e4d1d552b5c89ef5b653f Mon Sep 17 00:00:00 2001 From: Viraj Jasani Date: Mon, 18 Nov 2019 23:34:37 +0530 Subject: [PATCH] HBASE-23279 : ROW_INDEX_V1 as default DataBlock encoding --- .../hbase/client/ColumnFamilyDescriptorBuilder.java | 8 +++++--- .../org/apache/hadoop/hbase/io/hfile/HFileContext.java | 2 +- .../apache/hadoop/hbase/io/hfile/HFileContextBuilder.java | 2 +- .../hadoop/hbase/io/hfile/HFileDataBlockEncoderImpl.java | 4 ++-- .../hadoop/hbase/io/hfile/bucket/BucketAllocator.java | 1 + 5 files changed, 10 insertions(+), 7 deletions(-) diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ColumnFamilyDescriptorBuilder.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ColumnFamilyDescriptorBuilder.java index da7bdda3cc..08b97d86ce 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ColumnFamilyDescriptorBuilder.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ColumnFamilyDescriptorBuilder.java @@ -186,7 +186,8 @@ public class ColumnFamilyDescriptorBuilder { /** * Default data block encoding algorithm. */ - public static final DataBlockEncoding DEFAULT_DATA_BLOCK_ENCODING = DataBlockEncoding.NONE; + public static final DataBlockEncoding DEFAULT_DATA_BLOCK_ENCODING = + DataBlockEncoding.ROW_INDEX_V1; /** * Default number of versions of a record to keep. @@ -798,7 +799,7 @@ public class ColumnFamilyDescriptorBuilder { @Override public DataBlockEncoding getDataBlockEncoding() { return getStringOrDefault(DATA_BLOCK_ENCODING_BYTES, - n -> DataBlockEncoding.valueOf(n.toUpperCase()), DataBlockEncoding.NONE); + n -> DataBlockEncoding.valueOf(n.toUpperCase()), DataBlockEncoding.ROW_INDEX_V1); } /** @@ -808,7 +809,8 @@ public class ColumnFamilyDescriptorBuilder { * @return this (for chained invocation) */ public ModifyableColumnFamilyDescriptor setDataBlockEncoding(DataBlockEncoding type) { - return setValue(DATA_BLOCK_ENCODING_BYTES, type == null ? DataBlockEncoding.NONE.name() : type.name()); + return setValue(DATA_BLOCK_ENCODING_BYTES, type == null ? + DataBlockEncoding.ROW_INDEX_V1.name() : type.name()); } /** diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileContext.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileContext.java index d606497e2f..65aa8538bd 100644 --- a/hbase-common/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileContext.java +++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileContext.java @@ -60,7 +60,7 @@ public class HFileContext implements HeapSize, Cloneable { private int bytesPerChecksum = DEFAULT_BYTES_PER_CHECKSUM; /** Number of uncompressed bytes we allow per block. */ private int blocksize = HConstants.DEFAULT_BLOCKSIZE; - private DataBlockEncoding encoding = DataBlockEncoding.NONE; + private DataBlockEncoding encoding = DataBlockEncoding.ROW_INDEX_V1; /** Encryption algorithm and key used */ private Encryption.Context cryptoContext = Encryption.Context.NONE; private long fileCreateTime; diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileContextBuilder.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileContextBuilder.java index 5fa56264f3..d8e9279ca6 100644 --- a/hbase-common/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileContextBuilder.java +++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileContextBuilder.java @@ -48,7 +48,7 @@ public class HFileContextBuilder { private int bytesPerChecksum = DEFAULT_BYTES_PER_CHECKSUM; /** Number of uncompressed bytes we allow per block. */ private int blocksize = HConstants.DEFAULT_BLOCKSIZE; - private DataBlockEncoding encoding = DataBlockEncoding.NONE; + private DataBlockEncoding encoding = DataBlockEncoding.ROW_INDEX_V1; /** Crypto context */ private Encryption.Context cryptoContext = Encryption.Context.NONE; private long fileCreateTime = 0; diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileDataBlockEncoderImpl.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileDataBlockEncoderImpl.java index 347b1f3c59..dca596d691 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileDataBlockEncoderImpl.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileDataBlockEncoderImpl.java @@ -42,7 +42,7 @@ public class HFileDataBlockEncoderImpl implements HFileDataBlockEncoder { * @param encoding What kind of data block encoding will be used. */ public HFileDataBlockEncoderImpl(DataBlockEncoding encoding) { - this.encoding = encoding != null ? encoding : DataBlockEncoding.NONE; + this.encoding = encoding != null ? encoding : DataBlockEncoding.ROW_INDEX_V1; } public static HFileDataBlockEncoder createFromFileInfo( @@ -129,7 +129,7 @@ public class HFileDataBlockEncoderImpl implements HFileDataBlockEncoder { @Override public void startBlockEncoding(HFileBlockEncodingContext encodingCtx, DataOutputStream out) throws IOException { - if (this.encoding != null && this.encoding != DataBlockEncoding.NONE) { + if (this.encoding != DataBlockEncoding.NONE) { this.encoding.getEncoder().startBlockEncoding(encodingCtx, out); } } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.java index 2883ff2f16..7784a2184d 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.java @@ -305,6 +305,7 @@ public final class BucketAllocator { BucketAllocator(long availableSpace, int[] bucketSizes) throws BucketAllocatorException { this.bucketSizes = bucketSizes == null ? DEFAULT_BUCKET_SIZES : bucketSizes; + LOG.info("BucketSizes during Bucket Allocation: {}", this.bucketSizes); Arrays.sort(this.bucketSizes); this.bigItemSize = Ints.max(this.bucketSizes); this.bucketCapacity = FEWEST_ITEMS_IN_BUCKET * (long) bigItemSize; -- 2.17.2 (Apple Git-113)