[
https://issues.apache.org/jira/browse/DERBY-3092?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Knut Anders Hatlen updated DERBY-3092:
--------------------------------------
Attachment: derby-3092-1a-map.diff
A good first step would be to change the declaration of TransactionTable.trans
from Hashtable to Map, which is the common interface implemented by both
Hashtable and ConcurrentHashMap. Such a change should be harmless, and it will
make it easier to get TransactionTable to support different underlying Map
implementations (which will be needed in order to work on platforms that don't
support java.util.concurrent).
The attached patch (derby-3092-1a-map.diff) makes the proposed change. Since
the Map interface does not have an elements() method, all calls to that method
are replaced with the equivalent iterator() method. Also, a couple of unused
variables that I came across are removed by the patch.
TransactionTable.trans is still a Hashtable. The patch only changes which
interface we use to access the Hashtable.
I'm running regression tests now.
> Use java.util.concurrent in TransactionTable to improve scalability
> -------------------------------------------------------------------
>
> Key: DERBY-3092
> URL: https://issues.apache.org/jira/browse/DERBY-3092
> Project: Derby
> Issue Type: Improvement
> Components: Store
> Affects Versions: 10.3.1.4
> Reporter: Dyre Tjeldvoll
> Assignee: Knut Anders Hatlen
> Attachments: derby-3092-1a-map.diff, xact-concept.diff,
> xact-concept.png
>
>
> Running scalability tests with the client and buffer manager from DERBY-2911
> shows that access to the TransactionTable.trans (a Hashtable) and
> XactFactory.tranId (a shared long) are the next major sources of contention.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.