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