Uploaded image for project: 'Hadoop Common'
  1. Hadoop Common
  2. HADOOP-9953 Improve RPC server throughput
  3. HADOOP-9956

RPC listener inefficiently assigns connections to readers

    XMLWordPrintableJSON

    Details

    • Type: Sub-task
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.0.0-alpha, 3.0.0-alpha1
    • Fix Version/s: 0.23.10, 2.3.0
    • Component/s: ipc
    • Labels:
      None
    • Target Version/s:
    • Hadoop Flags:
      Reviewed

      Description

      The socket listener and readers use a complex synchronization to update the reader's NIO Selector. Updating active selectors is not thread-safe so precautions are required.

      However, the current locking choreography results in a serialized distribution of new connections to the parallel socket readers. A slower/busier reader can stall the listener and throttle performance.

      The problem manifests as unexpectedly low cpu utilization by the listener and readers (~20-30%) under heavy load. The call queue is shallow when it should be overflowing.

        Attachments

        1. HADOOP-9956.patch
          5 kB
          Daryn Sharp
        2. HADOOP-9956.patch
          13 kB
          Daryn Sharp
        3. HADOOP-9956.branch-23.patch
          13 kB
          Daryn Sharp

          Issue Links

            Activity

              People

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

                Dates

                • Created:
                  Updated:
                  Resolved: