Return-Path: X-Original-To: apmail-hbase-issues-archive@www.apache.org Delivered-To: apmail-hbase-issues-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id A276010D78 for ; Mon, 28 Apr 2014 23:17:20 +0000 (UTC) Received: (qmail 60381 invoked by uid 500); 28 Apr 2014 23:17:18 -0000 Delivered-To: apmail-hbase-issues-archive@hbase.apache.org Received: (qmail 60349 invoked by uid 500); 28 Apr 2014 23:17:17 -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 60337 invoked by uid 99); 28 Apr 2014 23:17:17 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 28 Apr 2014 23:17:17 +0000 Date: Mon, 28 Apr 2014 23:17:17 +0000 (UTC) From: "Matteo Bertozzi (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (HBASE-10926) Use global procedure to flush table memstore cache 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-10926?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13983717#comment-13983717 ] Matteo Bertozzi commented on HBASE-10926: ----------------------------------------- The behavior change more is related to the failure case, if a RS is not-responding with the procedure you fail the flush, while with the old method some of them got flushed. for where to place the files, i think procedures/flush is ok. At least we know that every component is in a single place, the snapshots have the snapshot and rs division but which is conceptually more correct, but more painful when you try to read the code the first time. For the testing I think you should add the case where a RS is not responding. I guess you can mock it. For the preFlush() you are correct. You have to add the call to the coprocessor on the master side. I'm looking at the code in more details, and I think there is something wrong with the MasterFlushTableProcedureManager. execProcedure() starts by resetting the done and call the flush procedure, but there is nothing that prevent multiple calls of flush on the same table or different table. This means, that if you call a second flush() while the other is running your "done" flag is not describing what you expect and so on. > Use global procedure to flush table memstore cache > -------------------------------------------------- > > Key: HBASE-10926 > URL: https://issues.apache.org/jira/browse/HBASE-10926 > Project: HBase > Issue Type: Improvement > Components: Admin > Affects Versions: 0.96.2, 0.98.1 > Reporter: Jerry He > Assignee: Jerry He > Fix For: 0.99.0 > > Attachments: HBASE-10926-trunk-v1.patch > > > Currently, user can trigger table flush through hbase shell or HBaseAdmin API. To flush the table cache, each region server hosting the regions is contacted and flushed sequentially, which is less efficient. > In HBase snapshot global procedure is used to coordinate and flush the regions in a distributed way. > Let's provide a distributed table flush for general use. -- This message was sent by Atlassian JIRA (v6.2#6252)