Yes, that's what I meant, but correct me if I'm wrong, when a deletion comes 
after another deletion for the same row or column will the gc-before count 
against the last one, isn't it?

Maybe knowing that all the subsequent versions of a deletion are deletions too, 
it could take the first timestamp against the gc-grace-seconds when is reducing 
& compacting.

// Germán Kondolf
http://twitter.com/germanklf
http://code.google.com/p/seide/
// @i4

On 19/01/2011, at 00:16, Jonathan Ellis <jbel...@gmail.com> wrote:

> If you mean that multiple tombstones for the same row or column should
> be merged into a single one at compaction time, then yes, that is what
> happens.
> 
> On Tue, Jan 18, 2011 at 7:53 PM, Germán Kondolf
> <german.kond...@gmail.com> wrote:
>> Maybe it could be taken into account when the compaction is executed,
>> if I only have a consecutive list of uninterrupted tombstones it could
>> only care about the first. It sounds like the-way-it-should-be, maybe
>> as a part of the "row-reduce" process.
>> 
>> Is it feasible? Looking into the CASSANDRA-1074 sounds like it should.
>> 
>> //GK
>> http://twitter.com/germanklf
>> http://code.google.com/p/seide/
>> 
>> On Tue, Jan 18, 2011 at 10:55 AM, Sylvain Lebresne <sylv...@riptano.com> 
>> wrote:
>>> On Tue, Jan 18, 2011 at 2:41 PM, David Boxenhorn <da...@lookin2.com> wrote:
>>>> Thanks, Aaron, but I'm not 100% clear.
>>>> 
>>>> My situation is this: My use case spins off rows (not columns) that I no
>>>> longer need and want to delete. It is possible that these rows were never
>>>> created in the first place, or were already deleted. This is a very large
>>>> cleanup task that normally deletes a lot of rows, and the last thing that I
>>>> want to do is create tombstones for rows that didn't exist in the first
>>>> place, or lengthen the life on disk of tombstones of rows that are already
>>>> deleted.
>>>> 
>>>> So the question is: before I delete, do I have to retrieve the row to see 
>>>> if
>>>> it exists in the first place?
>>> 
>>> Yes, in your situation you do.
>>> 
>>>> 
>>>> 
>>>> 
>>>> On Tue, Jan 18, 2011 at 11:38 AM, Aaron Morton <aa...@thelastpickle.com>
>>>> wrote:
>>>>> 
>>>>> AFAIK that's not necessary, there is no need to worry about previous
>>>>> deletes. You can delete stuff that does not even exist, neither 
>>>>> batch_mutate
>>>>> or remove are going to throw an error.
>>>>> All the columns that were (roughly speaking) present at your first
>>>>> deletion will be available for GC at the end of the first tombstones life.
>>>>> Same for the second.
>>>>> Say you were to write a col between the two deletes with the same name as
>>>>> one present at the start. The first version of the col is avail for GC 
>>>>> after
>>>>> tombstone 1, and the second after tombstone 2.
>>>>> Hope that helps
>>>>> Aaron
>>>>> On 18/01/2011, at 9:37 PM, David Boxenhorn <da...@lookin2.com> wrote:
>>>>> 
>>>>> Thanks. In other words, before I delete something, I should check to see
>>>>> whether it exists as a live row in the first place.
>>>>> 
>>>>> On Tue, Jan 18, 2011 at 9:24 AM, Ryan King <r...@twitter.com> wrote:
>>>>>> 
>>>>>> On Sun, Jan 16, 2011 at 6:53 AM, David Boxenhorn <da...@lookin2.com>
>>>>>> wrote:
>>>>>>> If I delete a row, and later on delete it again, before GCGraceSeconds
>>>>>>> has
>>>>>>> elapsed, does the tombstone live longer?
>>>>>> 
>>>>>> Each delete is a new tombstone, which should answer your question.
>>>>>> 
>>>>>> -ryan
>>>>>> 
>>>>>>> In other words, if I have the following scenario:
>>>>>>> 
>>>>>>> GCGraceSeconds = 10 days
>>>>>>> On day 1 I delete a row
>>>>>>> On day 5 I delete the row again
>>>>>>> 
>>>>>>> Will the tombstone be removed on day 10 or day 15?
>>>>>>> 
>>>>> 
>>>> 
>>>> 
>>> 
>> 
> 
> 
> 
> -- 
> Jonathan Ellis
> Project Chair, Apache Cassandra
> co-founder of Riptano, the source for professional Cassandra support
> http://riptano.com

Reply via email to