Uploaded image for project: 'Hadoop HDFS'
  1. Hadoop HDFS
  2. HDFS-7396 Revisit synchronization in Namenode
  3. HDFS-7518

Heartbeat processing doesn't have to take FSN readLock

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • namenode
    • None

    Description

      NameNode takes global read lock when it process heartbeat RPCs from DataNodes. This increases lock contention and could impact NN overall throughput. Given Heartbeat processing needs to access data specific to the DataNode that invokes the RPC; it could just synchronize on the specific DataNode and datanodeMap.

      It looks like each DatanodeDescriptor already keeps its own recover blocks, replication blocks and invalidate blocks. There are several places that needed to be changed to remove FSN lock.

      As mentioned in other jiras, we need to some mechanism to reason about the correctness of the solution.

      Thoughts?

      Attachments

        Activity

          People

            Unassigned Unassigned
            mingma Ming Ma
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated: