You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Knut Anders Hatlen (JIRA)" <ji...@apache.org> on 2010/01/19 13:18:54 UTC

[jira] Updated: (DERBY-3092) Use java.util.concurrent in TransactionTable to improve scalability

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