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 3D2FD200B4C for ; Fri, 22 Jul 2016 08:45:23 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 3BF4B160A91; Fri, 22 Jul 2016 06:45:23 +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 7F9DD160A5A for ; Fri, 22 Jul 2016 08:45:22 +0200 (CEST) Received: (qmail 9465 invoked by uid 500); 22 Jul 2016 06:45: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 9381 invoked by uid 99); 22 Jul 2016 06:45:21 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 22 Jul 2016 06:45:21 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id 24F592C0D60 for ; Fri, 22 Jul 2016 06:45:21 +0000 (UTC) Date: Fri, 22 Jul 2016 06:45:21 +0000 (UTC) From: "ramkrishna.s.vasudevan (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: Fri, 22 Jul 2016 06:45:23 -0000 [ https://issues.apache.org/jira/browse/HBASE-16205?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15389025#comment-15389025 ] ramkrishna.s.vasudevan commented on HBASE-16205: ------------------------------------------------ Just a question. So now deepCloneIfNEeded() is inside add() then would be much cleaner. But upsert() is calling internalAdd() only. What is the reason that the upsert cell need not be cloned to MSLAB if it is available? Rest looks good to me. > 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, HBASE-16205_V2.patch, HBASE-16205_V3.patch, HBASE-16205_V3.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)