James E. King, III created THRIFT-3084:
------------------------------------------

             Summary: C++ add concurrent client limit to threaded servers
                 Key: THRIFT-3084
                 URL: https://issues.apache.org/jira/browse/THRIFT-3084
             Project: Thrift
          Issue Type: Improvement
          Components: C++ - Library
    Affects Versions: 0.9.2, 0.9.1, 0.9, 0.8
            Reporter: James E. King, III


The TThreadedServer and TThreadPoolServer do not impose limits on the number of 
simultaneous connections, which is not useful in production as bad clients can 
drive a server to consume too many file descriptors or have too many threads.

1. Add a barrier to TServerTransport that will be checked before accept().

2. In the onClientConnected override (see THRIFT-3083) if the server reaches 
the limit of the number of accepted clients, enable the barrier.

3. In the onClientDisconnected override if the count of connected clients falls 
below the maximum concurrent limit, clear the barrier.  This will allow the 
limit to be changed dynamically at runtime (lowered) with drain off clients 
until more can be accepted.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to