[
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)