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

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. 

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

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: https://issues.apache.org/jira/browse/CASSANDRA-2034
>             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, CASSANDRA-2034-trunk.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: http://www.atlassian.com/software/jira

        

Reply via email to