Darrel Schneider created GEODE-6794:
---------------------------------------

             Summary: Returning a client connection to the pool always calls 
notifyAll
                 Key: GEODE-6794
                 URL: https://issues.apache.org/jira/browse/GEODE-6794
             Project: Geode
          Issue Type: Improvement
          Components: client/server
            Reporter: Darrel Schneider


The PooledConnection passivate method is called every time a client op 
completes and it is returning its connection to the pool.
passivate almost always calls notifyAll. But no other thread will be waiting 
for this notify unless the  boolean "waitingToSwitch" is true. This notifyAll 
calls shows up as a hotspot in profiling. But when I got rid of it it didn't 
make any difference in client operation throughput.
Here is the change that can be made to get rid of the notifyAll calls:
{noformat}
--- 
a/geode-core/src/main/java/org/apache/geode/cache/client/internal/pooling/PooledConnection.java
+++ 
b/geode-core/src/main/java/org/apache/geode/cache/client/internal/pooling/PooledConnection.java
@@ -157,7 +157,9 @@ public class PooledConnection implements Connection {
         throw new InternalGemFireException("Connection not active");
       }
       this.active = false;
-      notifyAll();
+      if (this.waitingToSwitch) {
+        notifyAll();
+      }
       if (accessed) {
         this.lastAccessed = now; // do this while synchronized
       }
{noformat}




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to