[
https://issues.apache.org/jira/browse/DERBY-2911?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12523478
]
Knut Anders Hatlen commented on DERBY-2911:
-------------------------------------------
Thanks for your comments, Dan and Bryan.
I was thinking about using Derby's module loader, which would basically do what
Bryan says. With JDK 1.4 or J2ME, the old one is used, and with JDK 1.5+ the
new one. It is possible to override the default by specifying
-Dderby.module.cacheManager=org.apache.derby... on the command line, but only
when using sane builds, I think. Except for the obvious case where there is a
bug in the new implementation, I don't think users would want to override it.
The one thing I can think of, is if the old implementation performs better for
a certain load/configuration.
> Implement a buffer manager using java.util.concurrent classes
> -------------------------------------------------------------
>
> Key: DERBY-2911
> URL: https://issues.apache.org/jira/browse/DERBY-2911
> Project: Derby
> Issue Type: Improvement
> Components: Performance, Services
> Affects Versions: 10.4.0.0
> Reporter: Knut Anders Hatlen
> Assignee: Knut Anders Hatlen
> Priority: Minor
>
> There are indications that the buffer manager is a bottleneck for some types
> of multi-user load. For instance, Anders Morken wrote this in a comment on
> DERBY-1704: "With a separate table and index for each thread (to remove latch
> contention and lock waits from the equation) we (...) found that
> org.apache.derby.impl.services.cache.Clock.find()/release() caused about 5
> times more contention than the synchronization in LockSet.lockObject() and
> LockSet.unlock(). That might be an indicator of where to apply the next push".
> It would be interesting to see the scalability and performance of a buffer
> manager which exploits the concurrency utilities added in Java SE 5.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.