You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@phoenix.apache.org by Sumit Nigam <su...@yahoo.com> on 2016/10/13 10:29:30 UTC

Hbase throttling and Phoenix issue

Hi,
I am trying to use hbase throttling feature with Phoenix. Hbase is 1.1.2 and phoenix 4.6. 
When I specify big number of SALT_BUCKETS, the hbase throws ThrottlingException even when quotas are high. Please note that this error occurs only when we scan from phoenix shell. From hbase shell, the same table scan goes through fine. 

The following properties were set in hbase server 
hbase.quota.enabled=true 
hbase.quota.refresh.period=5000 


1. Login to Phoenix Shell and create a table 
create table "abc" (id bigint not null primary key, name varchar) salt_buckets=50; 

2. Once the table is created, apply the following quota through Hbase Shell:
set_quota TYPE => THROTTLE, TABLE => 'abc', LIMIT => '10G/sec' 

wait for 5 seconds for quota to be refreshed (also ran list_quotas to make sure that quota was applied).

3. Run the following query in phoenix shell on this empty table:
select * from "abc"; 


Caused by: org.apache.hadoop.hbase.ipc.RemoteWithExtrasException(org.apache.hadoop.hbase.quotas.ThrottlingException): org.apache.hadoop.hbase.quotas.ThrottlingException: read size limit exceeded - wait 0.00sec 
at org.apache.hadoop.hbase.quotas.ThrottlingException.throwThrottlingException(ThrottlingException.java:107) 
at org.apache.hadoop.hbase.quotas.ThrottlingException.throwReadSizeExceeded(ThrottlingException.java:101) 
at org.apache.hadoop.hbase.quotas.TimeBasedLimiter.checkQuota(TimeBasedLimiter.java:139) 
at org.apache.hadoop.hbase.quotas.DefaultOperationQuota.checkQuota(DefaultOperationQuota.java:59) 
at org.apache.hadoop.hbase.quotas.RegionServerQuotaManager.checkQuota(RegionServerQuotaManager.java:180) 
at org.apache.hadoop.hbase.quotas.RegionServerQuotaManager.checkQuota(RegionServerQuotaManager.java:125) 
at org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2300) 
at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:32295) 
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2127) 
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:107) 
at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:133) 
at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:108) 
at java.lang.Thread.run(Thread.java:745) 

at org.apache.hadoop.hbase.ipc.RpcClientImpl.call(RpcClientImpl.java:1225) 
at org.apache.hadoop.hbase.ipc.AbstractRpcClient.callBlockingMethod(AbstractRpcClient.java:213) 
at org.apache.hadoop.hbase.ipc.AbstractRpcClient$BlockingRpcChannelImplementation.callBlockingMethod(AbstractRpcClient.java:287) 
at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$BlockingStub.scan(ClientProtos.java:32741) 
at org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable. 


Thanks, 
Sumit