Arshad Mohammad created ZOOKEEPER-2140:
------------------------------------------

             Summary: 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


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) These classes are bulky unnecessarily. Command classes have altogether 
different functionality, these should go in different classes.
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