Uploaded image for project: 'Hadoop HDFS'
  1. Hadoop HDFS
  2. HDFS-2362 More Improvements on NameNode Scalability
  3. HDFS-2495

Increase granularity of write operations in ReplicationMonitor thus reducing contention for write lock

    Details

    • Type: Sub-task
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 0.23.0
    • Fix Version/s: 2.0.0-alpha, 0.23.7
    • Component/s: namenode
    • Labels:
      None
    • Target Version/s:
    • Hadoop Flags:
      Reviewed

      Description

      For processing blocks in ReplicationMonitor (BlockManager.computeReplicationWork), we first obtain a list of blocks to be replicated by calling chooseUnderReplicatedBlocks, and then for each block which was found, we call computeReplicationWorkForBlock. The latter processes a block in three stages, acquiring the writelock twice per call:

      1. obtaining block related info (livenodes, srcnode, etc.) under lock
      2. choosing target for replication
      3. scheduling replication (under lock)

      We would like to change this behaviour and decrease contention for the write lock, by batching blocks and executing 1,2,3, for sets of blocks, rather than for each one separately. This would decrease the number of writeLock to 2, from 2*numberofblocks.

      Also, the info level logging can be pushed outside the writelock.

        Attachments

        1. replicationMon.patch-1
          18 kB
          Tomasz Nykiel
        2. replicationMon.patch
          17 kB
          Tomasz Nykiel

          Activity

            People

            • Assignee:
              tnykiel Tomasz Nykiel
              Reporter:
              tnykiel Tomasz Nykiel
            • Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: