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-2842) optimize the finish() of Send/RecvWorker in QuorumCnxManager and remove testInitiateConnection() and formates some codes
Date Mon, 07 Aug 2017 07:56:00 GMT

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

ASF GitHub Bot commented on ZOOKEEPER-2842:
-------------------------------------------

Github user maoling commented on a diff in the pull request:

    https://github.com/apache/zookeeper/pull/308#discussion_r131591962
  
    --- Diff: src/java/main/org/apache/zookeeper/server/quorum/QuorumCnxManager.java ---
    @@ -880,19 +876,20 @@ public void run() {
              * 
              * @return boolean  Value of variable running
              */
    -        synchronized boolean finish() {
    -            if(!running){
    -                /*
    -                 * Avoids running finish() twice. 
    -                 */
    -                return running;
    -            }
    -            running = false;            
    -
    -            this.interrupt();
    -            threadCnt.decrementAndGet();
    -            return running;
    -        }
    +		boolean finish() {
    --- End diff --
    
    Yes.we should keep a blance between optimization and readability.the most importance thing
for this optimization is whether this function has faced a performace problem and this optimization
is overdesign. Haha.self-criticism.However ,I find the shadow of this programming paradigm
in zk code base [Line501~Line507](https://github.com/apache/zookeeper/blob/master/src/java/main/org/apache/zookeeper/ClientCnxn.java
) 



> optimize the finish() of Send/RecvWorker in QuorumCnxManager and remove testInitiateConnection()
and formates some codes
> ------------------------------------------------------------------------------------------------------------------------
>
>                 Key: ZOOKEEPER-2842
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2842
>             Project: ZooKeeper
>          Issue Type: Improvement
>          Components: quorum
>            Reporter: maoling
>            Priority: Trivial
>
> 1.the finish() of Send/RecvWorker in QuorumCnxManager changes to double-checked lock
style [https://en.wikipedia.org/wiki/Double-checked_locking]
> ,a trivial code changes implement a smaller granularity lock to have a better perfermance
in too fierce multithread situation.
> 2.testInitiateConnection() is redundant test function which is only used in TestCase,so
I refactor it.
> 3.some codes don't abide to Java Programme Specification ,so I lift a finger to format
them



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message