cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Francesco Piccinno (JIRA)" <>
Subject [jira] [Created] (CASSANDRA-6439) Token ranges are erroneously swapped
Date Tue, 03 Dec 2013 17:02:35 GMT
Francesco Piccinno created CASSANDRA-6439:

             Summary: Token ranges are erroneously swapped
                 Key: CASSANDRA-6439
             Project: Cassandra
          Issue Type: Bug
          Components: Core
            Reporter: Francesco Piccinno
            Priority: Critical
             Fix For: 2.0.0

I am trying to achieve a linear scan on the data contained in a cassandra node by exploiting
tokens. The idea behind my approach is to request through the pycassa SystemManager a list
of tokens that the cluster is responsible of, and then for each token, issue a {{key_range}}
command specifying {{start}} and {{end}} interval. The problem is that apparently some tokens
returned by the server does not respect the property {{start}} < {{end}}. I think that
the bug resides in the fact that Murmur3 RandomPartitioner is used.

Anyway here are the steps to reproduce the bug:

{code:title=Triggering the bug}
$ pycassaShell -k Crawler
In [1]: tokens = map(lambda x: (int(x.start_token), int(x.end_token)), SYSTEM_MANAGER.describe_ring('Crawler'))

In [2]: len(filter(lambda x: x[0] < x[1], tokens))
Out[2]: 255

In [3]: len(filter(lambda x: x[0] > x[1], tokens))
Out[3]: 1

In [4]: filter(lambda x: x[0] > x[1], tokens)
Out[4]: [(9207458196362321348, -9182599474778206823)]

In [5]: for i in CF.get_range(start_token="9207458196362321348", finish_token="-9182599474778206823"):
print i
# ...
# after some objects are printed
# ...
InvalidRequestException: InvalidRequestException(why="Start key's token sorts after end token")

This message was sent by Atlassian JIRA

View raw message