zookeeper-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ZOOKEEPER-2736) Add a connection rate limiter
Date Fri, 24 Mar 2017 02:43:43 GMT

    [ 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)

Mime
View raw message