The TTL'd cell is treated as a tombstone. gc_grace_seconds applies to TTL'd cells, because even though the data is TTL'd, it may have been written on top of another live cell that wasn't ttl'd:
Imagine a test table, simple key->value (k, v). INSERT INTO table(k,v) values(1,1); Kill 1 of the 3 nodes UPDATE table USING TTL 60 SET v=1 WHERE k=1 ; 60 seconds later, the live nodes will see that data as deleted, but when that dead node comes back to life, it needs to learn of the deletion. On Wed, Oct 4, 2017 at 2:05 PM, eugene miretsky <[email protected]> wrote: > Hello, > > The following link says that TTLs generate tombstones - > https://docs.datastax.com/en/cql/3.3/cql/cql_using/useExpire.html. > > What exactly is the process that converts the TTL into a tombstone? > > 1. Is an actual new tombstone cell created when the TTL expires? > 2. Or, is the TTLed cell treated as a tombstone? > > > Also, does gc_grace_period have an effect on TTLed cells? gc_grace_period > is meant to protect from deleted data re-appearing if the tombstone is > compacted away before all nodes have reached a consistent state. However, > since the ttl is stored in the cell (in liveness_info), there is no way for > the cell to re-appear (the ttl will still be there) > > Cheers, > Eugene > >
