[ 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)