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

Writes should not block reads on blocking updates to memstores

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.94.4, 0.95.0
    • Component/s: None
    • Labels:
      None
    • Hadoop Flags:
      Reviewed
    • Release Note:
      Hide
      Added new configuration parameters to adjust the wait time in getting a lock before acting on a region:

      hbase.busy.wait.multiplier.max (default 2)
      hbase.rowlock.wait.duration (same as the default RPC timeout time)

      For reading, it waits at most "hbase.rowlock.wait.duration" in getting a lock.
      For writing, it waits at most "hbase.rowlock.wait.duration" * min ( #rows affected, "
      hbase.busy.wait.multiplier.max"). However, it waits at most the server side call purge timeout time.

      Show
      Added new configuration parameters to adjust the wait time in getting a lock before acting on a region: hbase.busy.wait.multiplier.max (default 2) hbase.rowlock.wait.duration (same as the default RPC timeout time) For reading, it waits at most "hbase.rowlock.wait.duration" in getting a lock. For writing, it waits at most "hbase.rowlock.wait.duration" * min ( #rows affected, " hbase.busy.wait.multiplier.max"). However, it waits at most the server side call purge timeout time.

      Description

      We have a big data use case where we turn off WAL and have a ton of reads and writes. We found that:

      1. flushing a memstore takes a while (GZIP compression)
      2. incoming writes cause the new memstore to grow in an unbounded fashion
      3. this triggers blocking memstore updates
      4. in turn, this causes all the RPC handler threads to block on writes to that memstore
      5. we are not able to read during this time as RPC handlers are blocked

      At a higher level, we should not hold up the RPC threads while blocking updates, and we should build in some sort of rate control.

        Attachments

        1. trunk-6423.patch
          40 kB
          Jimmy Xiang
        2. trunk-6423_v2.patch
          40 kB
          Jimmy Xiang
        3. trunk-6423_v2.1.patch
          39 kB
          Jimmy Xiang
        4. trunk-6423_v3.2.patch
          39 kB
          Jimmy Xiang
        5. trunk-6423_v3.3.patch
          40 kB
          Jimmy Xiang
        6. 0.94-6423.patch
          43 kB
          Jimmy Xiang
        7. trunk-6423_v3.4.patch
          41 kB
          Jimmy Xiang
        8. 0.94-6423_v4.patch
          44 kB
          Jimmy Xiang
        9. trunk-6423_v4.patch
          42 kB
          Jimmy Xiang
        10. 6423.addendum
          0.6 kB
          Ted Yu

          Issue Links

            Activity

              People

              • Assignee:
                jxiang Jimmy Xiang
                Reporter:
                karthik.ranga Karthik Ranganathan
              • Votes:
                0 Vote for this issue
                Watchers:
                16 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: