Return-Path: X-Original-To: apmail-hbase-issues-archive@www.apache.org Delivered-To: apmail-hbase-issues-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id E922385BE for ; Tue, 16 Aug 2011 05:39:16 +0000 (UTC) Received: (qmail 97436 invoked by uid 500); 16 Aug 2011 05:39:15 -0000 Delivered-To: apmail-hbase-issues-archive@hbase.apache.org Received: (qmail 97027 invoked by uid 500); 16 Aug 2011 05:39:03 -0000 Mailing-List: contact issues-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list issues@hbase.apache.org Received: (qmail 96968 invoked by uid 99); 16 Aug 2011 05:38:55 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 16 Aug 2011 05:38:55 +0000 X-ASF-Spam-Status: No, hits=-2001.1 required=5.0 tests=ALL_TRUSTED,RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.116] (HELO hel.zones.apache.org) (140.211.11.116) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 16 Aug 2011 05:38:53 +0000 Received: from hel.zones.apache.org (hel.zones.apache.org [140.211.11.116]) by hel.zones.apache.org (Postfix) with ESMTP id 29D6BBEE2F for ; Tue, 16 Aug 2011 05:38:33 +0000 (UTC) Date: Tue, 16 Aug 2011 05:38:33 +0000 (UTC) From: "stack (JIRA)" To: issues@hbase.apache.org Message-ID: <783670158.40513.1313473113168.JavaMail.tomcat@hel.zones.apache.org> In-Reply-To: <873085257.6092.1310010916518.JavaMail.tomcat@hel.zones.apache.org> Subject: [jira] [Commented] (HBASE-4071) Data GC: Remove all versions > TTL EXCEPT the last written version 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/HBASE-4071?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13085541#comment-13085541 ] stack commented on HBASE-4071: ------------------------------ @LarsH Patch looks great. Minor intrusion. I'd say that best way to build confidence that all works as it did is to run all unit tests -- IIRC we should have coverage enough to notice if you've broken the default behavior -- and then for your additions, work up a few unit tests that exercise the new functionality (This will also uncover any other code your patch should have touched -- I don't think you've missed anything since same Scan code is used compacting.... this you might want to verify, that compacting we do right thing, especially major vs minor around this new minimum versions config). Is this right? + if (currentCount <= minVersions) The other two instances preincrement currentCount. This instance doesn't. Is there a reason (If so, probably deserves a comment). Looks too like a bit of repeated code here that perhaps could be factored out to a method of its own? This is sketch code but FYI, around these parts folks remove code rather than comment it out... On 1. above, 'Expired rows can no longer be expunged...', why not? Are we doing this now? (I don't remember) If so, why can't we do this still? On 2., it don't look too bad to me On 7., yes. Good on you LarsH. > Data GC: Remove all versions > TTL EXCEPT the last written version > ------------------------------------------------------------------ > > Key: HBASE-4071 > URL: https://issues.apache.org/jira/browse/HBASE-4071 > Project: HBase > Issue Type: New Feature > Reporter: stack > Attachments: MinVersions.diff > > > We were chatting today about our backup cluster. What we want is to be able to restore the dataset from any point of time but only within a limited timeframe -- say one week. Thereafter, if the versions are older than one week, rather than as we do with TTL where we let go of all versions older than TTL, instead, let go of all versions EXCEPT the last one written. So, its like versions==1 when TTL > one week. We want to allow that if an error is caught within a week of its happening -- user mistakenly removes a critical table -- then we'll be able to restore up the the moment just before catastrophe hit otherwise, we keep one version only. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira