[ 
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-1b-map.diff

The 1a patch made StressMultiTest fail consistently in sane builds because of 
ConcurrentModificationExceptions. The reason for this was that some debug code 
called from getTransactionTable() iterated through the transaction table 
without synchronizing on the Hashtable while doing that. What changed with the 
patch, was that an Iterator was used instead of an Enumeration. Hashtable's 
Iterators are fail-fast and raise CME as soon as they detect concurrent 
modification, whereas Hashtable's Enumerations are not fail-fast (see comment 
about this in Hashtable's class-level javadoc).

Patch 1b moves the failing debug code into the synchronized block that starts 
right below it so that no concurrent modification of the Hashtable is possible 
while it's going through it. This code may have failed before too, but not as 
consistently as with the fail-fast Iterators, and probably with stack traces so 
similar to DERBY-3916 that they were believed to be the same issue.

suites.All ran cleanly with 1b. Running derbyall 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, derby-3092-1b-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