On Sat, Nov 3, 2012 at 10:23 PM, horschi <hors...@gmail.com> wrote: > Do you mind if I ask where you stand on making... > - ... ExpiringColumn not create any tombstones? Imo this could be safely > done if the columns TTL is >= gcgrace.
Yes, if the TTL >= gcgrace this would be safe and I'm pretty sure we use to have a ticket for that (can't find it back with a quick search but JIRA search suck and I didn't bother long). But basically we decided to not do it for now for 2 reasons: 1) it's not trivial from the code point of view. Long story short, expired columns are converted to tombstone at deserialization time, and not generating the tombstone would means deserialization sometime skipping a column. Turns out there is a bunch of fairly sensible code to update to make that work. 2) in the main cases where this would be really useful, i.e. if all the columns of your column family are ttled and with a ttl >= gcgrace, you can just set gcgrace = 0 and achieve a fairly similar effect. In other words, based on both of those argument, we've decided to see that later and focus on other things. I'm certainly not closed in revisiting this, especially since some code change in 1.2 make my point 1) a little bit less of an issue. But I'd lie if I said this was on my priority list (and for the record, I think that if CASSANDRA-4905 is solved, then this won't be much of a problem as far as repair is concerned). > - ... ExpiringColumn not add local timestamp to digest? As I said in a previous thread, I don't see what the problem is here. The timestamp is not local to the node, it is assigned once and for all by the coordinator at insert time. I can agree that it's not really useful per se to the digest, but I don't think it matters in any case. -- Sylvain