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

Sylvain Lebresne commented on CASSANDRA-4858:
---------------------------------------------

It is true that for a given subpart of the ring, you'll need more nodes to 
cover it with vnodes than without in general. But I think that's just one 
downside of vnodes and there is little we can do about, and more importantly, I 
don't think we should focus on that on this ticket.

What we're trying to fix here is that when a node is primary replica for a 
range r, then he is also replica for RF-1 other range contiguous to r. That's 
true with vnodes or not. So to cover (at CL.ONE) the range composed of those RF 
contiguous ranges, we only need one RangeSliceCommand, but currently we create 
RF ones. In other words, we currently create RF times too many 
RangeSliceCommand because we don't take into account the replication factor.

And as it happens, in the degenerate case where RF == number of nodes, this is 
even worst than that because in that case 1 RangeSliceCommand is always enough 
for CL.ONE, but we create RF * nb-tokens-per-node ones, and that's where 
'vnodes make this a lot worse'. But in general this ticket is not really 
related to vnodes (but yes, range queries potentially suck more with vnodes, 
but that's a completely different problem (though in practice I'm not sure it 
really matters)).

                
> Coverage analysis for low-CL queries
> ------------------------------------
>
>                 Key: CASSANDRA-4858
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4858
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Jonathan Ellis
>            Assignee: Vijay
>             Fix For: 1.2.1
>
>
> There are many cases where getRangeSlice creates more
> RangeSliceCommand than it should, because it always creates one for each range
> returned by getRestrictedRange.  Especially for CL.ONE this does not take
> the replication factor into account and is potentially pretty wasteful.
> A range slice at CL.ONE on a 3 node cluster with RF=3 should only
> ever create one RangeSliceCommand.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to