[ 
https://issues.apache.org/jira/browse/ZOOKEEPER-2736?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15939600#comment-15939600
 ] 

ASF GitHub Bot commented on ZOOKEEPER-2736:
-------------------------------------------

Github user eribeiro commented on a diff in the pull request:

    https://github.com/apache/zookeeper/pull/205#discussion_r107822018
  
    --- Diff: 
src/java/main/org/apache/zookeeper/server/NIOServerCnxnFactory.java ---
    @@ -607,9 +618,28 @@ public static ByteBuffer getDirectBuffer() {
         // sessionMap is used by closeSession()
         private final ConcurrentHashMap<Long, NIOServerCnxn> sessionMap =
             new ConcurrentHashMap<Long, NIOServerCnxn>();
    -    // ipMap is used to limit connections per IP
    -    private final ConcurrentHashMap<InetAddress, Set<NIOServerCnxn>> ipMap 
=
    -        new ConcurrentHashMap<InetAddress, Set<NIOServerCnxn>>( );
    +    // ipMap is used to limit connections and connection rate per IP
    +    private final ConcurrentHashMap<InetAddress, IpCnxns> ipMap
    +        = new ConcurrentHashMap<InetAddress, IpCnxns>();
    +
    +    // for each IP, we keep a RateLimiter to limit connection rate,
    +    // as well as a set of connections to limit total number of connections
    +    private static class IpCnxns {
    +        private IpCnxns(RateLimiter rateLimiter) {
    +            this.rateLimiter = rateLimiter;
    +        }
    +
    +        // in general we will see 1 connection from each
    +        // host, setting the initial cap to 2 allows us
    +        // to minimize mem usage in the common case
    +        // of 1 entry -- we need to set the initial cap
    +        // to 2 to avoid rehash when the first entry is added
    +        // Construct a ConcurrentHashSet using a ConcurrentHashMap
    +        private Set<NIOServerCnxn> cnxnSet = Collections
    --- End diff --
    
    We put the fields before the constructor here, so these fields should be 
moved up.


> Add a connection rate limiter
> -----------------------------
>
>                 Key: ZOOKEEPER-2736
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2736
>             Project: ZooKeeper
>          Issue Type: Improvement
>          Components: server
>    Affects Versions: 3.4.9, 3.5.2
>            Reporter: Vincent Poon
>         Attachments: ZOOKEEPER-2736.v1.patch
>
>
> Currently the maxClientCnxns property only limits the aggregate number of 
> connections from a client, but not the rate at which connections can be 
> created.
> This patch adds a configurable connection rate limiter which limits the rate 
> as well.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to