From af0e23c359ec908316992c8ed337af32ebcab491 Mon Sep 17 00:00:00 2001 From: openinx Date: Fri, 21 Jun 2019 14:14:44 +0800 Subject: [PATCH] HBASE-22547 Align the config keys and add document for offheap read in HBase Book. (#301) --- .../hadoop/hbase/io/ByteBuffAllocator.java | 19 +- .../hbase/io/TestByteBuffAllocator.java | 10 + .../hbase/master/MasterRpcServices.java | 5 +- .../hbase/regionserver/RSRpcServices.java | 5 +- .../mob/TestMobWithByteBuffAllocator.java | 4 +- src/main/asciidoc/_chapters/architecture.adoc | 48 ----- .../_chapters/offheap_read_write.adoc | 186 ++++++++++++++++++ src/main/asciidoc/book.adoc | 1 + .../images/bytebuff-allocator-stats.png | Bin 0 -> 64120 bytes .../resources/images/offheap-overview.png | Bin 0 -> 64687 bytes 10 files changed, 219 insertions(+), 59 deletions(-) create mode 100644 src/main/asciidoc/_chapters/offheap_read_write.adoc create mode 100644 src/site/resources/images/bytebuff-allocator-stats.png create mode 100644 src/site/resources/images/offheap-overview.png diff --git a/hbase-common/src/main/java/org/apache/hadoop/hbase/io/ByteBuffAllocator.java b/hbase-common/src/main/java/org/apache/hadoop/hbase/io/ByteBuffAllocator.java index 5c2c8ff3e8c..9991e798b57 100644 --- a/hbase-common/src/main/java/org/apache/hadoop/hbase/io/ByteBuffAllocator.java +++ b/hbase-common/src/main/java/org/apache/hadoop/hbase/io/ByteBuffAllocator.java @@ -68,10 +68,21 @@ public class ByteBuffAllocator { // default heap allocator, it will just allocate ByteBuffers from heap but wrapped by an ByteBuff. public static final ByteBuffAllocator HEAP = ByteBuffAllocator.createOnHeap(); + public static final String ALLOCATOR_POOL_ENABLED_KEY = "hbase.server.allocator.pool.enabled"; + public static final String MAX_BUFFER_COUNT_KEY = "hbase.server.allocator.max.buffer.count"; public static final String BUFFER_SIZE_KEY = "hbase.server.allocator.buffer.size"; + public static final String MIN_ALLOCATE_SIZE_KEY = "hbase.server.allocator.minimal.allocate.size"; + + /** + * @deprecated use {@link ByteBuffAllocator#ALLOCATOR_POOL_ENABLED_KEY} instead. + */ + @Deprecated + public static final String DEPRECATED_ALLOCATOR_POOL_ENABLED_KEY = + "hbase.ipc.server.reservoir.enabled"; + /** * @deprecated use {@link ByteBuffAllocator#MAX_BUFFER_COUNT_KEY} instead. */ @@ -88,9 +99,12 @@ public class ByteBuffAllocator { * The hbase.ipc.server.reservoir.initial.max and hbase.ipc.server.reservoir.initial.buffer.size * were introduced in HBase2.0.0, while in HBase3.0.0 the two config keys will be replaced by * {@link ByteBuffAllocator#MAX_BUFFER_COUNT_KEY} and {@link ByteBuffAllocator#BUFFER_SIZE_KEY}. - * Keep the two old config keys here for HBase2.x compatibility. + * Also the hbase.ipc.server.reservoir.enabled will be replaced by + * hbase.server.allocator.pool.enabled. Keep the three old config keys here for HBase2.x + * compatibility. */ static { + Configuration.addDeprecation(DEPRECATED_ALLOCATOR_POOL_ENABLED_KEY, ALLOCATOR_POOL_ENABLED_KEY); Configuration.addDeprecation(DEPRECATED_MAX_BUFFER_COUNT_KEY, MAX_BUFFER_COUNT_KEY); Configuration.addDeprecation(DEPRECATED_BUFFER_SIZE_KEY, BUFFER_SIZE_KEY); } @@ -113,9 +127,6 @@ public class ByteBuffAllocator { */ public static final int DEFAULT_BUFFER_SIZE = 65 * 1024; - public static final String MIN_ALLOCATE_SIZE_KEY = - "hbase.ipc.server.reservoir.minimal.allocating.size"; - public static final Recycler NONE = () -> { }; diff --git a/hbase-common/src/test/java/org/apache/hadoop/hbase/io/TestByteBuffAllocator.java b/hbase-common/src/test/java/org/apache/hadoop/hbase/io/TestByteBuffAllocator.java index 4c88b8fe67e..a0605fc6c6e 100644 --- a/hbase-common/src/test/java/org/apache/hadoop/hbase/io/TestByteBuffAllocator.java +++ b/hbase-common/src/test/java/org/apache/hadoop/hbase/io/TestByteBuffAllocator.java @@ -356,5 +356,15 @@ public class TestByteBuffAllocator { allocator = ByteBuffAllocator.create(conf, true); Assert.assertEquals(2048, allocator.getBufferSize()); Assert.assertEquals(11, allocator.getTotalBufferCount()); + + conf = new Configuration(); + conf.setBoolean(ByteBuffAllocator.DEPRECATED_ALLOCATOR_POOL_ENABLED_KEY, false); + Assert.assertFalse(conf.getBoolean(ByteBuffAllocator.ALLOCATOR_POOL_ENABLED_KEY, true)); + conf.setBoolean(ByteBuffAllocator.DEPRECATED_ALLOCATOR_POOL_ENABLED_KEY, true); + Assert.assertTrue(conf.getBoolean(ByteBuffAllocator.ALLOCATOR_POOL_ENABLED_KEY, false)); + conf.setBoolean(ByteBuffAllocator.ALLOCATOR_POOL_ENABLED_KEY, true); + Assert.assertTrue(conf.getBoolean(ByteBuffAllocator.ALLOCATOR_POOL_ENABLED_KEY, false)); + conf.setBoolean(ByteBuffAllocator.ALLOCATOR_POOL_ENABLED_KEY, false); + Assert.assertFalse(conf.getBoolean(ByteBuffAllocator.ALLOCATOR_POOL_ENABLED_KEY, true)); } } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java index 0b6201c0a61..654336fb9c4 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java @@ -60,6 +60,7 @@ import org.apache.hadoop.hbase.client.replication.ReplicationPeerConfigUtil; import org.apache.hadoop.hbase.coprocessor.MasterCoprocessor; import org.apache.hadoop.hbase.errorhandling.ForeignException; import org.apache.hadoop.hbase.exceptions.UnknownProtocolException; +import org.apache.hadoop.hbase.io.ByteBuffAllocator; import org.apache.hadoop.hbase.io.hfile.HFile; import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils; import org.apache.hadoop.hbase.ipc.PriorityFunction; @@ -387,8 +388,8 @@ public class MasterRpcServices extends RSRpcServices RpcSchedulerFactory rpcSchedulerFactory, InetSocketAddress bindAddress, String name) throws IOException { // RpcServer at HM by default enable ByteBufferPool iff HM having user table region in it - boolean reservoirEnabled = conf.getBoolean(RESERVOIR_ENABLED_KEY, - LoadBalancer.isMasterCanHostUserRegions(conf)); + boolean reservoirEnabled = conf.getBoolean(ByteBuffAllocator.ALLOCATOR_POOL_ENABLED_KEY, + LoadBalancer.isMasterCanHostUserRegions(conf)); try { return RpcServerFactory.createRpcServer(server, name, getServices(), bindAddress, // use final bindAddress for this server. diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java index 3e961a704ce..68169130557 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java @@ -88,6 +88,7 @@ import org.apache.hadoop.hbase.exceptions.OutOfOrderScannerNextException; import org.apache.hadoop.hbase.exceptions.ScannerResetException; import org.apache.hadoop.hbase.exceptions.UnknownProtocolException; import org.apache.hadoop.hbase.filter.ByteArrayComparable; +import org.apache.hadoop.hbase.io.ByteBuffAllocator; import org.apache.hadoop.hbase.io.TimeRange; import org.apache.hadoop.hbase.io.hfile.BlockCache; import org.apache.hadoop.hbase.ipc.HBaseRPCErrorHandler; @@ -288,8 +289,6 @@ public class RSRpcServices implements HBaseRPCErrorHandler, */ static final int BATCH_ROWS_THRESHOLD_DEFAULT = 5000; - public static final String RESERVOIR_ENABLED_KEY = "hbase.ipc.server.reservoir.enabled"; - // Request counter. (Includes requests that are not serviced by regions.) // Count only once for requests with multiple actions like multi/caching-scan/replayBatch final LongAdder requestCount = new LongAdder(); @@ -1275,7 +1274,7 @@ public class RSRpcServices implements HBaseRPCErrorHandler, protected RpcServerInterface createRpcServer(Server server, Configuration conf, RpcSchedulerFactory rpcSchedulerFactory, InetSocketAddress bindAddress, String name) throws IOException { - boolean reservoirEnabled = conf.getBoolean(RESERVOIR_ENABLED_KEY, true); + boolean reservoirEnabled = conf.getBoolean(ByteBuffAllocator.ALLOCATOR_POOL_ENABLED_KEY, true); try { return RpcServerFactory.createRpcServer(server, name, getServices(), bindAddress, // use final bindAddress for this server. diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/mob/TestMobWithByteBuffAllocator.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/mob/TestMobWithByteBuffAllocator.java index a527740b3e1..e84af12c978 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/mob/TestMobWithByteBuffAllocator.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/mob/TestMobWithByteBuffAllocator.java @@ -30,7 +30,7 @@ import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.ResultScanner; import org.apache.hadoop.hbase.client.Scan; import org.apache.hadoop.hbase.client.Table; -import org.apache.hadoop.hbase.regionserver.RSRpcServices; +import org.apache.hadoop.hbase.io.ByteBuffAllocator; import org.apache.hadoop.hbase.snapshot.MobSnapshotTestingUtils; import org.apache.hadoop.hbase.snapshot.SnapshotTestingUtils; import org.apache.hadoop.hbase.testclassification.MediumTests; @@ -64,7 +64,7 @@ public class TestMobWithByteBuffAllocator { @BeforeClass public static void setUp() throws Exception { // Must use the ByteBuffAllocator here - CONF.setBoolean(RSRpcServices.RESERVOIR_ENABLED_KEY, true); + CONF.setBoolean(ByteBuffAllocator.ALLOCATOR_POOL_ENABLED_KEY, true); // Must use OFF-HEAP BucketCache here. CONF.setFloat(HConstants.HFILE_BLOCK_CACHE_SIZE_KEY, 0.1f); CONF.set(HConstants.BUCKET_CACHE_IOENGINE_KEY, "offheap"); diff --git a/src/main/asciidoc/_chapters/architecture.adoc b/src/main/asciidoc/_chapters/architecture.adoc index 2b05b50d003..06119b5fc86 100644 --- a/src/main/asciidoc/_chapters/architecture.adoc +++ b/src/main/asciidoc/_chapters/architecture.adoc @@ -931,54 +931,6 @@ For a RegionServer hosting data that can comfortably fit into cache, or if your The compressed BlockCache is disabled by default. To enable it, set `hbase.block.data.cachecompressed` to `true` in _hbase-site.xml_ on all RegionServers. -[[regionserver.offheap]] -=== RegionServer Offheap Read/Write Path - -[[regionserver.offheap.readpath]] -==== Offheap read-path -In hbase-2.0.0, link:https://issues.apache.org/jira/browse/HBASE-11425[HBASE-11425] changed the HBase read path so it -could hold the read-data off-heap avoiding copying of cached data on to the java heap. -This reduces GC pauses given there is less garbage made and so less to clear. The off-heap read path has a performance -that is similar/better to that of the on-heap LRU cache. This feature is available since HBase 2.0.0. -If the BucketCache is in `file` mode, fetching will always be slower compared to the native on-heap LruBlockCache. -Refer to below blogs for more details and test results on off heaped read path -link:https://blogs.apache.org/hbase/entry/offheaping_the_read_path_in[Offheaping the Read Path in Apache HBase: Part 1 of 2] -and link:https://blogs.apache.org/hbase/entry/offheap-read-path-in-production[Offheap Read-Path in Production - The Alibaba story] - -For an end-to-end off-heaped read-path, first of all there should be an off-heap backed <>(BC). Configure 'hbase.bucketcache.ioengine' to off-heap in -_hbase-site.xml_. Also specify the total capacity of the BC using `hbase.bucketcache.size` config. Please remember to adjust value of 'HBASE_OFFHEAPSIZE' in -_hbase-env.sh_. This is how we specify the max possible off-heap memory allocation for the -RegionServer java process. This should be bigger than the off-heap BC size. Please keep in mind that there is no default for `hbase.bucketcache.ioengine` -which means the BC is turned OFF by default (See <>). - -Next thing to tune is the ByteBuffer pool on the RPC server side. -The buffers from this pool will be used to accumulate the cell bytes and create a result cell block to send back to the client side. -`hbase.ipc.server.reservoir.enabled` can be used to turn this pool ON or OFF. By default this pool is ON and available. HBase will create off heap ByteBuffers -and pool them. Please make sure not to turn this OFF if you want end-to-end off-heaping in read path. -If this pool is turned off, the server will create temp buffers on heap to accumulate the cell bytes and make a result cell block. This can impact the GC on a highly read loaded server. -The user can tune this pool with respect to how many buffers are in the pool and what should be the size of each ByteBuffer. -Use the config `hbase.ipc.server.reservoir.initial.buffer.size` to tune each of the buffer sizes. Default is 64 KB. - -When the read pattern is a random row read load and each of the rows are smaller in size compared to this 64 KB, try reducing this. -When the result size is larger than one ByteBuffer size, the server will try to grab more than one buffer and make a result cell block out of these. When the pool is running out of buffers, the server will end up creating temporary on-heap buffers. - -The maximum number of ByteBuffers in the pool can be tuned using the config 'hbase.ipc.server.reservoir.initial.max'. Its value defaults to 64 * region server handlers configured (See the config 'hbase.regionserver.handler.count'). The math is such that by default we consider 2 MB as the result cell block size per read result and each handler will be handling a read. For 2 MB size, we need 32 buffers each of size 64 KB (See default buffer size in pool). So per handler 32 ByteBuffers(BB). We allocate twice this size as the max BBs count such that one handler can be creating the response and handing it to the RPC Responder thread and then handling a new request creating a new response cell block (using pooled buffers). Even if the responder could not send back the first TCP reply immediately, our count should allow that we should still have enough buffers in our pool without having to make temporary buffers on the heap. Again for smaller sized random row reads, tune this max count. There are lazily created buffers and the count is the max count to be pooled. - -If you still see GC issues even after making end-to-end read path off-heap, look for issues in the appropriate buffer pool. Check the below RegionServer log with INFO level: -[source] ----- -Pool already reached its max capacity : XXX and no free buffers now. Consider increasing the value for 'hbase.ipc.server.reservoir.initial.max' ? ----- - -The setting for _HBASE_OFFHEAPSIZE_ in _hbase-env.sh_ should consider this off heap buffer pool at the RPC side also. We need to config this max off heap size for the RegionServer as a bit higher than the sum of this max pool size and the off heap cache size. The TCP layer will also need to create direct bytebuffers for TCP communication. Also the DFS client will need some off-heap to do its workings especially if short-circuit reads are configured. Allocating an extra of 1 - 2 GB for the max direct memory size has worked in tests. - -If you are using co processors and refer the Cells in the read results, DO NOT store reference to these Cells out of the scope of the CP hook methods. Some times the CPs need store info about the cell (Like its row key) for considering in the next CP hook call etc. For such cases, pls clone the required fields of the entire Cell as per the use cases. [ See CellUtil#cloneXXX(Cell) APIs ] - -[[regionserver.offheap.writepath]] -==== Offheap write-path - -TODO - [[regionserver_splitting_implementation]] === RegionServer Splitting Implementation diff --git a/src/main/asciidoc/_chapters/offheap_read_write.adoc b/src/main/asciidoc/_chapters/offheap_read_write.adoc new file mode 100644 index 00000000000..dad8ed08d13 --- /dev/null +++ b/src/main/asciidoc/_chapters/offheap_read_write.adoc @@ -0,0 +1,186 @@ +//// +/** + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +//// + +[[offheap_read_write]] += RegionServer Offheap Read/Write Path +:doctype: book +:numbered: +:toc: left +:icons: font +:experimental: + +[[regionserver.offheap.overview]] +== Overview + +For reducing the Java GC impact to P99/P999 RPC latency, HBase 2.x has made the offheap read and write path. The cells are +allocated from JVM offheap memory area, which won’t be garbage collected by JVM and need to be deallocated explicitly by +upstream callers. In the write path, the request packet received from client will be allocated offheap and retained +until those cells are successfully written to the WAL and Memstore. The memory data structure in Memstore does +not directly store the cell memory, but reference to cells which are encoded in multiple chunks in MSLAB, this is easier +to manage the offheap memory. Similarly, in the read path, we’ll try to read the cache firstly, if the cache +misses, go to the HFile and read the corresponding block. The workflow: from reading blocks to sending cells to +client, it's basically not involved in on-heap memory allocations. + +image::offheap-overview.png[] + + +[[regionserver.offheap.readpath]] +== Offheap read-path +In HBase-2.0.0, link:https://issues.apache.org/jira/browse/HBASE-11425[HBASE-11425] changed the HBase read path so it +could hold the read-data off-heap (from BucketCache) avoiding copying of cached data on to the java heap. +This reduces GC pauses given there is less garbage made and so less to clear. The off-heap read path has a performance +that is similar/better to that of the on-heap LRU cache. This feature is available since HBase 2.0.0. +If the BucketCache is in `file` mode, fetching will always be slower compared to the native on-heap LruBlockCache. +Refer to below blogs for more details and test results on off heaped read path +link:https://blogs.apache.org/hbase/entry/offheaping_the_read_path_in[Offheaping the Read Path in Apache HBase: Part 1 of 2] +and link:https://blogs.apache.org/hbase/entry/offheap-read-path-in-production[Offheap Read-Path in Production - The Alibaba story] + +For an end-to-end off-heaped read-path, first of all there should be an off-heap backed <>. Configure 'hbase.bucketcache.ioengine' to off-heap in +_hbase-site.xml_. Also specify the total capacity of the BucketCache using `hbase.bucketcache.size` config. Please remember to adjust value of 'HBASE_OFFHEAPSIZE' in +_hbase-env.sh_. This is how we specify the max possible off-heap memory allocation for the RegionServer java process. +This should be bigger than the off-heap BC size. Please keep in mind that there is no default for `hbase.bucketcache.ioengine` +which means the BC is turned OFF by default (See <>). + +Next thing to tune is the ByteBuffer pool on the RPC server side: + +NOTE: the config keys which start with prefix `hbase.ipc.server.reservoir` are deprecated in HBase3.x. If you are still +in HBase2.x, then just use the old config keys. otherwise if in HBase3.x, please use the new config keys. +(See <>) + +The buffers from this pool will be used to accumulate the cell bytes and create a result cell block to send back to the client side. +`hbase.ipc.server.reservoir.enabled` can be used to turn this pool ON or OFF. By default this pool is ON and available. HBase will create off heap ByteBuffers +and pool them. Please make sure not to turn this OFF if you want end-to-end off-heaping in read path. +If this pool is turned off, the server will create temp buffers on heap to accumulate the cell bytes and make a result cell block. This can impact the GC on a highly read loaded server. +The user can tune this pool with respect to how many buffers are in the pool and what should be the size of each ByteBuffer. +Use the config `hbase.ipc.server.reservoir.initial.buffer.size` to tune each of the buffer sizes. Default is 64 KB for HBase2.x, while it will be changed to 65KB by default for HBase3.x +(see link:https://issues.apache.org/jira/browse/HBASE-22532[HBASE-22532]) + +When the result size is larger than one ByteBuffer size, the server will try to grab more than one ByteBuffer and make a result cell block out of these. +When the pool is running out of buffers, the server will end up creating temporary on-heap buffers. + +The maximum number of ByteBuffers in the pool can be tuned using the config `hbase.ipc.server.reservoir.initial.max`. +Its value defaults to 64 * region server handlers configured (See the config `hbase.regionserver.handler.count`). The +math is such that by default we consider 2 MB as the result cell block size per read result and each handler will be +handling a read. For 2 MB size, we need 32 buffers each of size 64 KB (See default buffer size in pool). So per handler +32 ByteBuffers(BB). We allocate twice this size as the max BBs count such that one handler can be creating the response +and handing it to the RPC Responder thread and then handling a new request creating a new response cell block (using +pooled buffers). Even if the responder could not send back the first TCP reply immediately, our count should allow that +we should still have enough buffers in our pool without having to make temporary buffers on the heap. Again for smaller +sized random row reads, tune this max count. There are lazily created buffers and the count is the max count to be pooled. + +If you still see GC issues even after making end-to-end read path off-heap, look for issues in the appropriate buffer +pool. Check the below RegionServer log with INFO level in HBase2.x: + +[source] +---- +Pool already reached its max capacity : XXX and no free buffers now. Consider increasing the value for 'hbase.ipc.server.reservoir.initial.max' ? +---- + +Or the following log message in HBase3.x: + +[source] +---- +Pool already reached its max capacity : XXX and no free buffers now. Consider increasing the value for 'hbase.server.allocator.max.buffer.count' ? +---- + +The setting for _HBASE_OFFHEAPSIZE_ in _hbase-env.sh_ should consider this off heap buffer pool at the RPC side also. +We need to config this max off heap size for the RegionServer as a bit higher than the sum of this max pool size and +the off heap cache size. The TCP layer will also need to create direct bytebuffers for TCP communication. Also the DFS +client will need some off-heap to do its workings especially if short-circuit reads are configured. Allocating an extra +of 1 - 2 GB for the max direct memory size has worked in tests. + +If you are using co processors and refer the Cells in the read results, DO NOT store reference to these Cells out of +the scope of the CP hook methods. Some times the CPs need store info about the cell (Like its row key) for considering +in the next CP hook call etc. For such cases, pls clone the required fields of the entire Cell as per the use cases. +[ See CellUtil#cloneXXX(Cell) APIs ] + +[[regionserver.read.hdfs.block.offheap]] +== Read block from HDFS to offheap directly + +In HBase-2.x, the RegionServer will still read block from HDFS to a temporary heap ByteBuffer and then flush to BucketCache's +IOEngine asynchronously, finally it will be an offheap one. We can still observe much GC pressure when cache hit ratio +is not very high (such as cacheHitRatio ~ 60% ), so in link:https://issues.apache.org/jira/browse/HBASE-21879[HBASE-21879] +we redesigned the read path and made the HDFS block reading be offheap now. This feature will be available in HBASE-3.0.0. + +For more details about the design and performance improvement, please see the link:https://docs.google.com/document/d/1xSy9axGxafoH-Qc17zbD2Bd--rWjjI00xTWQZ8ZwI_E/edit?usp=sharing[document]. +Here we will share some best practice about the performance tuning: + +Firstly, we introduced several configurations about the ByteBuffAllocator (which was abstracted to manage the memory application or release): + +1. `hbase.server.allocator.pool.enabled`: means whether the region server will use the pooled offheap ByteBuffer allocator. Its default +value is true. In HBase2.x, we still use the deprecated `hbase.ipc.server.reservoir.enabled` config while we'll use the new +one in HBase3.x. +2. `hbase.server.allocator.minimal.allocate.size`: If the desired byte size is not less than this one, then it will +be allocated as a pooled offheap ByteBuff, otherwise it will be allocated from heap directly because it +is too wasting to allocate from pool with fixed-size ByteBuffers, default value is `hbase.server.allocator.buffer.size/6`. +3. `hbase.server.allocator.max.buffer.count`: The ByteBuffAllocator will have many fixed-size ByteBuffers inside which +are composited as a pool, this config indicate how many buffers are there in the pool. Its default value will be 2MB * 2 * hbase.regionserver.handler.count / 65KB, +the default hbase.regionserver.handler.count is 30, then its value will be 1890. +4. `hbase.server.allocator.buffer.size`: The byte size of each ByteBuffer, default value is 66560 (65KB), here we choose 65KB instead of 64KB +because of link:https://issues.apache.org/jira/browse/HBASE-22532[HBASE-22532]. + +The three config keys: `hbase.ipc.server.reservoir.enabled`, `hbase.ipc.server.reservoir.initial.buffer.size` and `hbase.ipc.server.reservoir.initial.max` are introduced in HBase2.x. while in HBase3.x +they are deprecated now, instead please use the new config keys: `hbase.server.allocator.pool.enabled`, `hbase.server.allocator.buffer.size` and `hbase.server.allocator.max.buffer.count`. + +If you still use the deprecated three config keys in HBase3.0.0, you will get a WARN log message like: + +[source] +---- +The config keys hbase.ipc.server.reservoir.initial.buffer.size and hbase.ipc.server.reservoir.initial.max are deprecated now, instead please use hbase.server.allocator.buffer.size and hbase.server.allocator.max.buffer.count. In future release we will remove the two deprecated configs. +---- + +Second, we have some suggestions about the performance: + +.Please make sure that there are enough pooled DirectByteBuffer in your ByteBuffAllocator. + +The ByteBuffAllocator will allocate ByteBuffer from DirectByteBuffer pool firstly, if there’s no available ByteBuffer +from the pool, then it will just allocate the ByteBuffers from heap, then the GC pressures will increase again. + +By default, we will pre-allocate 4MB for each RPC handlers ( The handler count is determined by the config: +`hbase.regionserver.handler.count`, it has the default value 30) . That’s to say, if your `hbase.server.allocator.buffer.size` +is 65KB, then your pool will have 2MB * 2 / 65KB * 30 = 945 DirectByteBuffer. If you have some large scan and have a big caching, +say you may have a rpc response whose bytes size is greater than 2MB (another 2MB for receiving rpc request), then it will +be better to increase the `hbase.server.allocator.max.buffer.count`. + +The RegionServer web UI also has the statistic about ByteBuffAllocator: + +image::bytebuff-allocator-stats.png[] + +If the following condition meet, you may need to increase your max buffer.count: + +heapAllocationRatio >= hbase.server.allocator.minimal.allocate.size / hbase.server.allocator.buffer.size * 100% + +.Please make sure the buffer size is greater than your block size. + +We have the default block size=64KB, so almost all of the data block have a block size: 64KB + delta, whose delta is +very small, depends on the size of last KeyValue. If we use the default `hbase.server.allocator.buffer.size`=64KB, +then each block will be allocated as two ByteBuffers: one 64KB DirectByteBuffer and one HeapByteBuffer with delta bytes, +the HeapByteBuffer will increase the GC pressure. Ideally, we should let the data block to be allocated as one ByteBuffer, +it has simpler data structure, faster access speed, less heap usage. On the other hand, If the blocks are composited by multiple ByteBuffers, +so we have to validate the checksum by an temporary heap copying (see link:https://issues.apache.org/jira/browse/HBASE-21917[HBASE-21917]), while if it’s a single ByteBuffer, +we can speed the checksum by calling the hadoop' checksum in native lib, it's more faster. + +Please also see: link:https://issues.apache.org/jira/browse/HBASE-22483[HBASE-22483] + +[[regionserver.offheap.writepath]] +== Offheap write-path + +TODO diff --git a/src/main/asciidoc/book.adoc b/src/main/asciidoc/book.adoc index 2c9dbbf0962..21181a10787 100644 --- a/src/main/asciidoc/book.adoc +++ b/src/main/asciidoc/book.adoc @@ -65,6 +65,7 @@ include::_chapters/security.adoc[] include::_chapters/architecture.adoc[] include::_chapters/hbase_mob.adoc[] include::_chapters/inmemory_compaction.adoc[] +include::_chapters/offheap_read_write.adoc[] include::_chapters/hbase_apis.adoc[] include::_chapters/external_apis.adoc[] include::_chapters/thrift_filter_language.adoc[] diff --git a/src/site/resources/images/bytebuff-allocator-stats.png b/src/site/resources/images/bytebuff-allocator-stats.png new file mode 100644 index 0000000000000000000000000000000000000000..b13362dbf498e9d6cb8fc26d7cae074c52a5d920 GIT binary patch literal 64120 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

@8ZAqsm0S&@T+c}mM?KF+FT5# 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 literal 0 HcmV?d00001 diff --git a/src/site/resources/images/offheap-overview.png b/src/site/resources/images/offheap-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..b46e2370820e0552c0a0244eccc41622af9a10a1 GIT binary patch literal 64687 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