[ https://issues.apache.org/jira/browse/DERBY-1704?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12472585 ]
Knut Anders Hatlen commented on DERBY-1704: ------------------------------------------- The results shown in the attached graphs are not valid for trunk after the commit of the DERBY-2107 patch. The single-record select load that was used is more latch-intensive than lock-intensive, and when the latches no longer use the lock manager, the effect of splitting the hash tables in the lock manager is small, even with multiple CPUs. There still is a positive effect for more lock-intensive loads though (for instance scans). Since there are two global synchronization points in the lock manager, I'll file subtasks so they can be discussed separately. > Allow more concurrency in the lock manager > ------------------------------------------ > > Key: DERBY-1704 > URL: https://issues.apache.org/jira/browse/DERBY-1704 > Project: Derby > Issue Type: Improvement > Components: Performance, Services > Affects Versions: 10.2.1.6 > Reporter: Knut Anders Hatlen > Assigned To: Knut Anders Hatlen > Priority: Minor > Attachments: 1cpu.png, 2cpu.png, 8cpu.png, cleanup1.diff, > cleanup1.stat, cleanup1.v2.diff, cleanup2.diff, cleanup3.diff, cleanup3.stat, > split-hashtables.diff, split-hashtables.stat > > > I have seen indications of severe monitor contention in SinglePool > (the current lock manager) when multiple threads access a Derby > database concurrently. When a thread wants to lock an object, it needs > to obtain the monitor for both SinglePool and LockSet (both of them > are global synchronization points). This leads to poor scalability. > We should investigate how to allow more concurrency in the lock > manager, and either extend SinglePool or implement a new manager. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.