[
https://issues.apache.org/jira/browse/CASSANDRA-1198?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12880585#action_12880585
]
Christopher Gist commented on CASSANDRA-1198:
---------------------------------------------
It looks like this issue is a regression of
https://issues.apache.org/jira/browse/CASSANDRA-1042 so it should in fact
affect 0.6.3, though I haven't confirmed.
When doing a row iteration starting from token 0, since the ranges are no
longer sorted by ring order after #1042 but by wrap order, the iteration could
start with the range to the left of 0. This results in either iterating through
fewer than all keys, or iterating through duplicate keys. I have seen the
following different behaviour, varying based on the ring tokens, key count and
distribution, and range count:
1) too few keys because range slice command had lower count than keys in (z,0]
range and subsequent range slice was restricted to only the (z,0] range
2) duplicate keys because range slice command had higher count than keys in
(z,0] range and keys in range (z,0] were repeated
3) too few keys because ranges were handled out of token order, eg. (z,0]
before (y,z] so no keys in (y,z] were returned
Also it would appear that token ranges passed into get_range_slices() are in
fact start inclusive, contrary to the wiki. Is this correct?
> In a cluster, get_range_slices() does not return all the keys it should
> -----------------------------------------------------------------------
>
> Key: CASSANDRA-1198
> URL: https://issues.apache.org/jira/browse/CASSANDRA-1198
> Project: Cassandra
> Issue Type: Bug
> Components: Core
> Affects Versions: 0.7
> Environment: Linux 2.6.18-128.1.10.el5.xs5.5.0.51xen
> Java build 1.6.0_17-b04
> Cassandra 0.7 2010-06-15 including patch for
> https://issues.apache.org/jira/browse/CASSANDRA-1130
> Reporter: Christopher Gist
> Assignee: Jeremy Hanna
> Fix For: 0.7
>
>
> Row iteration with get_range_slices() does not return all keys. This
> behaviour only occurs with more than one node and depends on how the nodes
> are located on the ring.
> To reproduce, insert some records into a cluster with more than one node. A
> subsequent row iteration will return fewer records than were inserted. This
> has been observed when 1) inserting into a single node, bootstrapping a
> second node then using get_range_slices() and 2) inserting into a cluster of
> several nodes then using get_range_slices().
> This appears to be similar to
> https://issues.apache.org/jira/browse/CASSANDRA-781
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.