Thanks for your help, I wrote a script to cycle through these early records and 
try to update them (some columns were missing, but could be gleaned from 
another db), then do the update, re-read, and if its not correct figure out the 
write time and re-issue the update with a timestamp + 1.  We’re exporting the 
data to a cluster so we can bring it into one with murmur3 partition, so 
hopefully this will address it.

I don’t think this was a time shift thing, so far I’ve found 4 records in 2013 
and one of them has a date like 3673-01-26 16:46:00 +0000 - that would be quite 
a clock skew :)

Thanks for the thoughtful reply.

- Greg

> On Aug 17, 2017, at 9:22 AM, Jeff Jirsa <jji...@gmail.com> wrote:
> 
> It's a long, so you can't grab it with readInt - 8 bytes instead of 4
> 
> You can delete it by issuing a delete with an explicit time stamp at least 1 
> higher the. The timestamp on the cell
> 
> DELETE FROM table USING TIMESTAMP=? WHERE .... 
> 
> https://cassandra.apache.org/doc/latest/cql/dml.html#delete
> 
> This could happen if - in the past - one of your clients or servers had a 
> very incorrect clock. I'm not aware of any bugs that corrupted timestamp 
> anytime in the past 6-7 years of the database, but my memory isn't perfect.
> 
> 
> -- 
> Jeff Jirsa
> 
> 
> On Aug 17, 2017, at 1:45 AM, Greg Saylor <gr...@net-virtual.com> wrote:
> 
>> Hello,
>> 
>> We have a Cassandra database that is about 5 years old and has gone through 
>> multiple upgrades.   Today I noticed a very odd thing (current timestamp 
>> would be around 1502957436214912):
>> 
>>   cqlsh:siq_prod> select id,account_id,sweep_id from items where id=34681132;
>> 
>>    id       | account_id | sweep_id
>>   ----------+------------+----------
>>    34681132 |      13896 |         
>> 
>> I then attempted to delete it:
>> 
>> 
>> cqlsh:siq_prod> delete from items where id=34681132;
>> 
>> But its still there, so I thought I’d look at the writteime of sweep_id:
>> 
>> cqlsh:siq_prod> select id,account_id,sweep_id,writetime(sweep_id) from items 
>> where id=34681132;
>> 
>> id       | account_id | sweep_id | writetime(sweep_id)
>> ----------+------------+----------+---------------------
>> 34681132 |       null |          |    1718969631988312
>> 
>> That is Friday, June 21, 2024 11:33:51.988 AM
>> 
>> Is there any way to get rid of this record or update the writetime?  I’ve 
>> done a look around the database and there are many more examples of this.  
>> There’s nothing we can think of that would have caused this, this record was 
>> inserted back in 2013 and there are other records within seconds of that one 
>> which are just fine.
>> 
>> I suspect something must have gone awry during an upgrade or there was a 
>> subtle bug in the version of Cassandra we were running at the time.
>> 
>> What started down this path was a tool an engineer was running that was 
>> written in NodeJS, apparently the cassandra driver for Node can’t parse this:
>> 
>> { RangeError: Index out of range
>>    at checkOffset (buffer.js:821:11)
>>    at Buffer.readInt32BE (buffer.js:986:5)
>> 
>> Most other drivers I’ve tested just return nil.
>> 
>> Is there any way to get out of this situation?  I can’t delete it or update 
>> it.  This table has about 1 billion rows in it.
>> 
>> Thank you,
>> 
>> Greg Saylor
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscr...@cassandra.apache.org
>> For additional commands, e-mail: user-h...@cassandra.apache.org
>> 


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@cassandra.apache.org
For additional commands, e-mail: user-h...@cassandra.apache.org

Reply via email to