iconara / cql-rb

Cassandra CQL 3 binary protocol driver for Ruby
106 stars 31 forks source link

Cassandra returns to life deleted entries #98

Closed brlo closed 10 years ago

brlo commented 10 years ago

Guys, I'm sorry. It's not about cql-rb, it's about Cassandra, I guess.

I'm testing Cassandra Version: 2.1.0~beta1 and getting into a very strange thing. This is my schema:

CREATE TABLE userlines (
     username text,
     time timeuuid,
     msg_id uuid,
   PRIMARY KEY (username, time)
) WITH CLUSTERING ORDER BY (time DESC)

First, I'm trying to INSERT something into this empty Columns Family:

cqlsh:cequel> select * from userlines;

(0 rows)

cqlsh:cequel> INSERT INTO userlines (username, msg_id, time) VALUES ('admin', ad18dbf8-d2bc-11e3-9bc1-47ba2f5b0f02, c9553f3c-d2bc-11e3-b650-255df2f099c5);
cqlsh:cequel> select * from userlines;

 username | time                                 | msg_id
----------+--------------------------------------+--------------------------------------
    admin | c9553f3c-d2bc-11e3-b650-255df2f099c5 | ad18dbf8-d2bc-11e3-9bc1-47ba2f5b0f02

(1 rows)

Then DELETE this entry:

cqlsh:cequel> DELETE FROM userlines WHERE username = 'admin' and time = c9553f3c-d2bc-11e3-b650-255df2f099c5;
cqlsh:cequel> select * from userlines;

(0 rows)

And then INSERT same entry, but increment the last digit of Time column:

cqlsh:cequel> INSERT INTO userlines (username, msg_id, time) VALUES ('admin', ad18dbf8-d2bc-11e3-9bc1-47ba2f5b0f02, c9553f3c-d2bc-11e3-b650-255df2f099c6);
cqlsh:cequel> select * from userlines;

 username | time                                 | msg_id
----------+--------------------------------------+--------------------------------------
    admin | c9553f3c-d2bc-11e3-b650-255df2f099c6 | ad18dbf8-d2bc-11e3-9bc1-47ba2f5b0f02
    admin | c9553f3c-d2bc-11e3-b650-255df2f099c5 | ad18dbf8-d2bc-11e3-9bc1-47ba2f5b0f02

(2 rows)

Now, after inserting just a one entry, I get two.

So, does anybody knows why an old entry returns after another INSERT operation? I think it's something connected with clustering order in Wide Rows. Maybe I'm wrong. Thanks.

brlo commented 10 years ago

Switch to Cassandra Version: 2.0.7 All is fine.