Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-2051

Use builder pattern to improve usability of client API

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • None
    • None
    • None

    Description

      From Paul Smith up on hbase-user@:

      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:

      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();
      

      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.

      Attachments

        1. aconex-hbase-utils.zip
          51 kB
          Paul Smith

        Issue Links

          Activity

            People

              Unassigned Unassigned
              apurtell Andrew Kyle Purtell
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: