[ 
https://issues.apache.org/jira/browse/DERBY-6242?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Knut Anders Hatlen updated DERBY-6242:
--------------------------------------

    Attachment: derby-6242-01-a.diff

The attached patch makes XactFactory use a ConcurrentHashMap instead of a 
Hashtable and removes the ConcurrentXactFactory class.

The patch also removes an abstraction layer that was used to hide the 
differences between Hashtable and ConcurrentHashMap. That is, it removes the 
classes TransactionMapFactory and ConcurrentTransactionMapFactory, and instead 
creates and accesses the ConcurrentHashMap.

The TransactionTable class had a visitEntries() method that used to serve two 
purposes:

1) It abstracted away the differences between Hashtable and ConcurrentHashMap

2) It allowed other classes to iterate over the elements in the transaction 
table without exposing the internal representation of the table

It is still useful for (2), so the method is preserved and still used some 
places. It is no longer needed for (1), so the patch replaces all usages of it 
inside the TransactionTable class with loops that traversed the values in the 
ConcurrentHashMap directly. Lots of anonymous inner EntryVisitor classes could 
be removed this way, and it made it easier to read the code that iterated over 
the transaction table entries, I believe.

All the regression tests ran cleanly on Java 6 and Java 8 with the patch.
                
> Merge ConcurrentXactFactory into XactFactory
> --------------------------------------------
>
>                 Key: DERBY-6242
>                 URL: https://issues.apache.org/jira/browse/DERBY-6242
>             Project: Derby
>          Issue Type: Improvement
>          Components: Services
>    Affects Versions: 10.11.0.0
>            Reporter: Knut Anders Hatlen
>            Assignee: Knut Anders Hatlen
>            Priority: Minor
>         Attachments: derby-6242-01-a.diff
>
>
> ConcurrentXactFactory extends XactFactory and replaces XactFactory's 
> Hashtable with a ConcurrentHashMap for better scalability.
> Now that ConcurrentHashMap is available on all platforms supported on trunk, 
> we could make XactFactory use a ConcurrentHashMap and remove 
> ConcurrentXactFactory.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to