Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id ACF5F200B50 for ; Thu, 14 Jul 2016 10:28:22 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id ABAAD160A52; Thu, 14 Jul 2016 08:28:22 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 0842B160A63 for ; Thu, 14 Jul 2016 10:28:21 +0200 (CEST) Received: (qmail 13486 invoked by uid 500); 14 Jul 2016 08:28:21 -0000 Mailing-List: contact issues-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list issues@hbase.apache.org Received: (qmail 13125 invoked by uid 99); 14 Jul 2016 08:28:20 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 14 Jul 2016 08:28:20 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id E507A2C02A4 for ; Thu, 14 Jul 2016 08:28:20 +0000 (UTC) Date: Thu, 14 Jul 2016 08:28:20 +0000 (UTC) From: "Anoop Sam John (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (HBASE-16205) When Cells are not copied to MSLAB, deep clone it while adding to Memstore MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Thu, 14 Jul 2016 08:28:22 -0000 [ 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)