hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Manukranth Kolloju (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-12075) Preemptive Fast Fail
Date Tue, 07 Oct 2014 04:06:36 GMT

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

Mime
View raw message