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

Phil Yang commented on HBASE-16285:
-----------------------------------

Hi Anoop, thanks for your comments.

{quote}
System.currentTimeMillis()
Better use EnvironmentEdgeManager?
{quote}
I use System.current because Call.timestamp is also using it in the 
[constructor|https://github.com/apache/hbase/blob/a33097e067b73be8e877b822afa90b89a0c7974f/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java#L346].
 Is it ok to change to EnvironmentEdgeManager? Or change both of them?


{quote}
dropTimeoutRequestDelay
{quote}
When I use ycsb to benchmark the server, I find that at client the timeout 
requests don't fail exactly at the time of setting, usually having a delay of 
several milliseconds because of thread scheduling. If we don't add this delay, 
the number of failing requests will be a little larger especially when the 
timeout setting is short, for example, only 50ms. So I think we need this 
delay. But maybe we need not configurable, we can make it a const. 200ms may be 
too large, perhaps 50ms is OK for most scenes?

> Drop RPC requests if it must be considered as timeout at client
> ---------------------------------------------------------------
>
>                 Key: HBASE-16285
>                 URL: https://issues.apache.org/jira/browse/HBASE-16285
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Phil Yang
>            Assignee: Phil Yang
>         Attachments: HBASE-16285-branch-1-v1.patch, HBASE-16285-v1.patch
>
>
> After HBASE-15593, we have a timeout param in header of RPC requests. We can 
> use it in more scenes.
> A straightforward scene is to drop requests if it has waited so long in RPC 
> queue and has been dropped by client. Even if we handle this request and send 
> the response back, it will not be used any more. And client may have sent a 
> retry. In an extreme case, if the server is slow, all requests may be timeout 
> or queue-full-exception because we should handle previous requests which have 
> been dropped by client and many resources at server are wasted.



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

Reply via email to