Return-Path: Delivered-To: apmail-hbase-dev-archive@www.apache.org Received: (qmail 8458 invoked from network); 3 Oct 2010 09:15:15 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 3 Oct 2010 09:15:15 -0000 Received: (qmail 37179 invoked by uid 500); 3 Oct 2010 09:15:15 -0000 Delivered-To: apmail-hbase-dev-archive@hbase.apache.org Received: (qmail 36824 invoked by uid 500); 3 Oct 2010 09:15:12 -0000 Mailing-List: contact dev-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@hbase.apache.org Delivered-To: mailing list dev@hbase.apache.org Received: (qmail 36800 invoked by uid 99); 3 Oct 2010 09:15:11 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 03 Oct 2010 09:15:11 +0000 X-ASF-Spam-Status: No, hits=1.8 required=10.0 tests=FH_HELO_EQ_D_D_D_D,FREEMAIL_FROM,SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (nike.apache.org: 184.73.217.71 is neither permitted nor denied by domain of pranavkhaitan@gmail.com) Received: from [184.73.217.71] (HELO ip-10-202-7-187.ec2.internal) (184.73.217.71) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 03 Oct 2010 09:15:04 +0000 Received: from ip-10-202-7-187.ec2.internal (localhost [127.0.0.1]) by ip-10-202-7-187.ec2.internal (Postfix) with ESMTP id 84A128A200; Sun, 3 Oct 2010 09:14:43 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Subject: Re: Review Request: Reseeking directly to required columns From: "Pranav Khaitan" To: "Karthik Ranganathan" , "Jonathan Gray" , "Kannan Muthukkaruppan" , stack@duboce.net Date: Sun, 03 Oct 2010 09:14:43 -0000 Message-ID: <20101003091443.5732.84607@ip-10-202-7-187.ec2.internal> Cc: jiraposter@review.hbase.org, "Pranav Khaitan" , dev@hbase.apache.org In-Reply-To: <20100916075712.20479.43428@ip-10-202-7-187.ec2.internal> References: <20100916075712.20479.43428@ip-10-202-7-187.ec2.internal> X-Virus-Checked: Checked by ClamAV on apache.org ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://review.cloudera.org/r/781/#review1382 ----------------------------------------------------------- trunk/src/main/java/org/apache/hadoop/hbase/regionserver/ScanQueryMatcher.j= ava Kannan, what you are suggesting is the right thing to do but I don't th= ink it is required much here. This function is called only when the ScanQue= ryMatcher decides that it wants to go to the next column (and not next row)= . If the ScanQueryMatcher knows that all columns are over, then it will ret= urn SEEK_NEXT_ROW instead of SEEK_NEXT_COL. In that case, this function wil= l never be called. Therefore, nextColumn will only be null when we are usin= g WildcardColumnTracker and do not have explicit column information. - Pranav On 2010-09-16 00:57:12, Pranav Khaitan wrote: > = > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > http://review.cloudera.org/r/781/ > ----------------------------------------------------------- > = > (Updated 2010-09-16 00:57:12) > = > = > Review request for hbase, stack, Jonathan Gray, Karthik Ranganathan, and = Kannan Muthukkaruppan. > = > = > Summary > ------- > = > Optimize reads for specific columns by reseeking between scans. Use the r= eseek logic to jump directly to next required column rather than reading cu= rrent column. > = > Big performance gain for queries with sparse columns. Not advantageous fo= r dense ones. Consider this before comitting. > = > Further suggestions/questions are welcome! > = > = > This addresses bugs HBASE-2450, HBASE-2916 and HBASE-2959. > http://issues.apache.org/jira/browse/HBASE-2450 > http://issues.apache.org/jira/browse/HBASE-2916 > http://issues.apache.org/jira/browse/HBASE-2959 > = > = > Diffs > ----- > = > trunk/src/main/java/org/apache/hadoop/hbase/HConstants.java 990674 = > trunk/src/main/java/org/apache/hadoop/hbase/KeyValue.java 990674 = > trunk/src/main/java/org/apache/hadoop/hbase/regionserver/ScanQueryMatch= er.java 990674 = > trunk/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.j= ava 990674 = > = > Diff: http://review.cloudera.org/r/781/diff > = > = > Testing > ------- > = > All existing tests pass and make significant use of this code. = > = > Added a new test file called TestColumnSeeking along with another patch a= t https://review.cloudera.org/r/780/. > = > = > Thanks, > = > Pranav > = >