hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Enis Soztutar (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-15437) Response size calculated in RPCServer for warning tooLarge responses does NOT count CellScanner payload
Date Thu, 07 Apr 2016 18:10:25 GMT

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

Enis Soztutar commented on HBASE-15437:
---------------------------------------

bq. As it is exposed to coproc and Phoenix, better handle the format way of deprecate and
overload? We can be more formal there than checking whether Phoenix uses it or not? IMHO that
is better always
No coprocessor or Phoenix should be using {{RpcServerInterface.run()}} directly, but should
rely on {{CallRunner}}. We had made the whole rpc scheduler / controller interfaces {{InterfaceAudience.LimitedPrivate}}
to support a particular use case (index). We should not corner ourselves with supporting APIs
that are not intended for generic consumption. Plus across minor versions, there are no guarantees
for coproc APIs anyway. 

So, I think we can do something like this. Just change the API in master and branch-1, and
1.3, and if we want to backport this as a bug fix (which it is) to 1.1, 1.2, we can introduce
the deprecated API. 

[~dvdreddy] can you do those changes? 
 

> Response size calculated in RPCServer for warning tooLarge responses does NOT count CellScanner
payload
> -------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-15437
>                 URL: https://issues.apache.org/jira/browse/HBASE-15437
>             Project: HBase
>          Issue Type: Bug
>          Components: IPC/RPC
>            Reporter: deepankar
>            Assignee: deepankar
>         Attachments: HBASE-15437-v1.patch, HBASE-15437.patch
>
>
> After HBASE-13158 where we respond back to RPCs with cells in the payload , the protobuf
response will just have the count the cells to read from payload, but there are set of features
where we log warn in RPCServer whenever the response is tooLarge, but this size now is not
considering the sizes of the cells in the PayloadCellScanner. Code form RPCServer
> {code}
>       long responseSize = result.getSerializedSize();
>       // log any RPC responses that are slower than the configured warn
>       // response time or larger than configured warning size
>       boolean tooSlow = (processingTime > warnResponseTime && warnResponseTime
> -1);
>       boolean tooLarge = (responseSize > warnResponseSize && warnResponseSize
> -1);
>       if (tooSlow || tooLarge) {
>         // when tagging, we let TooLarge trump TooSmall to keep output simple
>         // note that large responses will often also be slow.
>         logResponse(new Object[]{param},
>             md.getName(), md.getName() + "(" + param.getClass().getName() + ")",
>             (tooLarge ? "TooLarge" : "TooSlow"),
>             status.getClient(), startTime, processingTime, qTime,
>             responseSize);
>       }
> {code}
> Should this feature be not supported any more or should we add a method to CellScanner
or a new interface which returns the serialized size (but this might not include the compression
codecs which might be used during response ?) Any other Idea this could be fixed ?



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

Mime
View raw message