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

Anoop Sam John commented on HBASE-15757:
----------------------------------------

bq.After reducing the start and stop row getting results is pretty fast.
Means when u have less rows to scan, there is no issue..  So it is because of 
time outs only.  Another comment u said abt increasing the scan caching.  That 
is not correct in this respect.  U should reduce it.. Every RPC will try to 
fetch more rows.. And reverse scan is not same performing as the normal forward 
scan. It will take more time and when u have more rows to be scanned in one 
RPC, it is sure that the time out happening at client side and it gives a 
retry.  When retry comes, at server, already the old scan request moved the row 
position and so we throw seqNo out of sync exception. Either you have to 
increase the timeout or decrease the #rows to scan in one RPC..  You dont have 
to reduce the range. You have to reduce the scan caching value,

> Reverse scan fails with no obvious cause
> ----------------------------------------
>
>                 Key: HBASE-15757
>                 URL: https://issues.apache.org/jira/browse/HBASE-15757
>             Project: HBase
>          Issue Type: Bug
>          Components: Client, Scanners
>    Affects Versions: 0.98.12
>         Environment: ubuntu 14.04, amazon cloud; 10 datanodes d2.4xlarge - 
> 16cores, 12x200GB HDD, 122GB RAM
>            Reporter: Robert Fiser
>
> related issue on stackoverflow: 
> http://stackoverflow.com/questions/37001169/hbase-reverse-scan-error?noredirect=1#comment61558097_37001169
> this works well:
>     scan = new Scan(startRow, stopRow);
> this throws exception sometimes:
>     scan = new Scan(stopRow, startRow);
>       scan.setReversed(true);
> throwing exception while traffic is at least 100 req/s. there are actually no 
> timeouts, exception is fired immediately for 1-10% requests
> hbase: 0.98.12-hadoop2;
> hadoop: 2.7.0;
> cluster in AWS, 10 datanodes: d2.4xlarge
> I think it's maybe related with this issue but I'm not using any filters 
> http://apache-hbase.679495.n3.nabble.com/Exception-during-a-reverse-scan-with-filter-td4069721.html
>       java.lang.RuntimeException: 
> org.apache.hadoop.hbase.DoNotRetryIOException: Failed after retry of 
> OutOfOrderScannerNextException: was there a rpc timeout?
>                       at 
> org.apache.hadoop.hbase.client.AbstractClientScanner$1.hasNext(AbstractClientScanner.java:94)
>                       at 
> com.socialbakers.broker.client.hbase.htable.AbstractHtableListScanner.scanToList(AbstractHtableListScanner.java:30)
>                       at 
> com.socialbakers.broker.client.hbase.htable.AbstractHtableListSingleScanner.invokeOperation(AbstractHtableListSingleScanner.java:23)
>                       at 
> com.socialbakers.broker.client.hbase.htable.AbstractHtableListSingleScanner.invokeOperation(AbstractHtableListSingleScanner.java:11)
>                       at 
> com.socialbakers.broker.client.hbase.AbstractHbaseApi.endPointMethod(AbstractHbaseApi.java:40)
>                       at sun.reflect.GeneratedMethodAccessor14.invoke(Unknown 
> Source)
>                       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>                       at java.lang.reflect.Method.invoke(Method.java:497)
>                       at 
> com.socialbakers.broker.client.Route.invoke(Route.java:241)
>                       at 
> com.socialbakers.broker.client.handler.EndpointHandler.invoke(EndpointHandler.java:173)
>                       at 
> com.socialbakers.broker.client.handler.EndpointHandler.process(EndpointHandler.java:69)
>                       at 
> com.thetransactioncompany.jsonrpc2.server.Dispatcher.process(Dispatcher.java:196)
>                       at 
> com.socialbakers.broker.client.RejectableRunnable.run(RejectableRunnable.java:38)
>                       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>                       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>                       at java.lang.Thread.run(Thread.java:745)
>                       Caused by: 
> org.apache.hadoop.hbase.DoNotRetryIOException: Failed after retry of 
> OutOfOrderScannerNextException: was there a rpc timeout?
>                       at 
> org.apache.hadoop.hbase.client.ClientScanner.loadCache(ClientScanner.java:430)
>                       at 
> org.apache.hadoop.hbase.client.ClientScanner.next(ClientScanner.java:333)
>                       at 
> org.apache.hadoop.hbase.client.AbstractClientScanner$1.hasNext(AbstractClientScanner.java:91)
>                       ... 15 more
>                       Caused by: 
> org.apache.hadoop.hbase.exceptions.OutOfOrderScannerNextException: 
> org.apache.hadoop.hbase.exceptions.OutOfOrderScannerNextException: Expected 
> nextCallSeq: 2 But the nextCallSeq got from client: 1; request=scanner_id: 
> 27700695 number_of_rows: 100 close_scanner: false next_call_seq: 1
>                       at 
> org.apache.hadoop.hbase.regionserver.HRegionServer.scan(HRegionServer.java:3231)
>                       at 
> org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:30946)
>                       at 
> org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2093)
>                       at 
> org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:101)
>                       at 
> org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:130)
>                       at 
> org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:107)
>                       at java.lang.Thread.run(Thread.java:745)
>                       at 
> sun.reflect.GeneratedConstructorAccessor16.newInstance(Unknown Source)
>                       at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>                       at 
> java.lang.reflect.Constructor.newInstance(Constructor.java:422)
>                       at 
> org.apache.hadoop.ipc.RemoteException.instantiateException(RemoteException.java:106)
>                       at 
> org.apache.hadoop.ipc.RemoteException.unwrapRemoteException(RemoteException.java:95)
>                       at 
> org.apache.hadoop.hbase.protobuf.ProtobufUtil.getRemoteException(ProtobufUtil.java:287)
>                       at 
> org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:214)
>                       at 
> org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:58)
>                       at 
> org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:115)
>                       at 
> org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:91)
>                       at 
> org.apache.hadoop.hbase.client.ClientScanner.loadCache(ClientScanner.java:375)
>                       ... 17 more
>                       Caused by: 
> org.apache.hadoop.hbase.ipc.RemoteWithExtrasException(org.apache.hadoop.hbase.exceptions.OutOfOrderScannerNextException):
>  org.apache.hadoop.hbase.exceptions.OutOfOrderScannerNextException: Expected 
> nextCallSeq: 2 But the nextCallSeq got from client: 1; request=scanner_id: 
> 27700695 number_of_rows: 100 close_scanner: false next_call_seq: 1
>                       at 
> org.apache.hadoop.hbase.regionserver.HRegionServer.scan(HRegionServer.java:3231)
>                       at 
> org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:30946)
>                       at 
> org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2093)
>                       at 
> org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:101)
>                       at 
> org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:130)
>                       at 
> org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:107)
>                       at java.lang.Thread.run(Thread.java:745)
>                       at 
> org.apache.hadoop.hbase.ipc.RpcClient.call(RpcClient.java:1457)
>                       at 
> org.apache.hadoop.hbase.ipc.RpcClient.callBlockingMethod(RpcClient.java:1661)
>                       at 
> org.apache.hadoop.hbase.ipc.RpcClient$BlockingRpcChannelImplementation.callBlockingMethod(RpcClient.java:1719)
>                       at 
> org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$BlockingStub.scan(ClientProtos.java:31392)
>                       at 
> org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:173)
>                       ... 21 more



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

Reply via email to