[ https://issues.apache.org/jira/browse/HADOOP-1724?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12521550 ]
stack commented on HADOOP-1724: ------------------------------- Here's a couple of comments. Those that return a value are all reads I believe. Its unlikely a read will encounter a NotServingRegionException. If they do, the circumstances are probably 'exceptional' such as a crashed region server-- so an exception seems appropriate here. On the other hand, a stream of writes ineluctably provokes splits and region relocations. IMO, such splits are not-unexpected and do not constitute an 'error', nor an 'exceptional' or 'abnormal' condition. Use of NSRE realigning the client strikes me as an instance of using exceptions to ordain program control. Seeing exceptions in the logs though all is working properly is unsettling. batchUpdate commit would seem to be the main provocateur of NotServingRegionExceptions during 'normal' operation. Currently it returns void. Would it be odd if just this one method returned a status code that had to be checked? (Its rough counterpart in JDBC has a primitive status facility: http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.html#executeBatch()). > [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.