cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Piotr Kołaczkowski (JIRA) <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-7020) Incorrect result of query WHERE token(key) < -9223372036854775808 when using Murmur3Partitioner
Date Wed, 26 Aug 2015 09:25:46 GMT

    [ https://issues.apache.org/jira/browse/CASSANDRA-7020?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14712790#comment-14712790
] 

Piotr Kołaczkowski commented on CASSANDRA-7020:
-----------------------------------------------

I'm fine leaving it as is for now - I filed the ticket because it felt surprising at that
moment, but now we have a workaround. So maybe just documenting the special minToken case
in the CQL docs on tokens would be enough for now? 

What I don't like about the present state of handling tokens by CQL is that in some cases
it treats tokens as if there was total ordering and in some cases like here - it doesn't.
So for example querying for [a, b) where b < a yields an empty result (doesn't wrap around).
That's why the application has to unwrap the range manually anyways and fetch a wrapping token
range with 2 separate queries. Unfortunately after unwrapping you get a mintoken on the split
point and then you realize that mintoken actually wraps around and selects everything. This
is how we ended up with a bug in our code.

If it always did wrap-around, that would be IMHO consistent, but we needed to probably disallow
open-ended queries for tokens i.e. "token(...) >= a" without a corresponding "token(...)
< b" clause, as they would always return the full ring. 



> Incorrect result of query WHERE token(key) < -9223372036854775808 when using Murmur3Partitioner
> -----------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-7020
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7020
>             Project: Cassandra
>          Issue Type: Bug
>         Environment: cassandra 2.0.6-snapshot 
>            Reporter: Piotr Kołaczkowski
>            Assignee: Marko Denda
>             Fix For: 2.1.x
>
>         Attachments: 7020.txt
>
>
> {noformat}
> cqlsh:test1> select * from test where token("key") < -9223372036854775807;
> (0 rows)
> cqlsh:test1> select * from test where token("key") < -9223372036854775808;
>  key | value
> -----+----------
>    5 |   eeeeee
>   10 |        j
>    1 |     aaaa
>    8 | hhhhhhhh
>    2 |      bbb
>    4 |       dd
>    7 |     gggg
>    6 |      fff
>    9 |     iiii
>    3 |    ccccc
> {noformat}
> Expected: empty result.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message