hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "stack (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-12075) Preemptive Fast Fail
Date Sun, 26 Oct 2014 03:41:34 GMT

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

stack commented on HBASE-12075:
-------------------------------

This is a load of code.

'new' in the method name does not convey builder.  How about getRpcTryingCallerFactoryBuilder....

Can we have example of how it is used by an application in release notes?

Sorry [~manukranthk], adding a method getNewRpcRetryingCallerFactory to ClusterConnection
is kinda ugly but given ClusterConnection is internal and that it has things like getAsyncProcess,
I think this addition ok.

Can classes like 	public class FailureInfo { be package protected?  ditto FastFailInterceptorContext


In HTable we have this:

    this.rpcCallerFactory = connection.getNewRpcRetryingCallerFactory(configuration);

Does that mean we fail fast always?  If we commit this patch, client behavior changes?

WHat happens when this is in place? NoOpRetryableCallerInterceptor What kind of behavior can
we expect?

Yeah, can all these client package classes be package protected at least?

Pardon dumb questions.



> 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-HBASE-12075-Implement-Preemptive-Fast-Fail.patch,
0001-HBASE-12075-Implement-Preemptive-Fast-Fail.patch, 0001-HBASE-12075-Implement-Preemptive-Fast-Fail.patch,
0001-HBASE-12075-Implement-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