[
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.