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

Sandeep Tata commented on CASSANDRA-497:
----------------------------------------

> Yes it does, because reads just use getReadStorageEndPoints, which correctly 
> ignores bootstrap-in-progress. 

Which is exactly why it might violate consistency guarantees. Here's an example:

Key k lives on A, B, C. Node  N is being bootstrapped for this range.

write(k, ConsistencyLevel.ONE) : blocks for 1 response, say this was from Node 
N.

read(k, ConsistencyLevel.ONE) --> gets data from one replica, say A. Node A 
might not yet have gotten the previous write (only N did): this violates the 
consistency semantics.

> Include bootstrap targets in consistencylevel computations
> ----------------------------------------------------------
>
>                 Key: CASSANDRA-497
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-497
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>             Fix For: 0.5
>
>         Attachments: 
> 0001-CASSANDRA-497-rename-nodePicker-replicationStrategy.txt, 
> 0002-make-write-targets-computable-independent-of-replicati.txt, 
> 0003-Make-EndPoint-objects-immmutable-so-hashcode-can-t-ch.txt, imports.patch
>
>
> We want to preserve ConsistencyLevel semantics during bootstrap, and if a 
> CL.quorum/all write is sent to a bootstrap target, it would have to wait for 
> the forwarded write to complete to report in turn that the write is good.
> Leaving write propagation to be done by the write originator means we don't 
> have this extra layer of latency.

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