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

Use builder pattern to improve usability of client API

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      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

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                apurtell Andrew Purtell
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: