[
https://issues.apache.org/jira/browse/GEODE-6794?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dick Cavender closed GEODE-6794.
--------------------------------
> 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
> Assignee: Mario Kevo
> Priority: Major
> Labels: performance
> Fix For: 1.10.0
>
> Time Spent: 0.5h
> Remaining Estimate: 0h
>
> 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
(v8.3.4#803005)