cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Erik Forkalsud <>
Subject Re: How often to run `nodetool repair`
Date Thu, 01 Aug 2013 21:26:57 GMT
On 08/01/2013 01:16 PM, Andrey Ilinykh wrote:
>     TTL is effectively DELETE; you need to run a repair once every
>     gc_grace_seconds. If you don't, data might un-delete itself.
> How is it possible? Every replica has TTL, so it when it expires every 
> replica has tombstone. I don't see how you can get data with no 
> tombstone. What do I miss?

The only way I can think of is this scenario:

    - value "A" for some key is written with ttl=30days, to all 
replicas   (i.e a long ttl or no ttl at all)
    - value "B" for the same key is written with ttl=1day, but doesn't 
reach all replicas
    - one day passes and the ttl=1day values turn into deletes
    - gc_grace passes and the tombstones are purged

at this point, the replica that didn't get the ttl=1day value will think 
the older value "A" is live.

I'm no expert on this so I may be mistaken, but in any case it's a 
corner case as overwriting columns with shorter ttls would be unusual.

- Erik -

View raw message