incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bob Florian <bflor...@gmail.com>
Subject Re: Deleting and re-inserting row causes error in get_slice count parameter
Date Thu, 25 Mar 2010 22:53:16 GMT
Sure thing.  Here it is:
https://issues.apache.org/jira/browse/CASSANDRA-920

On Thu, Mar 25, 2010 at 4:44 PM, Jonathan Ellis <jbellis@gmail.com> wrote:
> Can you create a ticket with a test case?
>
> On Thu, Mar 25, 2010 at 3:39 PM, Bob Florian <bflorian@gmail.com> wrote:
>> I was originally using 0.5.0 but I've reproduced the behavior with
>> 0.5.1 and 0.6.0-beta3.
>>
>>
>> On Wed, Mar 24, 2010 at 3:00 PM, Jonathan Ellis <jbellis@gmail.com> wrote:
>>> Are you using 0.5.0?  Because this sounds like a bug that was fixed in 0.5.1.
>>>
>>> On Mon, Mar 22, 2010 at 5:13 PM, Bob Florian <bflorian@gmail.com> wrote:
>>>> I'm new to Cassandra and have run into a problem that I think is a
>>>> bug, but wanted to get some feedback in case I'm misunderstanding
>>>> something.
>>>>
>>>> I've found that when I delete an entire row in a column family with
>>>> super columns, and then re-insert values with the same row and super
>>>> column keys, the count parameter to the get_slice call no longer works
>>>> properly.  Its like it is still counting the deleted columns, but only
>>>> returning the new columns.
>>>>
>>>> The following example uses the Ruby Cassandra client (see link below),
>>>> but I've seen the same behavior with the Java Thrift interface.
>>>>
>>>> 1)  First I create a client and insert a super column with three columns:
>>>>
>>>>>> require 'cassandra'
>>>> => true
>>>>>> cc = Cassandra.new('Keyspace1')
>>>> => #<Cassandra:2159536540, @keyspace="Keyspace1", @schema={},
>>>> @servers=["127.0.0.1:9160"]>
>>>>>> cc.insert(:Super1,'test1',{'bucket1' => {'1' => 'Item 1', '2'
=> 'Item 2', '5' => 'Item 5'}})
>>>> => nil
>>>>
>>>>
>>>> 2)  Getting the slice of columns just inserted works with or without
>>>> the count parameter:
>>>>
>>>>>> cc.get(:Super1,'test1','bucket1')
>>>> => #<OrderedHash {"1"=>"Item 1", "2"=>"Item 2", "5"=>"Item
5"}>
>>>>
>>>>>> cc.get(:Super1,'test1','bucket1',:count => 3)
>>>> => #<OrderedHash {"1"=>"Item 1", "2"=>"Item 2", "5"=>"Item
5"}>
>>>>
>>>>
>>>> 3)  Now I remove the row:
>>>>
>>>>>> cc.remove(:Super1,'test1')
>>>> => nil
>>>>
>>>>
>>>> 4)  And confirm that nothing's left:
>>>>>> cc.get(:Super1,'test1','bucket1')
>>>> => #<OrderedHash {}>
>>>>
>>>>
>>>> 5)  Next I insert 3 different columns using the same row and super column
keys:
>>>>
>>>>>> cc.insert(:Super1,'test1',{'bucket1' => {'3' => 'Item 3', '4'
=> 'Item 4', '6' => 'Item 6'}})
>>>> => nil
>>>>
>>>>
>>>> 6)  Getting the slice of columns works correctly with no count parameter:
>>>>
>>>>>> cc.get(:Super1,'test1','bucket1')
>>>> => #<OrderedHash {"6"=>"Item 6", "3"=>"Item 3", "4"=>"Item
4"}>
>>>>
>>>>
>>>> 7)  But setting the count parameter to 3 returns fewer than 3 columns:
>>>>
>>>>>> cc.get(:Super1,'test1','bucket1',:count => 3)
>>>> => #<OrderedHash {"3"=>"Item 3"}>
>>>>
>>>>
>>>> 8)  Incrementally increasing the count parameter confirms the apparent
>>>> behavior of counting the deleted columns:
>>>>
>>>>>> cc.get(:Super1,'test1','bucket1',:count => 4)
>>>> => #<OrderedHash {"3"=>"Item 3", "4"=>"Item 4"}>
>>>>>> cc.get(:Super1,'test1','bucket1',:count => 5)
>>>> => #<OrderedHash {"3"=>"Item 3", "4"=>"Item 4"}>
>>>>
>>>>
>>>> 9) I have to set the count to 6 to return all 3 columns:
>>>>
>>>>>> cc.get(:Super1,'test1','bucket1',:count => 6)
>>>> => #<OrderedHash {"6"=>"Item 6", "3"=>"Item 3", "4"=>"Item
4"}>
>>>>
>>>>
>>>> The same thing doesn't happen when I remove only the super column key
>>>> ('bucket1').
>>>>
>>>> Here's the reference to the Ruby client I used for the example, but
>>>> the problem is not client specific.
>>>> http://blog.evanweaver.com/files/doc/fauna/cassandra/files/README_rdoc.html
>>>>
>>>
>>
>

Mime
View raw message