cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Patricio Echague (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-2034) Make Read Repair unnecessary when Hinted Handoff is enabled
Date Tue, 16 Aug 2011 17:23:27 GMT


Patricio Echague commented on CASSANDRA-2034:

Thanks Jonathan for the snippet of code. I didn't notice it was broken.

I don't see where CallbackInfo.shouldHint is broken. 

public boolean shouldHint()
        if (StorageProxy.shouldHint(target) && isMutation)
1)              ((IWriteResponseHandler) callback).get();
                return true;
            catch (TimeoutException e) 
                // CL was not achieved. We should not hint.
        return false;

I process the callback after the message expired. If the CL was achieved (and the requirement
for a hint are gathered) I return true for this target meaning that a hint needs to be written.

On the other hand, if the message expire and the CL was not achieved, then I return FALSE
(for this target).

Perhaps it needs a special treatment during the shutdown ?

> Make Read Repair unnecessary when Hinted Handoff is enabled
> -----------------------------------------------------------
>                 Key: CASSANDRA-2034
>                 URL:
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Jonathan Ellis
>            Assignee: Patricio Echague
>             Fix For: 1.0
>         Attachments: 2034-formatting.txt, CASSANDRA-2034-trunk-v10.patch, CASSANDRA-2034-trunk-v11.patch,
CASSANDRA-2034-trunk-v11.patch, CASSANDRA-2034-trunk-v12.patch, CASSANDRA-2034-trunk-v13.patch,
CASSANDRA-2034-trunk-v14.patch, CASSANDRA-2034-trunk-v2.patch, CASSANDRA-2034-trunk-v3.patch,
CASSANDRA-2034-trunk-v4.patch, CASSANDRA-2034-trunk-v5.patch, CASSANDRA-2034-trunk-v6.patch,
CASSANDRA-2034-trunk-v7.patch, CASSANDRA-2034-trunk-v8.patch, CASSANDRA-2034-trunk-v9.patch,
>   Original Estimate: 8h
>  Remaining Estimate: 8h
> Currently, HH is purely an optimization -- if a machine goes down, enabling HH means
RR/AES will have less work to do, but you can't disable RR entirely in most situations since
HH doesn't kick in until the FailureDetector does.
> Let's add a scheduled task to the mutate path, such that we return to the client normally
after ConsistencyLevel is achieved, but after RpcTimeout we check the responseHandler write
acks and write local hints for any missing targets.
> This would making disabling RR when HH is enabled a much more reasonable option, which
has a huge impact on read throughput.

This message is automatically generated by JIRA.
For more information on JIRA, see:


View raw message