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

Manukranth Kolloju commented on HBASE-12075:
--------------------------------------------

[~stack], alternatively, [~daviddengcn] suggests that I could do a smaller 
change in the RpcClient.java and implement this functionality in the call 
methods when it finds a connection and makes a call on the CallSender object. 
What do you think of that approach? The logic would be similar, but it will be 
simpler because its at a lower layer. I initially was hesitant to touch the 
RpcClient for the purposes of this feature because I wanted to keep a clear 
separation between the Rpc logic and application logic. But, in case it makes 
sense to plug it there, I can try and cook up a patch. 

[~lhofhansl], we use this feature in our messages use case. The application 
servers are built with a lot of threads and in some cases it actually makes 
sense to let messages fall on the floor to avoid blocking the entire 
application server from stalling for the sake of 1 region server which in turn 
would have resulted in a lot more message drops. I couldn't understand 4 
clearly, can you briefly expand the specific case you are trying to talk about 
there? Also, this might be very specific to a subset of application clients and 
I feel that its possible to have multiple client side implementations that 
people could plug in for different applications to achieve client side 
admission control in some manner similar.

> Preemptive Fast Fail
> --------------------
>
>                 Key: HBASE-12075
>                 URL: https://issues.apache.org/jira/browse/HBASE-12075
>             Project: HBase
>          Issue Type: Sub-task
>          Components: Client
>    Affects Versions: 0.99.0, 2.0.0, 0.98.6.1
>            Reporter: Manukranth Kolloju
>            Assignee: Manukranth Kolloju
>         Attachments: 0001-Add-a-test-case-for-Preemptive-Fast-Fail.patch, 
> 0001-HBASE-12075-Implement-Preemptive-Fast-Fail.patch, 
> 0001-HBASE-12075-Implement-Preemptive-Fast-Fail.patch, 
> 0001-Implement-Preemptive-Fast-Fail.patch, 
> 0001-Implement-Preemptive-Fast-Fail.patch, 
> 0001-Implement-Preemptive-Fast-Fail.patch, 
> 0001-Implement-Preemptive-Fast-Fail.patch, 
> 0001-Implement-Preemptive-Fast-Fail.patch
>
>
> In multi threaded clients, we use a feature developed on 0.89-fb branch 
> called Preemptive Fast Fail. This allows the client threads which would 
> potentially fail, fail fast. The idea behind this feature is that we allow, 
> among the hundreds of client threads, one thread to try and establish 
> connection with the regionserver and if that succeeds, we mark it as a live 
> node again. Meanwhile, other threads which are trying to establish connection 
> to the same server would ideally go into the timeouts which is effectively 
> unfruitful. We can in those cases return appropriate exceptions to those 
> clients instead of letting them retry.



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

Reply via email to