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

Sylvain Lebresne commented on CASSANDRA-2034:
---------------------------------------------

I looked at the last patch to see if we don't mess up with counters here, and 
it looks ok on that side.

A few comments on the patch while I'm at it:
* There is a few formatting that don't respect the codeStyle: some in 
MessageService, some imports moved further from what the codeStyle dictate in 
AbstractWriteResponseHandler and StorageProxy (that imports 
quicktime.std.movies.ExecutingWiredAction!!)
* It seems we use the exact same timeout for hints and callback. However, given 
that ExpiringMap is only so much precise, it seems to me we have like 50% 
chance that the hint will expire before the callback, which means no hint will 
be recorded (we could bump the timeout for hint to twice the one of callback, 
and remove from mutationMessages once the hint is written; though I would 
rather go for the next proposition if possible). 
* Can't we reuse the callback expiring map for hints instead of creation a new 
one. It's not like ExpiringMap is the cheapest thing around, and it seems like 
each mutation message always have an attached callback with the exact same 
lifetime. We could replace the Pair<InetAddress, IMessageCallback> by a 
CallbackInfo (or some better name) class with a InetAddress and 
IMessageCallback, and subclass it to CallbackInfoWithMessage when we need to 
store the message too. I'm pretty sure it would much more efficient.
* In SP.sendToHintedEndpoints, there is no need to test if hintedHandoff is 
enabled, because the hintedEndpoints map will only contain non-hinted target if 
it is disabled (see AbstractReplicationStragegy.getHintedEndpoints).


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