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

Hudson commented on ZOOKEEPER-2140:
-----------------------------------

SUCCESS: Integrated in ZooKeeper-trunk #2741 (See 
[https://builds.apache.org/job/ZooKeeper-trunk/2741/])
ZOOKEEPER-2140: NettyServerCnxn and NIOServerCnxn code should be improved
(Arshad Mohammad via rgs) (rgs: 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1688041)
* /zookeeper/trunk/CHANGES.txt
* /zookeeper/trunk/src/java/main/org/apache/zookeeper/server/NIOServerCnxn.java
* 
/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/NettyServerCnxn.java
* /zookeeper/trunk/src/java/main/org/apache/zookeeper/server/ServerCnxn.java
* /zookeeper/trunk/src/java/main/org/apache/zookeeper/server/command
* 
/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/command/AbstractFourLetterCommand.java
* 
/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/command/CnxnStatResetCommand.java
* 
/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/command/CommandExecutor.java
* 
/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/command/ConfCommand.java
* 
/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/command/ConsCommand.java
* 
/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/command/DumpCommand.java
* 
/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/command/EnvCommand.java
* 
/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/command/FourLetterCommands.java
* 
/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/command/IsroCommand.java
* 
/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/command/MonitorCommand.java
* 
/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/command/RuokCommand.java
* 
/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/command/SetTraceMaskCommand.java
* 
/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/command/StatCommand.java
* 
/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/command/StatResetCommand.java
* 
/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/command/TraceMaskCommand.java
* 
/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/command/WatchCommand.java
* 
/zookeeper/trunk/src/java/test/org/apache/zookeeper/test/FourLetterWordsTest.java


> NettyServerCnxn and NIOServerCnxn code should be improved
> ---------------------------------------------------------
>
>                 Key: ZOOKEEPER-2140
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2140
>             Project: ZooKeeper
>          Issue Type: Improvement
>            Reporter: Arshad Mohammad
>             Fix For: 3.6.0
>
>         Attachments: ZOOKEEPER-2140-1.patch, ZOOKEEPER-2140-2.patch, 
> ZOOKEEPER-2140-3.patch, ZOOKEEPER-2140-4.patch
>
>
> Classes org.apache.zookeeper.server.NIOServerCnxn and 
> org.apache.zookeeper.server.NettyServerCnxn have following need and scope for 
> improvement
> 1) Duplicate code.
>       These two classes have around 250 line duplicate code. All the command 
> code is duplicated
> 2) Many improvement/bugFix done in one class but not done in other class. 
> These changes should be synced
> For example
> In NettyServerCnxn
> {code}
>                // clone should be faster than iteration
>                 // ie give up the cnxns lock faster
>                 AbstractSet<ServerCnxn> cnxns;
>                 synchronized (factory.cnxns) {
>                     cnxns = new HashSet<ServerCnxn>(factory.cnxns);
>                 }
>                 for (ServerCnxn c : cnxns) {
>                     c.dumpConnectionInfo(pw, false);
>                     pw.println();
>                 }
> {code}
> In NIOServerCnxn
> {code}
>                for (ServerCnxn c : factory.cnxns) {
>                     c.dumpConnectionInfo(pw, false);
>                     pw.println();
>                 }
> {code}
> 3) NettyServerCnxn and  NIOServerCnxn classes are bulky unnecessarily. 
> Command classes have altogether different functionality, the command classes 
> should go in different class files.
> If this done it will be easy to add new command with minimal change to 
> existing classes.



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

Reply via email to