incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ben Browning <ben...@gmail.com>
Subject Re: Range search on keys not working?
Date Wed, 02 Jun 2010 12:40:52 GMT
The keys will not be in any specific order when not using OPP, so, you
will never "get out of range" - you have to iterate over every single
key to find all keys that start with "CATEGORY". If you don't iterate
over every single key you run a chance of missing some. Obviously,
this kind of key range scan is nothing something that will scale well
as the number of keys go up. If your app needs this kind of behavior
you'd be much better off with OPP.

Ben

On Wed, Jun 2, 2010 at 8:29 AM, David Boxenhorn <david@lookin2.com> wrote:
> In other words, I should check the values as I iterate, and stop iterating
> when I get out of range?
>
> I'll try that!
>
> On Wed, Jun 2, 2010 at 3:15 PM, Dr. Martin Grabmüller
> <Martin.Grabmueller@eleven.de> wrote:
>>
>> When not using OOP, you should not use something like 'CATEGORY/' as the
>> end key.
>> Use the empty string as the end key and limit the number of returned keys,
>> as you did with
>> the 'max' value.
>>
>> If I understand correctly, the end key is used to generate an end token by
>> hashing it, and
>> there is not the same correspondence between 'CATEGORY' and 'CATEGORY/' as
>> for
>> hash('CATEGORY') and hash('CATEGORY/').
>>
>> At least, this was the explanation I gave myself when I had the same
>> problem.
>>
>> The solution is to iterate through the keys by always using the last key
>> returned as the
>> start key for the next call to get_range_slices, and the to drop the first
>> element from
>> the result.
>>
>> HTH,
>>   Martin
>>
>> ________________________________
>> From: David Boxenhorn [mailto:david@lookin2.com]
>> Sent: Wednesday, June 02, 2010 2:01 PM
>> To: user@cassandra.apache.org
>> Subject: Re: Range search on keys not working?
>>
>> The previous thread where we discussed this is called, "key is sorted?"
>>
>>
>> On Wed, Jun 2, 2010 at 2:56 PM, David Boxenhorn <david@lookin2.com> wrote:
>>>
>>> I'm not using OPP. But I was assured on earlier threads (I asked several
>>> times to be sure) that it would work as stated below: the results would not
>>> be ordered, but they would be correct.
>>>
>>> On Wed, Jun 2, 2010 at 2:51 PM, Torsten Curdt <tcurdt@vafer.org> wrote:
>>>>
>>>> Sounds like you are not using an order preserving partitioner?
>>>>
>>>> On Wed, Jun 2, 2010 at 13:48, David Boxenhorn <david@lookin2.com> wrote:
>>>> > Range search on keys is not working for me. I was assured in earlier
>>>> > threads
>>>> > that range search would work, but the results would not be ordered.
>>>> >
>>>> > I'm trying to get all the rows that start with "CATEGORY."
>>>> >
>>>> > I'm doing:
>>>> >
>>>> > String start = "CATEGORY.";
>>>> > .
>>>> > .
>>>> > .
>>>> > keyspace.getSuperRangeSlice(columnParent, slicePredicate, start,
>>>> > "CATEGORY/", max)
>>>> > .
>>>> > .
>>>> > .
>>>> >
>>>> > in a loop, setting start to the last key each time - but I'm getting
>>>> > rows
>>>> > that don't start with "CATEGORY."!!
>>>> >
>>>> > How do I get all rows that start with "CATEGORY."?
>>>
>>
>
>

Mime
View raw message