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

Throttle IPC Client/Server during bursts of requests or server slowdown



    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.16.0
    • 0.18.0
    • ipc
    • None
    • Reviewed


      I propose the following to avoid an IPC server being swarmed by too many requests and connections
      1. Limit call queue length or limit the amount of memory used in the call queue. This can be done by including the size of a request in the header and storing unmarshaled requests in the call queue.
      2. If the call queue is full or queue buffer is full, stop reading requests from sockets. So requests stay at the server's system buffer or at the client side and thus eventually throttle the client.
      3. Limit the total number of connections. Do not accept new connections if the connection limit is exceeded. (Note: this solution is unfair to new connections.)
      4. If receive out of memory exception, close the current connection.


        1. callQueue.patch
          0.8 kB
          Hairong Kuang
        2. callQueue1.patch
          3 kB
          Hairong Kuang
        3. callQueue2.patch
          3 kB
          Hairong Kuang
        4. callQueue3.patch
          4 kB
          Hairong Kuang
        5. TestBacklog.java
          0.9 kB
          Doug Cutting
        6. TestBacklog.java
          0.7 kB
          Doug Cutting
        7. TestBacklogWithPool.java
          2 kB
          Raghu Angadi
        8. throttleClient.patch
          17 kB
          Hairong Kuang
        9. throttleClient1.patch
          10 kB
          Hairong Kuang
        10. throttleClient2.patch
          10 kB
          Hairong Kuang

        Issue Links



              hairong Hairong Kuang
              hairong Hairong Kuang
              0 Vote for this issue
              3 Start watching this issue