cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christopher Gist (JIRA)" <>
Subject [jira] Commented: (CASSANDRA-1198) In a cluster, get_range_slices() does not return all the keys it should
Date Sun, 20 Jun 2010 03:59:23 GMT


Christopher Gist commented on CASSANDRA-1198:

It looks like this issue is a regression of
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:
>             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
>            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

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

View raw message