commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "zhu chen (JIRA)" <>
Subject [jira] [Created] (POOL-350) Add option for not executing "hasBorrowWaiters()" while returning objects
Date Tue, 11 Sep 2018 09:11:00 GMT
zhu chen created POOL-350:

             Summary: Add option for not executing "hasBorrowWaiters()" while returning objects
                 Key: POOL-350
             Project: Commons Pool
          Issue Type: Wish
    Affects Versions: 2.6.0
         Environment: h5. uname -a:

Linux VMS26239 3.10.0-229.11.1.el7.x86_64 #1 SMP Thu Aug 6 01:06:18 UTC 2015 x86_64 x86_64
x86_64 GNU/Linux


*Java version:*

java version "1.8.0_60"

Java(TM) SE Runtime Environment (build 1.8.0_60-b27)

Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)


            Reporter: zhu chen

h2. Phenomena:

I'm recently leveraging commons-pool as my Redis connection pool in my project, however, the
pain is that when my system is dealing with over thousands of Redises,  CPU load become
such high. By checking JVM through JFR(FlightRecorder), it turned out the hot method was "{color:#FF0000}hasBorrowWaiters(){color}",
which is invoked by "{color:#FF0000}returnObject(){color}" each time.

That means the system will go through over *thousands*(the number will grow as well as my
system) of keys after *each* object's *return*, what's worse, the program is running concurrently,
which, obviously cause a huge CPU load.

h2. Expect:

I was wondering if we could add a config for optionally run this "hasBorrowWaiters()" each
time when we return an object.


This message was sent by Atlassian JIRA

View raw message