Return-Path: Delivered-To: apmail-hadoop-hbase-issues-archive@minotaur.apache.org Received: (qmail 4906 invoked from network); 31 Mar 2010 23:56:48 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 31 Mar 2010 23:56:48 -0000 Received: (qmail 48686 invoked by uid 500); 31 Mar 2010 23:56:48 -0000 Delivered-To: apmail-hadoop-hbase-issues-archive@hadoop.apache.org Received: (qmail 48658 invoked by uid 500); 31 Mar 2010 23:56:48 -0000 Mailing-List: contact hbase-issues-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list hbase-issues@hadoop.apache.org Received: (qmail 48649 invoked by uid 99); 31 Mar 2010 23:56:48 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 31 Mar 2010 23:56:48 +0000 X-ASF-Spam-Status: No, hits=-1189.5 required=10.0 tests=ALL_TRUSTED,AWL X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 31 Mar 2010 23:56:47 +0000 Received: from brutus.apache.org (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 417F6234C4C5 for ; Wed, 31 Mar 2010 23:56:27 +0000 (UTC) Message-ID: <772811192.620791270079787267.JavaMail.jira@brutus.apache.org> Date: Wed, 31 Mar 2010 23:56:27 +0000 (UTC) From: "Jean-Daniel Cryans (JIRA)" To: hbase-issues@hadoop.apache.org Subject: [jira] Updated: (HBASE-2087) The wait on compaction because "Too many store files" holds up all flushing MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/HBASE-2087?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jean-Daniel Cryans updated HBASE-2087: -------------------------------------- Attachment: HBASE-2087.patch Here's a patch that does what Stack describes. - If the flush comes from flushSomeRegions, we will wait since that doesn't hold up the other regions. - If the flush comes from the main flushing thread, we check if there's too many store files. If so, we wait a bit and add it back to the queue. I tried it on the randomWrite PE, works as advertised but it may be a bit chatty when the compactions are taking a long time. Could be improved by doing the "triggered" thing ensureStoreFileCount is doing. > The wait on compaction because "Too many store files" holds up all flushing > --------------------------------------------------------------------------- > > Key: HBASE-2087 > URL: https://issues.apache.org/jira/browse/HBASE-2087 > Project: Hadoop HBase > Issue Type: Bug > Reporter: stack > Fix For: 0.20.4 > > Attachments: HBASE-2087.patch > > > The method MemStoreFlusher#checkStoreFileCount is called from flushRegion. flushRegion is called by MemStoreFlusher#run thread. If the checkStoreFileCount finds too many store files, it'll stick around waiting on a compaction to happen. While its hanging, the MemStoreFlusher#run is held up. No other region can flush. Meantime WALs will be rolling and memory will be accumulating writes. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.