Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 0.23.0, 2.0.0-alpha, 3.0.0
    • Fix Version/s: 3.0.0, 2.3.0
    • Component/s: ipc
    • Labels:
      None
    • Hadoop Flags:
      Reviewed
    • Target Version/s:

      Description

      Performance for SASL server creation is atrocious. Sasl.createSaslServer does not cache the provider resolution for the factories. Factory resolution and server instantiation has 3 major contention points. During bursts of connections, one reader accepting a connection stalls other readers accepting connections, in turn stalling all existing connections handled by those readers.

      I benched 5 threads at 187 instances/s - total, not per thread. With this and another change, I've boosted it to 33K instances/s.

        Issue Links

          Activity

          Hide
          Daryn Sharp added a comment -

          Add a factory which caches the mechanism to standard sasl factory lookup.

          Show
          Daryn Sharp added a comment - Add a factory which caches the mechanism to standard sasl factory lookup.
          Hide
          Hadoop QA added a comment -

          +1 overall. Here are the results of testing the latest attachment
          http://issues.apache.org/jira/secure/attachment/12619149/HADOOP-10172.patch
          against trunk revision .

          +1 @author. The patch does not contain any @author tags.

          +1 tests included. The patch appears to include 1 new or modified test files.

          +1 javac. The applied patch does not increase the total number of javac compiler warnings.

          +1 javadoc. The javadoc tool did not generate any warning messages.

          +1 eclipse:eclipse. The patch built with eclipse:eclipse.

          +1 findbugs. The patch does not introduce any new Findbugs (version 1.3.9) warnings.

          +1 release audit. The applied patch does not increase the total number of release audit warnings.

          +1 core tests. The patch passed unit tests in hadoop-common-project/hadoop-common.

          +1 contrib tests. The patch passed contrib unit tests.

          Test results: https://builds.apache.org/job/PreCommit-HADOOP-Build/3365//testReport/
          Console output: https://builds.apache.org/job/PreCommit-HADOOP-Build/3365//console

          This message is automatically generated.

          Show
          Hadoop QA added a comment - +1 overall . Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12619149/HADOOP-10172.patch against trunk revision . +1 @author . The patch does not contain any @author tags. +1 tests included . The patch appears to include 1 new or modified test files. +1 javac . The applied patch does not increase the total number of javac compiler warnings. +1 javadoc . The javadoc tool did not generate any warning messages. +1 eclipse:eclipse . The patch built with eclipse:eclipse. +1 findbugs . The patch does not introduce any new Findbugs (version 1.3.9) warnings. +1 release audit . The applied patch does not increase the total number of release audit warnings. +1 core tests . The patch passed unit tests in hadoop-common-project/hadoop-common. +1 contrib tests . The patch passed contrib unit tests. Test results: https://builds.apache.org/job/PreCommit-HADOOP-Build/3365//testReport/ Console output: https://builds.apache.org/job/PreCommit-HADOOP-Build/3365//console This message is automatically generated.
          Hide
          Kihwal Lee added a comment -

          +1 The patch looks good to me.

          Show
          Kihwal Lee added a comment - +1 The patch looks good to me.
          Hide
          Daryn Sharp added a comment -

          I've committed to trunk & branch-2.

          Show
          Daryn Sharp added a comment - I've committed to trunk & branch-2.
          Hide
          Hudson added a comment -

          SUCCESS: Integrated in Hadoop-trunk-Commit #4920 (See https://builds.apache.org/job/Hadoop-trunk-Commit/4920/)
          HADOOP-10172. Cache SASL server factories (daryn) (daryn: http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1552389)

          • /hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt
          • /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/SaslRpcServer.java
          • /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestSaslRPC.java
          Show
          Hudson added a comment - SUCCESS: Integrated in Hadoop-trunk-Commit #4920 (See https://builds.apache.org/job/Hadoop-trunk-Commit/4920/ ) HADOOP-10172 . Cache SASL server factories (daryn) (daryn: http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1552389 ) /hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/SaslRpcServer.java /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestSaslRPC.java
          Hide
          Hudson added a comment -

          SUCCESS: Integrated in Hadoop-Hdfs-trunk #1618 (See https://builds.apache.org/job/Hadoop-Hdfs-trunk/1618/)
          HADOOP-10172. Cache SASL server factories (daryn) (daryn: http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1552389)

          • /hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt
          • /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/SaslRpcServer.java
          • /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestSaslRPC.java
          Show
          Hudson added a comment - SUCCESS: Integrated in Hadoop-Hdfs-trunk #1618 (See https://builds.apache.org/job/Hadoop-Hdfs-trunk/1618/ ) HADOOP-10172 . Cache SASL server factories (daryn) (daryn: http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1552389 ) /hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/SaslRpcServer.java /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestSaslRPC.java
          Hide
          Hudson added a comment -

          FAILURE: Integrated in Hadoop-Mapreduce-trunk #1644 (See https://builds.apache.org/job/Hadoop-Mapreduce-trunk/1644/)
          HADOOP-10172. Cache SASL server factories (daryn) (daryn: http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1552389)

          • /hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt
          • /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/SaslRpcServer.java
          • /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestSaslRPC.java
          Show
          Hudson added a comment - FAILURE: Integrated in Hadoop-Mapreduce-trunk #1644 (See https://builds.apache.org/job/Hadoop-Mapreduce-trunk/1644/ ) HADOOP-10172 . Cache SASL server factories (daryn) (daryn: http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1552389 ) /hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/SaslRpcServer.java /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestSaslRPC.java
          Hide
          Hudson added a comment -

          FAILURE: Integrated in Hadoop-Yarn-trunk #427 (See https://builds.apache.org/job/Hadoop-Yarn-trunk/427/)
          HADOOP-10172. Cache SASL server factories (daryn) (daryn: http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1552389)

          • /hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt
          • /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/SaslRpcServer.java
          • /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestSaslRPC.java
          Show
          Hudson added a comment - FAILURE: Integrated in Hadoop-Yarn-trunk #427 (See https://builds.apache.org/job/Hadoop-Yarn-trunk/427/ ) HADOOP-10172 . Cache SASL server factories (daryn) (daryn: http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1552389 ) /hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/SaslRpcServer.java /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ipc/TestSaslRPC.java

            People

            • Assignee:
              Daryn Sharp
              Reporter:
              Daryn Sharp
            • Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development