You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Aleksey Pesternikov (JIRA)" <ji...@apache.org> on 2012/12/24 16:46:13 UTC
[jira] [Commented] (CASSANDRA-5089) get_range_slices is broken
[ https://issues.apache.org/jira/browse/CASSANDRA-5089?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13539283#comment-13539283 ]
Aleksey Pesternikov commented on CASSANDRA-5089:
------------------------------------------------
what is the proper format for token? I assumed it is decimal string. I think it is worked in 1.1.6
re using end_key="": start_key + end_token range has its very valid use case, when the whole data set should be processed (think of map/reduce) on multiple distributed workers. We split the ring into N parts, every worker start with (start_token - end_token) range, when first batch is received it switches to (star_key - end_token). ColumnFamilyRecordReader is cheating here by using internals for calculating token:
startToken = partitioner.getTokenFactory().toString(partitioner.getToken(Iterables.getLast(rows).key));
unfortunately it is not an option for us, we are using C++
So, what is the proper format for token and how to do iteration over several ranges?
Thank you.
> get_range_slices is broken
> --------------------------
>
> Key: CASSANDRA-5089
> URL: https://issues.apache.org/jira/browse/CASSANDRA-5089
> Project: Cassandra
> Issue Type: Bug
> Affects Versions: 1.1.7
> Reporter: Aleksey Pesternikov
> Assignee: Jonathan Ellis
> Priority: Trivial
> Fix For: 1.1.9
>
> Attachments: 5089.txt
>
>
> get_range_slices times out, java log has the following exception:
> ERROR [Thrift:1] 2012-12-22 08:14:30,120 AbstractCassandraDaemon.java (line 135) Exception in thread Thread[Thrift:1,5,main]
> java.lang.AssertionError: [DecoratedKey(28555413689034504124051437792156504, 6434313866653035643631663962323635323937343337653666636265616162),max(0)]
> at org.apache.cassandra.dht.Bounds.<init>(Bounds.java:45)
> at org.apache.cassandra.dht.Bounds.<init>(Bounds.java:38)
> at org.apache.cassandra.thrift.CassandraServer.get_range_slices(CassandraServer.java:698)
> at org.apache.cassandra.thrift.Cassandra$Processor$get_range_slices.getResult(Cassandra.java:3083)
> at org.apache.cassandra.thrift.Cassandra$Processor$get_range_slices.getResult(Cassandra.java:3071)
> at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:32)
> at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:34)
> at org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:186)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> at java.lang.Thread.run(Thread.java:722)
> We see it every time on the SECOND get_range_slices call when we clear start_token and set start_key in the key range.
> We noticed this in 1.1.7 first, 1.1.8 still affected. 1.1.6 is fine.
> Please contact me if you need more information.
>
--
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