Uploaded image for project: 'Hadoop Common'
  1. Hadoop Common
  2. HADOOP-2909

Improve IPC idle connection management

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.16.0
    • 0.18.0
    • ipc
    • None
    • Incompatible change, Reviewed
    • Hide
      Removed property ipc.client.maxidletime from the default configuration. The allowed idle time is twice ipc.client.connection.maxidletime.
      Show
      Removed property ipc.client.maxidletime from the default configuration. The allowed idle time is twice ipc.client.connection.maxidletime.

    Description

      IPC server determines if a connection is idle or not by checking if the connection does not have any IO activity for a predefined max idle time. An idle connection will be closed even if the connection still has outstanding requests or replies. This causes RPC failures when a server becomes slow or if a request takes a long time to be served. In jira, I'd like to propose the following changes to IPC idle management:
      1. Add data structures to the IPC server that keep track of outstanding requests.
      2. IPC server does not close a connection that has outstanding requests/replies even when it has no IO activities for a while.
      3. The default client-side max idle time should be in several minutes not 1 second.
      4. The server-side max idle time should be greater than the client-side max idle time, for example, twice of the client-side max idle time. So server mainly deals with clients that are crashed without closing
      its connections.

      Attachments

        1. idleConn.patch
          3 kB
          Hairong Kuang

        Issue Links

          Activity

            People

              hairong Hairong Kuang
              hairong Hairong Kuang
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: