[ 
https://issues.apache.org/jira/browse/HBASE-20460?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16479352#comment-16479352
 ] 

Anoop Sam John commented on HBASE-20460:
----------------------------------------

Hi [~stack]..  How abt below details?

In hbase-2.0.0, HBASE-15179 made the HBase write path to work off heap. By 
default the memstores use MSLAB to avoid memory fragmentation. It creates 
bigger fixed sized chunks and memstore cell's data will get copied into these 
chunks. These chunks can be pooled also and from 2.0.0 the MSLAB pool is by 
default ON. The offheaping make use of the MSLAB pool. It creates the MSLAB 
chunks as Direct ByteBuffers and pool them. The max size for such an off heap 
chunk pool can be specified using the config 
'hbase.regionserver.offheap.global.memstore.size'. Each of the chunk will be of 
2MB size by default. When a Cell is added to a memstore, the Cell key, value 
bytes get copied into these off heap buffers and a Cell POJO will refer to this 
memory area. It can reduce the on heap size occupancy of the memstores to a 
great extend and reduce the max heap size requirement for RSs in a write heavy 
workload. We track the on heap and off heap size of each of the memstore 
separately and same with for Region and Global level. The flush decisions 
consider both sizes. At Region level, it consider both sizes sum and compares 
against the region flush size (128 MB by default). Globally on heap size 
occupancy of all memstores are tracked as well as off heap size. When any of 
these sizes breaches the lower mark or the max size, regions are selected for 
forced flushes.

We had also changed the RPC server req reading part to make use of the 
ByteBufferPool's DBBs. But now , by default Netty RPC server is getting used 
which is not having this pool usage.  So am not adding that info.

> Doc offheap write-path
> ----------------------
>
>                 Key: HBASE-20460
>                 URL: https://issues.apache.org/jira/browse/HBASE-20460
>             Project: HBase
>          Issue Type: Bug
>          Components: documentation, Offheaping
>            Reporter: stack
>            Priority: Critical
>             Fix For: 2.1.0
>
>
> We have an empty section in refguide that needs filling in on how to enable 
> offheap write-path, how to know you've set it up right or not, how to tune 
> it, and how it relates to direct memory allocation and offheap read-path.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to