zookeeper-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From lvfangmin <...@git.apache.org>
Subject [GitHub] zookeeper issue #611: ZOOKEEPER-3131
Date Thu, 13 Sep 2018 15:59:39 GMT
Github user lvfangmin commented on the issue:

    https://github.com/apache/zookeeper/pull/611
  
    @hanm based on @wangchaod's description in the JIRA, #612 should fix the exact issue.
    
    @anmolnar as I commented in the JIRA, not removing the empty map is optimized from performance
perspective, like not need to remove/add the entry for the same connection again after the
watch triggered and client reset the watch, which will reduce the GC overhead, also it reduces
the lock contention. 
    
    Since the maximum number of map entries in watch2Paths won't larger than the total connections
number on that server, leave an empty map entry there won't cost too much memory overhead.

    
    Without the fix in #612, the map will grow infinitely as the ZK runs and client reconnect
going on, which will cause the OOM problem.
    
    This is actually a critical bug for NettyServerCnxn implementation, wondering why we didn't
saw other people report this. 
    
    Internally, we're using NIO, but we're planning to move onto Netty to get the TLS support.
So recently, I'm working on improving the Netty implementation, adding features missing compared
to NIO, for example, the maximum cnxns per IP limit support, the ideal cnxn expirer, the session
map to improve the performance, etc, I'll send out the diffs, please help review.


---

Mime
View raw message