Uploaded image for project: 'Hadoop HDFS'
  1. Hadoop HDFS
  2. HDFS-15942

Increase Quota initialization threads

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 3.3.1, 3.4.0
    • 3.3.1, 3.4.0, 3.2.3
    • namenode
    • None
    • Reviewed
    • The default quota initialization thread count during the NameNode startup process (dfs.namenode.quota.init-threads) is increased from 4 to 12.

    Description

      On large namespaces, the quota initialization at started can take a long time with the default 4 threads. Also on NN failover, often the quota needs to be calculated before the failover can completed, delaying the failover.

      I performed some benchmarks some time back on a large image (316M inodes 35GB on disk), the quota load takes:

      quota - 4  threads 39 seconds
      quota - 8  threads 23 seconds
      quota - 12 threads 20 seconds
      quota - 16 threads 15 seconds
      

      As the quota is calculated when the NN is starting up (and hence doing no other work) or at failover time before the new standby becomes active, I think the quota should use as many threads as possible.

      I proposed we change the default to 8 or 12 on at least trunk and branch-3.3 so we have a better default going forward.

      Has anyone got any other thoughts?

      Attachments

        1. HDFS-15942.001.patch
          2 kB
          Stephen O'Donnell

        Activity

          People

            sodonnell Stephen O'Donnell
            sodonnell Stephen O'Donnell
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: