On Fri, May 29, 2015 at 1:31 PM, Robert Wille <rwi...@fold3.com> wrote:

>
> I was wondering how that compares to cells with expired TTLs. Does the
> node get to skip sending data back to the coordinator for an expired TTL?


No, it has to send expired cells.


>
> Suppose you wrote a cell with no TTL, and then updated it with a TTL.
> Suppose that node 1 got both writes, but node 2 only got the first one. If
> you asked for the cell after it expired, and node 1 did not send anything
> to the coordinator, it seems to me that that could violate consistency
> levels. Also, read repair could never fix node 2. So, how does that work?
>

That's precisely why they have to be sent to the coordinator.


>
> On a related note, do cells with expired TTLs have to wait
> gc_grace_seconds before they can be compacted out?


Yes.


> It seems to me that if they could get compacted out immediately after
> expiration, you could get zombie data, just like you can with tombstones.
> For example, write a cell with no TTL to all replicas, shut down one
> replica, update the cell with a TTL, compact after the TTL has expired,
> then bring the other node back up. Voila, the formerly down node has a
> value that will replicate to the other nodes.


Correct, that's why they can't be purged immediately.


-- 
Tyler Hobbs
DataStax <http://datastax.com/>

Reply via email to