[ 
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.

Reply via email to