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