[
https://issues.apache.org/jira/browse/POOL-350?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17695074#comment-17695074
]
Gary D. Gregory commented on POOL-350:
--------------------------------------
My concern with more configuration parameters is adding complexity to an
already complex library leading to more gotchas, catch-22s, and
harder-to-diagnose support tickets. That said, if we have confidence in this
specific solution, let's implement it. I would hope [~NickNYU] can either
prototype this and confirm that this is really all that is needed for this use
case since once this is enabled (or disabled in this case), it could lead to
unforeseen side effects that require more configuration toggles or more code
changes.
A more extensive architectural avenue would be to make pooling more
configurable not through toggles but with lambdas. I don't know what this would
exactly look like in this specific case but I can imagine configuring this
example with a lambda that is either a no-op or one that does not call the API
in question.
> Add option for not executing "hasBorrowWaiters()" while returning objects
> -------------------------------------------------------------------------
>
> Key: POOL-350
> URL: https://issues.apache.org/jira/browse/POOL-350
> Project: Commons Pool
> Issue Type: New Feature
> 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
> Priority: Critical
> Labels: easyfix
>
> 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
(v8.20.10#820010)