Thank you Jonatathan, I missed this point about converting TTL data to tombstones first.

When you say:
You absolutely can.  That's what the "user defined" part is: you give
it the exact list of sstables you want compacted.
does it mean that I can use list (not just one) of sstables as second parameter for userDefinedCompaction?

On 04/18/2012 05:53 AM, Jonathan Ellis wrote:
On Sat, Apr 14, 2012 at 4:08 AM, Igor <> wrote:
Assume I insert all my data with TTL=2weeks and let we have sstable A which
was created week ago at the time T, so I know that right now it contain:

1) some data that were inserted not later than T and may-be not expired yet
2) some amount of data that were already close to expiration due TTL at the
time T, but still had no chances to be wiped out because up to the current
moment size-tiered compaction did not involve A into compactions.

Large amount of data from 2) became expired in a week after time T and
probably passed gc_grace period, so it shoould be wiped at any compaction on
table A.
Any compaction pass over A will first convert the TTL data into tombstones.

Then, any subsequent pass that includes A *and all other sstables
containing rows with the same key* will drop the tombstones.