hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anoop Sam John (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-16205) When Cells are not copied to MSLAB, deep clone it while adding to Memstore
Date Thu, 14 Jul 2016 08:28:20 GMT

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

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

Case 2 : Both cells as such less than 256 KB and so both will be copied to MSLAB  
Case 3 : Cell1 size > 256 and so that wont get copied to MSLAB.

It is not the sum of cell's size what is accounted.
When the cell is not copied to MSLAB, we can not leave it as is and add to Memstore as the
buffer where the req was read into go back to pool and get reused.  So that is why the deep
copy need arise. The copy happen to an byte[] on the run created.

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

Mime
View raw message