[ https://issues.apache.org/jira/browse/HBASE-16205?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15376523#comment-15376523 ]
binlijin commented on HBASE-16205: ---------------------------------- [~anoop.hbase], sir With MSLAB turn on. What i am suggest is: One case: a request with two cell: cell1=100k, cell2=100k, cell1+cell2<256K so cell1 and cell2 copy to MSLAB. Two case: a request with two cell: cell1=200k, cell2=100k, cell1+cell2>256K, cell1 and cell2 do not copy to MSLAB. Three case: a request with two cell: cell1=300k, cell2=1k, cell2>256K, cell1 and cell2 do not copy to MSLAB. And the two and three case is what i am suggested. > When Cells are not copied to MSLAB, deep clone it while adding to Memstore > -------------------------------------------------------------------------- > > Key: HBASE-16205 > URL: https://issues.apache.org/jira/browse/HBASE-16205 > Project: HBase > Issue Type: Sub-task > Components: regionserver > Affects Versions: 2.0.0 > Reporter: Anoop Sam John > Assignee: Anoop Sam John > Priority: Critical > Fix For: 2.0.0 > > Attachments: HBASE-16205.patch > > > This is imp after HBASE-15180 optimization. After that we the cells flowing > in write path will be backed by the same byte[] where the RPC read the > request into. By default we have MSLAB On and so we have a copy operation > while adding Cells to memstore. This copy might not be there if > 1. MSLAB is turned OFF > 2. Cell size is more than a configurable max size. This defaults to 256 KB > 3. If the operation is Append/Increment. > In such cases, we should just clone the Cell into a new byte[] and then add > to memstore. Or else we keep referring to the bigger byte[] chunk for longer > time. -- This message was sent by Atlassian JIRA (v6.3.4#6332)