If the tombstone is older than the row or column inserted later, is the tombstone skipped entirely after compaction?
best regards, hanzhu On Wed, Jan 19, 2011 at 11:16 AM, 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 >