[ 
https://issues.apache.org/jira/browse/HBASE-15058?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15075683#comment-15075683
 ] 

Heng Chen commented on HBASE-15058:
-----------------------------------

Currently,  the quota information is stored in HMaster,   So when split 
happens, we have to ask HMaster whether the quota check pass or not,  and once 
split failed, we have to tell hmaster the information, so master could do 
rollback the update of namespace quota.

I have a proposal,  could we store quota information in some place (ZK or 
System table),  so regionServer and HMaster could get/update this information 
more simple, and the consistency could be guaranteed.

> NamespaceAuditor should account for unsuccessful split which initially passes 
> quota check
> -----------------------------------------------------------------------------------------
>
>                 Key: HBASE-15058
>                 URL: https://issues.apache.org/jira/browse/HBASE-15058
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Ted Yu
>
> When region split doesn't pass quota check, we would see exception similar to 
> the following:
> {code}
> 2015-12-29 16:07:33,653 INFO  [RS:0;10.21.128.189:57449-splits-1451434041585] 
> regionserver.SplitRequest(97): Running rollback/cleanup of failed split of 
> np2:                     
> testRegionNormalizationSplitOnCluster,zzzzz,1451434045065.27cccb3fae03002b8058beef61cb7c20.;
>  Failed to get ok from master to split 
> np2:testRegionNormalizationSplitOnCluster,     
> zzzzz,1451434045065.27cccb3fae03002b8058beef61cb7c20.
> java.io.IOException: Failed to get ok from master to split 
> np2:testRegionNormalizationSplitOnCluster,zzzzz,1451434045065.27cccb3fae03002b8058beef61cb7c20.
>   at 
> org.apache.hadoop.hbase.regionserver.SplitTransactionImpl.stepsBeforePONR(SplitTransactionImpl.java:345)
>   at 
> org.apache.hadoop.hbase.regionserver.SplitTransactionImpl.createDaughters(SplitTransactionImpl.java:262)
>   at 
> org.apache.hadoop.hbase.regionserver.SplitTransactionImpl.execute(SplitTransactionImpl.java:502)
>   at 
> org.apache.hadoop.hbase.regionserver.SplitRequest.doSplitting(SplitRequest.java:82)
>   at 
> org.apache.hadoop.hbase.regionserver.SplitRequest.run(SplitRequest.java:155)
>   at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> {code}
> However, region split may fail for subsequent SplitTransactionPhase's in 
> stepsBeforePONR().
> Currently there is no mechanism to rollback the update to namespace quota.
> When region split fails, NamespaceAuditor should account for the failure so 
> that quota bookkeeping is consistent.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to