I was mystified when I was not able to update a column ccc for a few keys in my test_cf, but was able to update that for all other keys. Then, I noticed that the column for that key is set to be deleted in future (year 6172 !)
DEBUG [ReadStage:1191] 2012-01-31 22:21:48,374 SliceQueryFilter.java (line 123) collecting 0 of 1000000: ccc:true:4@1326231110794000
The timestamp must be from buggy code putting extra zeros, or from some issue in upgrade from 0.8.7 to 1.0.6 to 1.0.7. It almost seems like Cassandra sees a few extra zeroes appended to the timestamp. The value without the three zeroes falls at the right time for the row inserted above and the time of delete below.
Recent records fetch ok
DEBUG [ReadStage:1278] 2012-01-31 23:00:35,145 SliceQueryFilter.java (line 123) collecting 0 of 100: ccc:false:303@1328024823949!31536000
More important at this point is to clean this up.
I tried to overwrite a value for that through CLI and it worked, sort of
DEBUG [ReadStage:1099] 2012-01-31 21:15:34,385 SliceQueryFilter.java (line 123) collecting 0 of 100: ccc:false:1@1328043222690000
But the timestamp still keeps the extra zeroes. I cannot set it programmatically because my code uses current timestamp.
I tried to delete the whole record from CLI. The record cannot be queried anymore, but I still see the column (and others for the record) in the log. I did repair, cleanup and compact, but still no luck.
How can I delete a future dated column? Or overwrite it (without using a timestamp in year 7000!) ?
I am using cassandra 1.0.7.
Hiren Shah | R&D Team
168 North Clinton Street, Fourth Floor
Chicago, Illinois 60661
o: 312.253.3523 | c: 312.622.4970