Get Range Slices is broken
--------------------------
Key: CASSANDRA-1442
URL: https://issues.apache.org/jira/browse/CASSANDRA-1442
Project: Cassandra
Issue Type: Bug
Affects Versions: 0.6.4, 0.6.5
Environment: Linux - CentOs
Reporter: Moleza Moleza
Priority: Blocker
HI,
We just recently tried to use 0.6.4 and 0.6.5 in our production environment and
had some serious problem.
The getRangeSlices functionality is broken.
We have a cluster of 5 machines.
We use getRangeSlices to iterate over all of the keys in a cf (2062 keys total).
We are using OrderPreservingPartitioner.
We use getRangeSlices with KeyRange using keys (not tokens).
If we set the requestBlockCount (aka: KeyRange.setCount()) to a number
greater than 2062 we get all keys in one shot (all is good).
If we try to fetch the keys in smaller blocks (requestBlockCount=100)
we get BAD RESULTS.
We get only 800 unique keys back.
We start with (startKey="" and endKey="") then, after each iteration, we use
the lastKey to set the startKey for the next page.
Except on first page, we always skip the first item of the page (knowing that
it is a repeat, the last one, of the prior page).
To get the lastKey we tried two strategies: [1] set the lastKey to the last
item in the page, and [2] use String.compareTo to get the largest ley. Neither
strategy worked.
Our keys are strings (obviously the only option in 0.6) that represent numbers.
Some Sample keys are: (in correct lexi order)
-1
11113
11457
6831
7035
8060
8839
------
This code (without any changes) was working correctly under 0.6.3 (we
got same response from getRangeSlices if using requestBlockCounts of
10,000 or 100).
We tried it under 0.6.4 and 0.6.5 and it stopped working.
We reverted back to 0.6.3 and (again, without changing the code) it
started working again.
------
I tried inserting all the keys into a test cluster of one (1 machine) and it
worked fine.
So this must be related to how the page is build in a cluster of more than 1
nodes.
We have a cluster of 5 nodes with replication factor of 3.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.