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

stack commented on HBASE-521:
-----------------------------

Something is missing from the patch.  On clean checkout of src, I get:

{code}
    [javac] Compiling 193 source files to 
/Users/stack/Documents/checkouts/hbase/trunk/build/classes
    [javac] 
/Users/stack/Documents/checkouts/hbase/trunk/src/java/org/apache/hadoop/hbase/client/HTable.java:860:
 cannot find symbol
    [javac] symbol  : method endKey()
    [javac] location: class org.apache.hadoop.hbase.client.HTable.ClientScanner
    [javac]         if (endKey() == null || endKey().equals(EMPTY_TEXT)) {
    [javac]             ^
    [javac] 
/Users/stack/Documents/checkouts/hbase/trunk/src/java/org/apache/hadoop/hbase/client/HTable.java:860:
 cannot find symbol
    [javac] symbol  : method endKey()
    [javac] location: class org.apache.hadoop.hbase.client.HTable.ClientScanner
    [javac]         if (endKey() == null || endKey().equals(EMPTY_TEXT)) {
    [javac]                                 ^
    [javac] 
/Users/stack/Documents/checkouts/hbase/trunk/src/java/org/apache/hadoop/hbase/mapred/TableInputFormat.java:54:
 cannot find symbol
    [javac] symbol  : method getName()
    [javac] location: class org.apache.hadoop.hbase.mapred.TableInputFormat
    [javac]   protected final Log LOG = 
LogFactory.getLog(TableInputFormat.getName());
{code}

> Improve client scanner interface
> --------------------------------
>
>                 Key: HBASE-521
>                 URL: https://issues.apache.org/jira/browse/HBASE-521
>             Project: Hadoop HBase
>          Issue Type: Improvement
>          Components: client
>            Reporter: Bryan Duxbury
>            Assignee: Bryan Duxbury
>            Priority: Minor
>             Fix For: 0.2.0
>
>         Attachments: 521-v2.patch, 521-v3.patch, 521.patch
>
>
> The current client scanner interface is pretty ugly. You need to instantiate 
> an HStoreKey and SortedMap<Text, byte[]> externally and then pass them into 
> next. This is pretty bad, because for starters, the client has to choose the 
> implementation of the map when they create it, so it's extra brain cycles to 
> figure that out. HStoreKey doesn't show up anywhere else in the entire client 
> side API, but here it bubbles out of next as a way to get the row and 
> presumably the timestamp of the columns.
> I propose that we supplant HScannerInterface with Scanner, an easier-to-use 
> version for clients. Its next method would look something like:
> {code}
> public RowResult next() throws IOException;
> {code}
> This packs the data up much more cleanly, including using Cells as values 
> instead of raw byte[], meaning you have much more granular timestamp 
> information. You also don't need HStoreKey anymore.
> By breaking Scanner away from HScannerInterface, we can leave the internal 
> scanning code completely alone (keep using HStoreKeys and such) but make the 
> client cleaner.

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

Reply via email to