zookeeper-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From hanm <...@git.apache.org>
Subject [GitHub] zookeeper pull request #673: [ZOOKEEPER-3177] Refactor request throttle logi...
Date Fri, 02 Nov 2018 06:00:48 GMT
Github user hanm commented on a diff in the pull request:

    https://github.com/apache/zookeeper/pull/673#discussion_r230276535
  
    --- Diff: zookeeper-server/src/main/java/org/apache/zookeeper/server/ServerCnxn.java ---
    @@ -68,8 +68,39 @@
     
         private volatile boolean stale = false;
     
    +    AtomicLong outstandingCount = new AtomicLong();
    +
    +    /** The ZooKeeperServer for this connection. May be null if the server
    +     * is not currently serving requests (for example if the server is not
    +     * an active quorum participant.
    +     */
    +    final ZooKeeperServer zkServer;
    +
    +    public ServerCnxn(final ZooKeeperServer zkServer) {
    +        this.zkServer = zkServer;
    +    }
    +
         abstract int getSessionTimeout();
     
    +    public void incrOutstandingAndCheckThrottle(RequestHeader h) {
    +        if (h.getXid() <= 0) {
    +            return;
    +        }
    +        if (zkServer.shouldThrottle(outstandingCount.incrementAndGet())) {
    +            disableRecv(false);
    +        }
    +    }
    +
    +    // will be called from zkServer.processPacket
    +    public void decrOutstandingAndCheckThrottle(ReplyHeader h) {
    --- End diff --
    
    This is a good suggestion. This PR focus on consolidating and refactoring existing logic,
and we usually prefer doing one thing at a time (so the patch is easier to review and land).
Feel free to fire a PR for improvements after this patch is merged!


---

Mime
View raw message