Return-Path: X-Original-To: apmail-cassandra-commits-archive@www.apache.org Delivered-To: apmail-cassandra-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 7D7A9D6ED for ; Tue, 28 Aug 2012 17:26:08 +0000 (UTC) Received: (qmail 42984 invoked by uid 500); 28 Aug 2012 17:26:08 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 42952 invoked by uid 500); 28 Aug 2012 17:26:08 -0000 Mailing-List: contact commits-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cassandra.apache.org Delivered-To: mailing list commits@cassandra.apache.org Received: (qmail 42835 invoked by uid 99); 28 Aug 2012 17:26:08 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 28 Aug 2012 17:26:08 +0000 Date: Wed, 29 Aug 2012 04:26:07 +1100 (NCT) From: "Edward Capriolo (JIRA)" To: commits@cassandra.apache.org Message-ID: <1447755820.7225.1346174768010.JavaMail.jiratomcat@arcas> In-Reply-To: <1774763565.37924.1345592798104.JavaMail.jiratomcat@arcas> Subject: [jira] [Commented] (CASSANDRA-4565) TTL columns with older then gcgrace do not need to flush MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/CASSANDRA-4565?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13443295#comment-13443295 ] Edward Capriolo commented on CASSANDRA-4565: -------------------------------------------- I noticed this because the method I added had loggers that I never saw in the output. What I saw happening was ExpiringColumns past TTL never made it into the flush. After some tracing I came to the conclusion that maybeResetDeletionTimes takes into account ttl time, and converts them to DeletedColumns which do not get flushed. Also if you take the unit test I added, it passes without modification to the code base so unless my test is not doing what I think it seems like cassandra is already handling this. If you are finding this not to be the case we can re-open and I will take a look. > TTL columns with older then gcgrace do not need to flush > -------------------------------------------------------- > > Key: CASSANDRA-4565 > URL: https://issues.apache.org/jira/browse/CASSANDRA-4565 > Project: Cassandra > Issue Type: Improvement > Reporter: Edward Capriolo > Assignee: Edward Capriolo > Fix For: 1.3 > > Attachments: cassandra-4565.patch.1.txt > > > With memcache many people are willing to sacrifice durability for performance. Cassandra has a TimeToLive feature that can be used in caching scenarios with low values for gc_grace_seconds. However from a code dive it seems that cassandra will always write TTL to disk, even those that are beyond gc_grace_seconds. If a use case very large memtables,small ttl, and small gc_grace it is possible that flushing these columns to disk can be skipped entirely in some scenarios. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira