incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Kallin Nagelberg <kallin.nagelb...@gmail.com>
Subject Re: time to live rows
Date Tue, 08 Feb 2011 20:23:47 GMT
I did read those articles, but I didn't know know that deleting all
the columns on a row was equivalent to deleting the row. Like I
mentioned, I did delete all the columns from all my rows and then
forced compaction before and after gc_grace had passed, but all the
rows still exist. If they never disappear, then won't I run out of
resources eventually?

-Kal

On Tue, Feb 8, 2011 at 3:09 PM, Jeremiah Jordan
<JEREMIAH.JORDAN@morningstar.com> wrote:
> You will have the same problem.  You just have to learn to ignore empty rows when you
query data.  See articles on delete mentioned earlier.
>
>>>> >> >>> > http://wiki.apache.org/cassandra/FAQ#i_deleted_what_gives
>>>> >> >>> > http://wiki.apache.org/cassandra/FAQ#range_ghosts
>
> -----Original Message-----
> From: Kallin Nagelberg [mailto:kallin.nagelberg@gmail.com]
> Sent: Tuesday, February 08, 2011 1:36 PM
> To: user@cassandra.apache.org
> Subject: Re: time to live rows
>
> I'm thinking if this row expiry notion doesn't pan out then I might
> create a 'lastAccessed' column with a secondary index (i think that's
> right) on it. Then I can periodically run a query to find all
> lastAccessed columns less than a certain value and manually delete
> them. Sound reasonable?
>
> -Kal
>
> On Tue, Feb 8, 2011 at 12:09 PM, Kallin Nagelberg
> <kallin.nagelberg@gmail.com> wrote:
>> Yes I did, on the org.apache.cassandra.db.ColumnFamilies.Main.Session object.
>>
>> -Kal
>>
>> On Tue, Feb 8, 2011 at 12:00 PM, Sylvain Lebresne <sylvain@datastax.com> wrote:
>>> Did you force a major compaction (with jconsole or nodetool) after gc_grace
>>> has elapsed ?
>>> On Tue, Feb 8, 2011 at 5:46 PM, Kallin Nagelberg
>>> <kallin.nagelberg@gmail.com> wrote:
>>>>
>>>> Thanks, gc_grace works in the CLI.
>>>>
>>>> However, I'm not observing the desired effect. I am setting TTL on a
>>>> single column in my column family, and I see the columns disappear
>>>> when using 'list Session' (my columnfamily) in the CLI. I created the
>>>> column family with gc_grace = 60, and after observing for a few
>>>> minutes I am still seeing all the rows come back, none of them with
>>>> columns. I was hoping the GC would delete the empty rows.
>>>>
>>>> -Kal
>>>>
>>>> On Tue, Feb 8, 2011 at 11:39 AM, Sylvain Lebresne <sylvain@datastax.com>
>>>> wrote:
>>>> > Not very logically, It's actually gc_grace, not gc_grace_seconds in
the
>>>> > CLI.
>>>> >
>>>> > On Tue, Feb 8, 2011 at 5:34 PM, Kallin Nagelberg
>>>> > <kallin.nagelberg@gmail.com> wrote:
>>>> >>
>>>> >> I'm trying to set the gc_grace_seconds column family parameter but
no
>>>> >> luck.. I got the name of it from the comment in cassandra.yaml:
>>>> >>
>>>> >> #     - gc_grace_seconds: specifies the time to wait before garbage
>>>> >> #        collecting tombstones (deletion markers). defaults
to 864000
>>>> >> (10
>>>> >> #        days). See http://wiki.apache.org/cassandra/DistributedDeletes
>>>> >>
>>>> >> create column family Session
>>>> >>    with comparator = UTF8Type
>>>> >>    and keys_cached = 10000
>>>> >>    and memtable_flush_after = 1440
>>>> >>    and memtable_throughput = 32
>>>> >>        and gc_grace_seconds = 60;
>>>> >>
>>>> >> error is 'No enum const class
>>>> >>
>>>> >>
>>>> >> org.apache.cassandra.cli.CliUserHelp$ColumnFamilyArgument.GC_GRACE_SECONDS'.
>>>> >>
>>>> >> Thanks,
>>>> >> -Kal
>>>> >>
>>>> >> On Tue, Feb 8, 2011 at 11:02 AM, Sylvain Lebresne
>>>> >> <sylvain@datastax.com>
>>>> >> wrote:
>>>> >> >> I hope you don't consider this a hijack of the thread...
>>>> >> >>
>>>> >> >> What I'd like to know is the following:
>>>> >> >>
>>>> >> >> The GC removes TTL rows some time after they expire, at
its
>>>> >> >> convenience.
>>>> >> >> But will they stop being returned as soon as they expire?
(This is
>>>> >> >> the
>>>> >> >> expected behavior...)
>>>> >> >
>>>> >> > It is the individual column that have TTL. When a column expires,
it
>>>> >> > becomes
>>>> >> > a delete tombstone. Now, a row with tombstones (even only them)
will
>>>> >> > show
>>>> >> > during range request. But the explanation is
>>>> >> > here: http://wiki.apache.org/cassandra/FAQ#range_ghosts
>>>> >> >
>>>> >> >>
>>>> >> >> On Tue, Feb 8, 2011 at 5:11 PM, Kallin Nagelberg
>>>> >> >> <kallin.nagelberg@gmail.com> wrote:
>>>> >> >>>
>>>> >> >>> So the empty row will be ultimately removed then? Is
there a way to
>>>> >> >>> for the GC to verify this?
>>>> >> >>>
>>>> >> >>> Thanks,
>>>> >> >>> -Kal
>>>> >> >>>
>>>> >> >>> On Tue, Feb 8, 2011 at 2:21 AM, Stu Hood <stuhood@gmail.com>
wrote:
>>>> >> >>> > The expired columns were converted into tombstones,
which will
>>>> >> >>> > live
>>>> >> >>> > for
>>>> >> >>> > the
>>>> >> >>> > GC timeout. The "empty" row will be cleaned up
when those
>>>> >> >>> > tombstones
>>>> >> >>> > are
>>>> >> >>> > removed.
>>>> >> >>> > Returning the empty row is unfortunate... we'd
love to find a
>>>> >> >>> > more
>>>> >> >>> > appropriate solution that might not involve endless
scanning.
>>>> >> >>> > See
>>>> >> >>> > http://wiki.apache.org/cassandra/FAQ#i_deleted_what_gives
>>>> >> >>> > http://wiki.apache.org/cassandra/FAQ#range_ghosts
>>>> >> >>> >
>>>> >> >>> > On Mon, Feb 7, 2011 at 1:49 PM, Kallin Nagelberg
>>>> >> >>> > <kallin.nagelberg@gmail.com> wrote:
>>>> >> >>> >>
>>>> >> >>> >> I also tried forcing a major compaction on
the column family
>>>> >> >>> >> using
>>>> >> >>> >> JMX
>>>> >> >>> >> but the row remains.
>>>> >> >>> >>
>>>> >> >>> >> On Mon, Feb 7, 2011 at 4:43 PM, Kallin Nagelberg
>>>> >> >>> >> <kallin.nagelberg@gmail.com> wrote:
>>>> >> >>> >> > I tried that but I still see the row
coming back on a list
>>>> >> >>> >> > <columnfamily> in the CLI. My concern
is that there will be a
>>>> >> >>> >> > pointer
>>>> >> >>> >> > to an empty row for all eternity.
>>>> >> >>> >> >
>>>> >> >>> >> > -Kal
>>>> >> >>> >> >
>>>> >> >>> >> > On Mon, Feb 7, 2011 at 4:38 PM, Aaron
Morton
>>>> >> >>> >> > <aaron@thelastpickle.com>
>>>> >> >>> >> > wrote:
>>>> >> >>> >> >> Deleting all the columns in a row
via TTL has the same affect
>>>> >> >>> >> >> as
>>>> >> >>> >> >> deleting th
>>>> >> >>> >> >> row, the data will physically by
removed during compaction.
>>>> >> >>> >> >>
>>>> >> >>> >> >> Aaron
>>>> >> >>> >> >>
>>>> >> >>> >> >>
>>>> >> >>> >> >> On 08 Feb, 2011,at 10:24 AM, Bill
Speirs
>>>> >> >>> >> >> <bill.speirs@gmail.com>
>>>> >> >>> >> >> wrote:
>>>> >> >>> >> >>
>>>> >> >>> >> >> I don't think this is supported (but
I could be completely
>>>> >> >>> >> >> wrong).
>>>> >> >>> >> >> However, I'd love to see this functionality
as well.
>>>> >> >>> >> >>
>>>> >> >>> >> >> How would one go about requesting
such a feature?
>>>> >> >>> >> >>
>>>> >> >>> >> >> Bill-
>>>> >> >>> >> >>
>>>> >> >>> >> >> On Mon, Feb 7, 2011 at 4:15 PM, Kallin
Nagelberg
>>>> >> >>> >> >> <kallin.nagelberg@gmail.com>
wrote:
>>>> >> >>> >> >>> Hey,
>>>> >> >>> >> >>>
>>>> >> >>> >> >>> I have read about the new TTL
columns in Cassandra 0.7. In
>>>> >> >>> >> >>> my
>>>> >> >>> >> >>> case
>>>> >> >>> >> >>> I'd
>>>> >> >>> >> >>> like to expire an entire row
automatically after a certain
>>>> >> >>> >> >>> amount
>>>> >> >>> >> >>> of
>>>> >> >>> >> >>> time. Is this possible as well?
>>>> >> >>> >> >>>
>>>> >> >>> >> >>> Thanks,
>>>> >> >>> >> >>> -Kal
>>>> >> >>> >> >>>
>>>> >> >>> >> >>
>>>> >> >>> >> >
>>>> >> >>> >
>>>> >> >>> >
>>>> >> >>
>>>> >> >
>>>> >> >
>>>> >
>>>> >
>>>
>>>
>>
>

Mime
View raw message