[jira] [Commented] (HBASE-11894) MetaEntries from coprocessor hooks in split and merge are not getting added to hbase:meta after HBASE-11611

2014-09-08 Thread rajeshbabu (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11894?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14125339#comment-14125339
 ] 

rajeshbabu commented on HBASE-11894:


bq. Do we need to handle similar requirements for other transition codes? 
Just we need to handle for SPLIT_PONR and MERGE_PONR only Jimmy.

bq. How to describe these transitions we report the master such that it can 
make sense of them? Is master recording these ops critical or is it ok if they 
are dropped?
These are existing transitions only Stack. These meta ops are important to 
ensure data region and index region split atomiticity. Passing the meta entries 
of index region split updates through coprocessor hooks in Phoenix(0.98+ 
onwards).

 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
 ListMutation metaEntries = new ArrayListMutation();
 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)


[jira] [Commented] (HBASE-11894) MetaEntries from coprocessor hooks in split and merge are not getting added to hbase:meta after HBASE-11611

2014-09-05 Thread Jimmy Xiang (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11894?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14123060#comment-14123060
 ] 

Jimmy Xiang commented on HBASE-11894:
-

Can we invoke these coprocessor hooks in master(AM/RegionStateStore)?  We'd 
like to make sure only master updates the meta.

 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
 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
 ListMutation metaEntries = new ArrayListMutation();
 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)


[jira] [Commented] (HBASE-11894) MetaEntries from coprocessor hooks in split and merge are not getting added to hbase:meta after HBASE-11611

2014-09-05 Thread rajeshbabu (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11894?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14123068#comment-14123068
 ] 

rajeshbabu commented on HBASE-11894:


Let me try moving the hooks to master [~jxiang]. Thanks.

 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
 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
 ListMutation metaEntries = new ArrayListMutation();
 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)


[jira] [Commented] (HBASE-11894) MetaEntries from coprocessor hooks in split and merge are not getting added to hbase:meta after HBASE-11611

2014-09-05 Thread rajeshbabu (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11894?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14123085#comment-14123085
 ] 

rajeshbabu commented on HBASE-11894:


[~jxiang]
Currently the hooks are region level but moving them to system level hooks make 
not be good.
instead what about having new interface to pass any meta mutations while 
reporting region transition
{code}
  /**
   * Notify master that a handler requests to change a region state
   */
  boolean reportRegionStateTransition(TransitionCode code, HRegionInfo... 
hris,ListMutation mutations);
{code}

 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
 ListMutation metaEntries = new ArrayListMutation();
 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)


[jira] [Commented] (HBASE-11894) MetaEntries from coprocessor hooks in split and merge are not getting added to hbase:meta after HBASE-11611

2014-09-05 Thread Jimmy Xiang (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11894?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=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
 ListMutation metaEntries = new ArrayListMutation();
 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)


[jira] [Commented] (HBASE-11894) MetaEntries from coprocessor hooks in split and merge are not getting added to hbase:meta after HBASE-11611

2014-09-05 Thread stack (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11894?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14123139#comment-14123139
 ] 

stack commented on HBASE-11894:
---

bq. to pass any meta mutations while reporting region transition

How to describe these transitions we report the master such that it can make 
sense of them?  Is master recording these ops critical or is it ok if they are 
dropped?

 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
 ListMutation metaEntries = new ArrayListMutation();
 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)


[jira] [Commented] (HBASE-11894) MetaEntries from coprocessor hooks in split and merge are not getting added to hbase:meta after HBASE-11611

2014-09-04 Thread rajeshbabu (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11894?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14121139#comment-14121139
 ] 

rajeshbabu commented on HBASE-11894:


ping [~jxiang], what do you say?

 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
 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
 ListMutation metaEntries = new ArrayListMutation();
 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)


[jira] [Commented] (HBASE-11894) MetaEntries from coprocessor hooks in split and merge are not getting added to hbase:meta after HBASE-11611

2014-09-04 Thread Anoop Sam John (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11894?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14121395#comment-14121395
 ] 

Anoop Sam John commented on HBASE-11894:


Region states for the CP handled regions also would have changed. These are not 
getting reported? Than handling meta entry by CP and passing that to Master, 
the CP handled region state change also can be passed to Master along with that 
of the user table regions(?)

 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
 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
 ListMutation metaEntries = new ArrayListMutation();
 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)


[jira] [Commented] (HBASE-11894) MetaEntries from coprocessor hooks in split and merge are not getting added to hbase:meta after HBASE-11611

2014-09-04 Thread Anoop Sam John (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11894?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14121394#comment-14121394
 ] 

Anoop Sam John commented on HBASE-11894:


Region states for the CP handled regions also would have changed. These are not 
getting reported? Than handling meta entry by CP and passing that to Master, 
the CP handled region state change also can be passed to Master along with that 
of the user table regions(?)

 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
 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
 ListMutation metaEntries = new ArrayListMutation();
 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)


[jira] [Commented] (HBASE-11894) MetaEntries from coprocessor hooks in split and merge are not getting added to hbase:meta after HBASE-11611

2014-09-04 Thread rajeshbabu (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11894?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14121478#comment-14121478
 ] 

rajeshbabu commented on HBASE-11894:


The region state changes need not pass [~anoop.hbase]. They will be properly 
handled by core itself. We need to pass split or merge updates of the regions 
handled in CP(but it's completely depend on CP implementation).


 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
 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
 ListMutation metaEntries = new ArrayListMutation();
 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)