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

Reply via email to