Hrm, pass the pool a Comparator and let it keep the internal idle
object list sorted. But really any valid idle object should be just as
good as any other valid idle object. I don't think you'd gain anything
in the real world.

Ah, in the world of load balancing, advanced load balancers use a monitor on the resource to determine the actual availability of a resource. If a resource for some reason is very busy, the corresponding pool entry is degraded.

If an external monitor is too costly, one could also consider the more dubious approach of monitoring the time from borrowing to return. Again, assuming that statistically each resource is used for each task, all resources should have an average equal borrow-to-return time; this approach assumes (I know, I know) that differences in that time are caused by performance issues on the resource. So basically you register the average usage time and every N seconds (the average needs time to become statistically sound) you use that average to set a priority. Of course slow resources will not be used much, so their average might not change anymore due to usage (since they aren't used), so some kind of time based degradation of the priority is required to put them back into active usage.



Currently pool has a rather flat throughput curve as you add more
CPUs. At work when we pay for quad cpu servers we want them to have an
almost 4x performance over a single CPU server. Any code that gives
less than a 2x performance increase for 4x the hardware is
disappointing.
I understand. Crucial components need to be optimal.

Tom

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to