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

Reentrant row locks

    XMLWordPrintableJSON

Details

    • Incompatible change, Reviewed
    • Changed the coprocessor RegionObserver methods preBatchMutate and postBatchMutate to remove the lock ids from the methods as lock ids are not longer used.
    • 0.96notable

    Description

      HBASE-8806 revealed performance problems with batch mutations failing to reacquire the same row locks. It looks like HBASE-8806 will use a less intrusive change for 0.94 to have batch mutations track their own row locks and not attempt to reacquire them. Another approach will be to support reentrant row locks directly. This allows simplifying a great deal of calling code to no longer track and pass around lock ids.

      One affect this change will have is changing the RegionObserver coprocessor's methods preBatchMutate and postBatchMutate from taking a MiniBatchOperationInProgress<Pair<Mutation, Integer>> miniBatchOp to taking a MiniBatchOperationInProgress<Mutation> miniBatchOp. I don't believe CPs should be relying on these lock ids, but that's a potential incompatibility.

      Attachments

        1. HBASE-8877.patch
          45 kB
          Dave Latham
        2. HBASE-8877-0.94.patch
          8 kB
          Dave Latham
        3. hbase-8877-0.94-microbenchmark.txt
          3 kB
          Dave Latham
        4. HBASE-8877-0.94-v2.patch
          8 kB
          Dave Latham
        5. HBASE-8877-refCounts.patch
          71 kB
          Dave Latham
        6. hbase-8877-refCounts-microbenchmarks.txt
          6 kB
          Dave Latham
        7. HBASE-8877-refCounts-v2.patch
          71 kB
          Dave Latham
        8. HBASE-8877-refCounts-v3.patch
          71 kB
          Dave Latham
        9. HBASE-8877-refCounts-v4.patch
          69 kB
          Dave Latham
        10. HBASE-8877-refCounts-v5.patch
          69 kB
          Dave Latham
        11. HBASE-8877-v2.patch
          45 kB
          Dave Latham
        12. HBASE-8877-v3.patch
          45 kB
          Dave Latham
        13. HBASE-8877-v4.patch
          45 kB
          Dave Latham
        14. hbase-8877-v4-microbenchmark.txt
          4 kB
          Dave Latham
        15. HBASE-8877-v5.patch
          45 kB
          Dave Latham
        16. HBASE-8877-v6.patch
          46 kB
          Dave Latham
        17. HBASE-8877-v7.patch
          49 kB
          Dave Latham

        Issue Links

          Activity

            People

              davelatham Dave Latham
              davelatham Dave Latham
              Votes:
              0 Vote for this issue
              Watchers:
              11 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: