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

stack commented on HBASE-11747:
-------------------------------

bq. Did you mean rpc, not jmx?

JMX. Idea is to help shrink ClusterStatus by moving metrics out.

bq. I'm missing something, we don't really use it in any heardbeats

Right (I thought we did but it is just a sub-element, the ServerLoad, that is 
passed on the heartbeat -- pardon me).

bq. "check if monolithic cluster status is looking too big (over defined limit) 
on server side, and return it with empty load in this case, setting some flag 
indicating that message is partially constructed to not fail as transport 
level, and that client should use separate call to request server/region load 
for the list of RSs it's interested to know about?"

Rather than have a protocol that cuts in only when we are too big, could we not 
slim ClusterStatus so vitals only and always require client use a separate call 
for detail (or go to metrics system if it is counts, etc., that it is 
interested in)

I like your suggestion of adding a new call for doing new "protocol" That'd be 
best.

bq. Hmm, that's something different, drawing metrics in the UI?

Yes. Pardon my conflation. Will restrain myself in future.







> ClusterStatus is too bulky 
> ---------------------------
>
>                 Key: HBASE-11747
>                 URL: https://issues.apache.org/jira/browse/HBASE-11747
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Virag Kothari
>         Attachments: exceptiontrace
>
>
> Following exception on 0.98 with 1M regions on cluster with 160 region servers
> {code}
> Caused by: java.io.IOException: Call to regionserverhost:port failed on local 
> exception: com.google.protobuf.InvalidProtocolBufferException: Protocol 
> message was too large.  May be malicious.  Use 
> CodedInputStream.setSizeLimit() to increase the size limit.
>       at 
> org.apache.hadoop.hbase.ipc.RpcClient.wrapException(RpcClient.java:1482)
>       at org.apache.hadoop.hbase.ipc.RpcClient.call(RpcClient.java:1454)
>       at 
> org.apache.hadoop.hbase.ipc.RpcClient.callBlockingMethod(RpcClient.java:1654)
>       at 
> org.apache.hadoop.hbase.ipc.RpcClient$BlockingRpcChannelImplementation.callBlockingMethod(RpcClient.java:1712)
>       at 
> org.apache.hadoop.hbase.protobuf.generated.MasterProtos$MasterService$BlockingStub.getClusterStatus(MasterProtos.java:42555)
>       at 
> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$5.getClusterStatus(HConnectionManager.java:2132)
>       at 
> org.apache.hadoop.hbase.client.HBaseAdmin$16.call(HBaseAdmin.java:2166)
>       at 
> org.apache.hadoop.hbase.client.HBaseAdmin$16.call(HBaseAdmin.java:2162)
>       at 
> org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:114)
>       ... 43 more
> Caused by: com.google.protobuf.InvalidProtocolBufferException: Protocol 
> message was too large.  May be malicious.  Use 
> CodedInputStream.setSizeLimit() to increase the size limit.
>       at 
> com.google.protobuf.InvalidProtocolBufferException.sizeLimitExceeded(InvalidProtocolBufferException.java:110)
> {code}



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

Reply via email to