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 4059A200BD5 for ; Thu, 8 Dec 2016 07:30:05 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 3EF60160B1F; Thu, 8 Dec 2016 06:30:05 +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 85B60160B1E for ; Thu, 8 Dec 2016 07:30:04 +0100 (CET) Received: (qmail 67638 invoked by uid 500); 8 Dec 2016 06:29:58 -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 67619 invoked by uid 99); 8 Dec 2016 06:29:58 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 08 Dec 2016 06:29:58 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id 8F7B52C03DE for ; Thu, 8 Dec 2016 06:29:58 +0000 (UTC) Date: Thu, 8 Dec 2016 06:29:58 +0000 (UTC) From: "ramkrishna.s.vasudevan (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (HBASE-15787) Change the flush related heuristics to work with offheap size configured MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Thu, 08 Dec 2016 06:30:05 -0000 [ https://issues.apache.org/jira/browse/HBASE-15787?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15731290#comment-15731290 ] ramkrishna.s.vasudevan commented on HBASE-15787: ------------------------------------------------ This latest patch is green in QA. > Change the flush related heuristics to work with offheap size configured > ------------------------------------------------------------------------ > > Key: HBASE-15787 > URL: https://issues.apache.org/jira/browse/HBASE-15787 > Project: HBase > Issue Type: Sub-task > Components: regionserver > Reporter: ramkrishna.s.vasudevan > Assignee: ramkrishna.s.vasudevan > Fix For: 2.0.0 > > Attachments: HBASE-15787.patch, HBASE-15787_1.patch, HBASE-15787_4.patch, HBASE-15787_5.patch, HBASE-15787_6.patch > > > With offheap MSLAB in place we may have to change the flush related heuristics to work with offheap size configured rather than the java heap size. > Since we now have clear seperation of the memstore data size and memstore heap size, for offheap memstore > -> Decide if the global.offheap.memstore.size is breached for blocking updates and force flushes. > -> If the onheap global.memstore.size is breached (due to heap overhead) even then block updates and force flushes. > -> The global.memstore.size.lower.limit is now by default 95% of the global.memstore.size. So now we apply this 95% on the global.offheap.memstore.size and also on global.memstore.size (as it was done for onheap case). > -> We will have new FlushTypes introduced > {code} > ABOVE_ONHEAP_LOWER_MARK, /* happens due to lower mark breach of onheap memstore settings > An offheap memstore can even breach the onheap_lower_mark*/ > ABOVE_ONHEAP_HIGHER_MARK,/* happens due to higher mark breach of onheap memstore settings > An offheap memstore can even breach the onheap_higher_mark*/ > ABOVE_OFFHEAP_LOWER_MARK,/* happens due to lower mark breach of offheap memstore settings*/ > ABOVE_OFFHEAP_HIGHER_MARK; > {code} > -> regionServerAccounting does all the accounting. > -> HeapMemoryTuner is what is litte tricky here. First thing to note is that at no point it will try to increase or decrease the global.offheap.memstore.size. If there is a heap pressure then it will try to increase the memstore heap limit. > In case of offheap memstore there is always a chance that the heap pressure does not increase. In that case we could ideally decrease the heap limit for memstore. The current logic of heapmemory tuner is such that things will naturally settle down. But on discussion what we thought is let us include the flush count that happens due to offheap pressure but give that a lesser weightage and thus ensure that the initial decrease on memstore heap limit does not happen. Currently that fraction is set as 0.5. -- This message was sent by Atlassian JIRA (v6.3.4#6332)