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