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

Jonathan Ellis commented on CASSANDRA-383:
------------------------------------------

rather belatedly I realized that we have a deeper problem here.

we don't want to count hint destinations as counting towards the W consistency 
level, or we are violating our contract that W + R > N = consistent (or 
unavailableexception).

we do want to write hints if for instance a quorum write is requested and we 
have 2 of 3 nodes live, we write the third to a hint.  but that can't count 
towards the quorum since that node won't be a potential read target.  so 
getNStorageEndPointMap is the wrong thing to do here.

i think we actually have to go below that abstraction: use getStorageEndPoints 
directly, count the live nodes to see if we have enough to satisfy 
consistency_level, write those out, and if that is less than N, then add hinted 
writes.

> StorageProxy.insertBlocking does not perform hinted handoff
> -----------------------------------------------------------
>
>                 Key: CASSANDRA-383
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-383
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.4
>         Environment: all
>            Reporter: Sandeep Tata
>            Assignee: Sandeep Tata
>             Fix For: 0.4
>
>         Attachments: 383-v1.patch, 383-v2.patch, 383-v3.patch
>
>
> insertBlocking should use getNStorageEndPointMap (like insert) instead of 
> just getNStorageEndPoint so that it can perform hinted handoff.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to