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 C5AE711694 for ; Fri, 5 Sep 2014 16:40:29 +0000 (UTC) Received: (qmail 69707 invoked by uid 500); 5 Sep 2014 16:40:29 -0000 Delivered-To: apmail-hbase-issues-archive@hbase.apache.org Received: (qmail 69667 invoked by uid 500); 5 Sep 2014 16:40:29 -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 69653 invoked by uid 99); 5 Sep 2014 16:40:29 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 05 Sep 2014 16:40:29 +0000 Date: Fri, 5 Sep 2014 16:40:29 +0000 (UTC) From: "Jimmy Xiang (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (HBASE-11894) MetaEntries from coprocessor hooks in split and merge are not getting added to hbase:meta after HBASE-11611 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-11894?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14123128#comment-14123128 ] Jimmy Xiang commented on HBASE-11894: ------------------------------------- I see. Ok with me. Do we need to handle similar requirements for other transition codes? I was wondering how to make the interface extendable. > MetaEntries from coprocessor hooks in split and merge are not getting added to hbase:meta after HBASE-11611 > ----------------------------------------------------------------------------------------------------------- > > Key: HBASE-11894 > URL: https://issues.apache.org/jira/browse/HBASE-11894 > Project: HBase > Issue Type: Bug > Components: Region Assignment > Reporter: rajeshbabu > Assignee: rajeshbabu > Fix For: 2.0.0 > > > As part of HBASE-9249 & HBASE-9489, added new hooks in split and merge which take meta entries from coprocessor hooks if any. These meta entries helps to ensure atomicity of split(merge) of regions by server and split(merge) of the regions handled in coprocessors(This is required in secondary indexing case). > After HBASE-11611 the meta entries are not getting added to meta both in split and merge. > {code} > @MetaMutationAnnotation > List metaEntries = new ArrayList(); > if (rsCoprocessorHost != null) { > if (rsCoprocessorHost.preMergeCommit(this.region_a, this.region_b, metaEntries)) { > throw new IOException("Coprocessor bypassing regions " + this.region_a + " " > + this.region_b + " merge."); > } > try { > for (Mutation p : metaEntries) { > HRegionInfo.parseRegionName(p.getRow()); > } > } catch (IOException e) { > LOG.error("Row key of mutation from coprocessor is not parsable as region name." > + "Mutations from coprocessor should only be for hbase:meta table.", e); > throw e; > } > } > // This is the point of no return. Similar with SplitTransaction. > // IF we reach the PONR then subsequent failures need to crash out this > // regionserver > this.journal.add(JournalEntry.PONR); > // Add merged region and delete region_a and region_b > // as an atomic update. See HBASE-7721. This update to hbase:meta makes the region > // will determine whether the region is merged or not in case of failures. > // If it is successful, master will roll-forward, if not, master will > // rollback > if (services != null && !services.reportRegionStateTransition(TransitionCode.MERGE_PONR, > mergedRegionInfo, region_a.getRegionInfo(), region_b.getRegionInfo())) { > // Passed PONR, let SSH clean it up > throw new IOException("Failed to notify master that merge passed PONR: " > + region_a.getRegionInfo().getRegionNameAsString() + " and " > + region_b.getRegionInfo().getRegionNameAsString()); > } > {code} > I think while reporting region state transition to master we need to pass meta entries also so that we can add them to meta along with split or merge updates. -- This message was sent by Atlassian JIRA (v6.3.4#6332)