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

RegionServer should abort when WAL close encounters an error with unflushed edits

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Blocker
    • Resolution: Fixed
    • 0.90.5, 0.92.0, 0.94.0
    • 0.90.5
    • None
    • None
    • Reviewed

    Description

      The ability to ride over WAL close errors on log rolling added in HBASE-4222 could lead to missing HLog entries if:

      • A table has DEFERRED_LOG_FLUSH=true
      • There are unflushed WALEdit entries for that table in the current SequenceFile writer buffer

      Since the writes were already acknowledged to the client, just ignoring the close error to allow for another log roll doesn't seem like the right thing to do here.

      We could easily flag this state and only ride over the close error if there aren't unflushed entries. This would bring the above condition back to the previous behavior of aborting the region server. However, aborting the region server in this state is still guaranteeing data loss. Is there anything we can do better in this case?

      Attachments

        1. HBASE-4282_0.90_2.patch
          11 kB
          Gary Helmling
        2. HBASE-4282_0.90_final.patch
          10 kB
          Gary Helmling
        3. HBASE-4282_0.92_final.patch
          10 kB
          Gary Helmling
        4. HBASE-4282_trunk_2.patch
          11 kB
          Gary Helmling
        5. HBASE-4282_trunk_3.patch
          13 kB
          Gary Helmling
        6. HBASE-4282_trunk_final.patch
          11 kB
          Gary Helmling
        7. HBASE-4282_trunk_prelim.patch
          4 kB
          Gary Helmling

        Activity

          People

            ghelmling Gary Helmling
            ghelmling Gary Helmling
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: