hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ryan rawson (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HBASE-2450) For single row reads of specific columns, seek to the first column in HFiles rather than start of row
Date Fri, 03 Sep 2010 19:54:33 GMT

    [ https://issues.apache.org/jira/browse/HBASE-2450?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12906044#action_12906044
] 

ryan rawson commented on HBASE-2450:
------------------------------------

ran a profiler-based timing test and with this patch things seem to be faster:

diff --git a/src/main/java/org/apache/hadoop/hbase/regionserver/ScanQueryMatcher.java b/src/main/java/org/apache/hadoop/hbase/regionserver/ScanQueryMatcher.java
index 286cb64..b24b28f 100644
--- a/src/main/java/org/apache/hadoop/hbase/regionserver/ScanQueryMatcher.java
+++ b/src/main/java/org/apache/hadoop/hbase/regionserver/ScanQueryMatcher.java
@@ -77,17 +77,22 @@ public class ScanQueryMatcher {
     this.rowComparator = rowComparator;
     this.deletes =  new ScanDeleteTracker();
     this.stopRow = scan.getStopRow();
-    this.startKey = KeyValue.createFirstOnRow(scan.getStartRow());
     this.filter = scan.getFilter();
 
     // Single branch to deal with two types of reads (columns vs all in family)
     if (columns == null || columns.size() == 0) {
       // use a specialized scan for wildcard column tracker.
       this.columns = new ScanWildcardColumnTracker(maxVersions);
+      this.startKey = KeyValue.createFirstOnRow(scan.getStartRow());
     } else {
       // We can share the ExplicitColumnTracker, diff is we reset
       // between rows, not between storefiles.
-      this.columns = new ExplicitColumnTracker(columns,maxVersions);
+      this.columns = new ExplicitColumnTracker(columns, maxVersions);
+      final ColumnCount hint = this.columns.getColumnHint();
+      this.startKey = KeyValue.createFirstOnRow(scan.getStartRow(),
+          0, scan.getStartRow().length,
+          family, 0, family.length,
+          hint.getBuffer(), hint.getOffset(), hint.getLength());
     }
   }

> For single row reads of specific columns, seek to the first column in HFiles rather than
start of row
> -----------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-2450
>                 URL: https://issues.apache.org/jira/browse/HBASE-2450
>             Project: HBase
>          Issue Type: Improvement
>          Components: io, regionserver
>            Reporter: Jonathan Gray
>            Assignee: Pranav Khaitan
>             Fix For: 0.90.0
>
>
> Currently we will always seek to the start of a row.  If we are getting specific columns,
we should seek to the first column in that row.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message