From user-return-24872-apmail-cassandra-user-archive=cassandra.apache.org@cassandra.apache.org Mon Mar 19 20:46:52 2012 Return-Path: X-Original-To: apmail-cassandra-user-archive@www.apache.org Delivered-To: apmail-cassandra-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 8134E9B60 for ; Mon, 19 Mar 2012 20:46:52 +0000 (UTC) Received: (qmail 76270 invoked by uid 500); 19 Mar 2012 20:46:50 -0000 Delivered-To: apmail-cassandra-user-archive@cassandra.apache.org Received: (qmail 76249 invoked by uid 500); 19 Mar 2012 20:46:50 -0000 Mailing-List: contact user-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@cassandra.apache.org Delivered-To: mailing list user@cassandra.apache.org Received: (qmail 76239 invoked by uid 99); 19 Mar 2012 20:46:50 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 19 Mar 2012 20:46:50 +0000 X-ASF-Spam-Status: No, hits=2.5 required=5.0 tests=HTML_FONT_SIZE_LARGE,HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_SOFTFAIL X-Spam-Check-By: apache.org Received-SPF: softfail (nike.apache.org: transitioning domain of caleb@steelhouse.com does not designate 66.46.182.52 as permitted sender) Received: from [66.46.182.52] (HELO relay.ihostexchange.net) (66.46.182.52) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 19 Mar 2012 20:46:43 +0000 Received: from VMBX131.ihostexchange.net ([192.168.40.21]) by HUB102.ihostexchange.net ([66.46.182.52]) with mapi; Mon, 19 Mar 2012 16:46:18 -0400 From: Caleb Rackliffe To: "user@cassandra.apache.org" Date: Mon, 19 Mar 2012 16:46:18 -0400 Subject: Re: repair broke TTL based expiration Thread-Topic: repair broke TTL based expiration Thread-Index: Ac0GEVWfATM/VwM+T/CAqQKy1e8MdQ== Message-ID: In-Reply-To: <4c7f615a-6f0b-4684-b834-af810f045d9b.maildroid@localhost> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/14.14.0.111121 acceptlanguage: en-US Content-Type: multipart/related; boundary="_004_CB8CE7A59343calebsteelhousecom_"; type="multipart/alternative" MIME-Version: 1.0 X-Virus-Checked: Checked by ClamAV on apache.org --_004_CB8CE7A59343calebsteelhousecom_ Content-Type: multipart/alternative; boundary="_000_CB8CE7A59343calebsteelhousecom_" --_000_CB8CE7A59343calebsteelhousecom_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable I've been wondering about this too, but every column has both a timestamp a= nd a TTL. Unless the timestamp is not preserved, there should be no need t= o adjust the TTL, assuming the expiration time is determined from these two= variables. Does that make sense? My question is how often Cassandra checks for TTL expirations. Does it hap= pen at compaction time? Some other time? Caleb Rackliffe | Software Developer M 949.981.0159 | caleb@steelhouse.com [cid:C02073B9-9A8A-49FE-89BE-9AC4419A3D3C] From: "igor@4friends.od.ua" > Reply-To: "user@cassandra.apache.org" > Date: Mon, 19 Mar 2012 15:28:40 -0400 To: "user@cassandra.apache.org" > Subject: Re: repair broke TTL based expiration Hello Datasize should decrease during minor compactions. Check logs for compactio= ns results. -----Original Message----- From: Radim Kolar > To: user@cassandra.apache.org Sent: Mon, 19 Mar 2012 12:16 Subject: repair broke TTL based expiration I suspect that running cluster wide repair interferes with TTL based expiration. I am running repair every 7 days and using TTL expiration time 7 days too. Data are never deleted. Stored data in cassandra are always growing (watching them for 3 months) but they should not. If i run manual cleanup, some data are deleted but just about 5%. Currently there are about 3-5 times more rows then i estimate. I suspect that running repair on data with TTL can cause: 1. time check for expired records is ignored and these data are streamed to other node and they will be alive again or 2. streaming data are propagated with full TTL. Lets say that i have ttl 7 days, data are stored for 5 days and then repaired, they should be sent to other node with ttl 2 days not 7. Can someone do testing on this case? I could not play with production cluster too much. --_000_CB8CE7A59343calebsteelhousecom_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable
I've been wond= ering about this too, but every column has both a timestamp and a TT= L.  Unless the timestamp is not preserved, there should be no need to = adjust the TTL, assuming the expiration time is determined from these two v= ariables.

Does that make sense?

My question is how often Cassandra checks for TTL expirations.  = ;Does it happen at compaction time? Some other time?


Caleb Rac= kliffe | Software Developer
M 949.981.0= 159 | caleb@steelhouse.com
=

From: "igor@4friends.od.ua" <igor@4friends.od.ua>
Reply-To: "user@cassandra.apache.org" <user@cassandra.apache.org>
Date: Mon, 19 Mar 2012 15:28:40 -0400
To: "user@ca= ssandra.apache.org" <us= er@cassandra.apache.org>
Subject= : Re: repair broke TTL based expiration

Hello

Datasize should decrease during minor compactions. Check = logs for compactions results.

 



-----O= riginal Message-----
From: Radim Kolar <hsn@filez.com>
To: user@cassandra.apache.org
Sent: Mon, 19 Mar 2012 12:16
Subject= : repair broke TTL based expiration

I suspect that running = cluster wide repair interferes with TTL based=20
expiration. I am running repair every 7 days and using TTL expiration=20
time 7 days too. Data are never deleted.
Stored data in cassandra are always growing (watching them for 3 months)=20
but they should not. If i run manual cleanup, some data are deleted but=20
just about 5%. Currently there are about 3-5 times more rows then i=20
estimate.

I suspect that running repair on data with TTL can cause:

1. time check for expired records is ignored and these data are streamed=20
to other node and they will be alive again
  or
2. streaming data are propagated with full TTL. Lets say that i have ttl=20
7 days, data are stored for 5 days and then repaired, they should be=20
sent to other node with ttl 2 days not 7.

Can someone do testing on this case? I could not play with production=20
cluster too much.

--_000_CB8CE7A59343calebsteelhousecom_-- --_004_CB8CE7A59343calebsteelhousecom_ Content-Type: image/png; name="EB2FF764-478C-4966-9B0A-E7B76D6AD7DC[23].png" Content-Description: EB2FF764-478C-4966-9B0A-E7B76D6AD7DC[23].png Content-Disposition: inline; filename="EB2FF764-478C-4966-9B0A-E7B76D6AD7DC[23].png"; size=20957; creation-date="Mon, 19 Mar 2012 20:46:18 GMT"; modification-date="Mon, 19 Mar 2012 20:46:18 GMT" Content-ID: Content-Transfer-Encoding: base64 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 --_004_CB8CE7A59343calebsteelhousecom_--