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

Table#puts(List<Put>) operation is indeterminate; needs fixing

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • 1.0.0
    • 2.0.0-alpha-3, 2.0.0
    • API
    • None
    • Reviewed
    • Adds more spec on how Get, Delete, and Put work and how they differ to help the user.

    Description

      Another API issue found by larsgeorge:

      "Table.put(List<Put) is questionable after the API change."

      [Mar-17 9:21 AM] Lars George: Table.put(List<Put>) is weird since you cannot flush partial lists
      [Mar-17 9:21 AM] Lars George: Say out of 5 the third is broken, then the put() call returns with a local exception (say empty Put) and then you have 2 that are in the buffer
      [Mar-17 9:21 AM] Lars George: but how to you force commit them?
      [Mar-17 9:22 AM] Lars George: In the past you would call flushCache(), but that is "gone" now
      [Mar-17 9:22 AM] Lars George: and flush() is not available on a Table
      [Mar-17 9:22 AM] Lars George: And you cannot access the underlying BufferedMutation neither
      [Mar-17 9:23 AM] Lars George: You can *only* add more Puts if you can, or call close()
      [Mar-17 9:23 AM] Lars George: that is just weird to explain
      

      So, Table needs to get flush back or we deprecate this method or it flushes immediately and does not return until complete in the implementation.

      Attachments

        1. hbase-13271.master.001.patch
          5 kB
          Umesh Agashe
        2. hbase-13271.master.002.patch
          12 kB
          Umesh Agashe
        3. hbase-13271.master.003.patch
          13 kB
          Umesh Agashe

        Issue Links

          Activity

            People

              uagashe Umesh Agashe
              stack Michael Stack
              Votes:
              0 Vote for this issue
              Watchers:
              14 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: