[ 
https://issues.apache.org/jira/browse/HADOOP-1724?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12521597
 ] 

Jim Kellerman commented on HADOOP-1724:
---------------------------------------

There are two cases for batchUpdate that I would consider to be "normal 
operation" as you have described it. Both could result from a region split: 
NotServingRegionException, and WrongRegionException (in which the row being 
updated falls outside the row range of the region that is being served).

The other exceptions that might get thrown during a batch update really are 
problems: region is offline, region is closed, etc. These will remain 
exceptions.

batchUpdate will be modified to return a boolean: true if successful; false if 
the server caught a NotServingRegionException or WrongRegionException. When the 
client receives a false answer, it needs to "recalibrate"


> [hbase] 'Normal' operation should not depend on throwing of exceptions (e.g. 
> NotServingRegionException)
> -------------------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-1724
>                 URL: https://issues.apache.org/jira/browse/HADOOP-1724
>             Project: Hadoop
>          Issue Type: Improvement
>          Components: contrib/hbase
>            Reporter: stack
>            Assignee: Jim Kellerman
>            Priority: Minor
>
> Region server and client logs will have lots of the following when a cluster 
> is being loaded:
> {code}
> org.apache.hadoop.hbase.NotServingRegionException: 
> hbaserepository,,7144829661993961256
>         at 
> org.apache.hadoop.hbase.HRegionServer.getRegion(HRegionServer.java:1208)
>         at 
> org.apache.hadoop.hbase.HRegionServer.getRegion(HRegionServer.java:1180)
>         at 
> org.apache.hadoop.hbase.HRegionServer.startUpdate(HRegionServer.java:1122)
>         at 
> org.apache.hadoop.hbase.HRegionServer.batchUpdate(HRegionServer.java:985)
>         at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:340)
>         at org.apache.hadoop.ipc.Server$Handler.run(Server.java:566)
> {code}
> The NotServingRegionException exception is thrown when the remote server is 
> no longer serving the asked-for region (usually because its been split).  The 
> server throws the exception to provoke the client into making a new 
> interrogation of region locations.
> It would be an improvement if such 'normal' operation was not built atop 
> exceptions.  For example, commits might return a 'region moved' message.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to