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

NNThroughputBenchmark threads get stuck on UGI.getCurrentUser()

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • None
    • None

    Description

      In NameNode#getRemoteUser(), it first attempts to fetch from the RPC user (not a synchronized operation), and if there is no RPC call, it will call UserGroupInformation#getCurrentUser() (which is synchronized). This makes it efficient for RPC operations (the bulk) so that there is not too much contention.

      In NNThroughputBenchmark, however, there is no RPC call since we bypass that later, so with a high thread count many of the threads are getting stuck. At one point I attached a profiler and found that quite a few threads had been waiting for #getCurrentUser() for 2 minutes ( ! ). When taking this away I found some improvement in the throughput numbers I was seeing. To more closely emulate a real NN we should improve this issue.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              xkrogen Erik Krogen
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated: