You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "stack (JIRA)" <ji...@apache.org> on 2009/12/17 07:26:18 UTC

[jira] Commented: (HBASE-2051) Use builder pattern to improve usability of client API

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

stack commented on HBASE-2051:
------------------------------

Code looks good.  Couple of comments wouldn't go amiss (smile).  How you think this addition would be distributed Paul?  You think the Builder pattern would be in hbase or a distinct project?  I suppose life would be easier if hbase+hadoop were all up in a maven repo somewhere?


> Use builder pattern to improve usability of client API
> ------------------------------------------------------
>
>                 Key: HBASE-2051
>                 URL: https://issues.apache.org/jira/browse/HBASE-2051
>             Project: Hadoop HBase
>          Issue Type: Improvement
>            Reporter: Andrew Purtell
>             Fix For: 0.21.0
>
>         Attachments: aconex-hbase-utils.zip
>
>
> From Paul Smith up on hbase-user@:
> {quote}
> I think a good collection of useful builders and utilities that handle the 80% case will help HBase gain much more traction.  As an person starting with HBase, there are a lot of concepts to get, Bytes definitely get in the way of seeing the real underlying patterns.  I'm a total believer in understanding the internals to get the best out of a product, but that often comes after experimentation, and these high-level libraries grease the wheels for faster 'grok'ing the concepts.
> Thinking out loud here, but something like this may be useful:
> {code}
> PutBuilder builder = new PutBuilder(hTable);
> // first Row
> builder.withRowKey(1stRowKey).withColumnFamily("foo")
>     .put("columnA", valueA)
>     .put("columnB",valueB);
> // secondRow
> builder.withRowKey(2ndRowKey).withColumnFamily("eek")
>     .put("columnC", valueC)
>     .put("columnD",valueD);
> ..
> builder.putAll();
> {code}
> {quote}
> Perhaps we could use the Builder pattern to achieve simplification (e.g. HBASE-1990) and API support for multicalls (HBASE-1986, HBASE-1845) at the same time. Method variants should accept byte[] or String for keys or values, and lists. 

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