Return-Path: Delivered-To: apmail-hbase-issues-archive@www.apache.org Received: (qmail 73142 invoked from network); 13 Jul 2010 22:09:18 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 13 Jul 2010 22:09:18 -0000 Received: (qmail 13630 invoked by uid 500); 13 Jul 2010 22:09:18 -0000 Delivered-To: apmail-hbase-issues-archive@hbase.apache.org Received: (qmail 13568 invoked by uid 500); 13 Jul 2010 22:09:17 -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 13560 invoked by uid 99); 13 Jul 2010 22:09:17 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 13 Jul 2010 22:09:17 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.22] (HELO thor.apache.org) (140.211.11.22) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 13 Jul 2010 22:09:14 +0000 Received: from thor (localhost [127.0.0.1]) by thor.apache.org (8.13.8+Sun/8.13.8) with ESMTP id o6DM8r5G026569 for ; Tue, 13 Jul 2010 22:08:53 GMT Message-ID: <1642757.360991279058933410.JavaMail.jira@thor> Date: Tue, 13 Jul 2010 18:08:53 -0400 (EDT) From: "Pranav Khaitan (JIRA)" To: issues@hbase.apache.org Subject: [jira] Updated: (HBASE-2265) HFile and Memstore should maintain minimum and maximum timestamps MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/HBASE-2265?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Pranav Khaitan updated HBASE-2265: ---------------------------------- Attachment: TimestampOptimizationV6.patch Hi Ryan, Jonathan, There is a major correction to this JIRA. I just did some more testing and realized that we forgot one thing in the last set of refactoring and reformatting. In line 422, we had changed the variable from b to timerangeBytes but did not change the if statement in next sentence (which is a big deal). byte[] timerangeBytes = metadataMap.get(TIMERANGE_KEY); if (b!=null) Should be changed to: byte[] timerangeBytes = metadataMap.get(TIMERANGE_KEY); if (timerangeBytes != null) I am also attaching the patch with this mail. Please update this asap and let me know if you have any questions. Regards, Pranav > HFile and Memstore should maintain minimum and maximum timestamps > ----------------------------------------------------------------- > > Key: HBASE-2265 > URL: https://issues.apache.org/jira/browse/HBASE-2265 > Project: HBase > Issue Type: Improvement > Components: regionserver > Reporter: Todd Lipcon > Assignee: Pranav Khaitan > Fix For: 0.90.0 > > Attachments: TimestampOptimizationV6.patch > > > In order to fix HBASE-1485 and HBASE-29, it would be very helpful to have HFile and Memstore track their maximum and minimum timestamps. This has the following nice properties: > - for a straight Get, if an entry has been already been found with timestamp X, and X >= HFile.maxTimestamp, the HFile doesn't need to be checked. Thus, the current fast behavior of get can be maintained for those who use strictly increasing timestamps, but "correct" behavior for those who sometimes write out-of-order. > - for a scan, the "latest timestamp" of the storage can be used to decide which cell wins, even if the timestamp of the cells is equal. In essence, rather than comparing timestamps, instead you are able to compare tuples of (row timestamp, storage.max_timestamp) > - in general, min_timestamp(storage A) >= max_timestamp(storage B) if storage A was flushed after storage B. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.