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

We should expire the zk session for crashed servers rather than deleting ephemeral znodes

    Details

    • Type: Improvement
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 0.95.2
    • Fix Version/s: None
    • Component/s: master, regionserver, Zookeeper
    • Labels:
      None

      Description

      For faster recovery HBASE-5844 and HBASE-5926 added logic to delete the ephemeral znodes for the master and region server from the hbase-daemon.sh script. However, the master and RSs have other ephemeral nodes that are not cleaned (for example region splitting, table lock)

      Instead of deleting the main znode, we can just invalidate the zookeeper session by doing smt like HBaseTestingUtility.expireSession().

      For this we need to keep the zk.getSessionId() and zk.getSessionPasswd() around(write to a local file), keep the file updated for reconnections, and once we know that the zk session is gone in ZNodeClearer, we can just create a new session with the same credentials, and close that one, effectively causing zk to delete all ephemeral nodes for the session.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                enis Enis Soztutar
              • Votes:
                0 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated: