Issue Details (XML | Word | Printable)

Key: DERBY-1704
Type: Improvement Improvement
Status: Closed Closed
Resolution: Fixed
Priority: Minor Minor
Assignee: Knut Anders Hatlen
Reporter: Knut Anders Hatlen
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Derby

Allow more concurrency in the lock manager

Created: 16/Aug/06 12:29 PM   Updated: 29/Jun/09 02:31 PM
Return to search
Component/s: Services
Affects Version/s: 10.2.1.6
Fix Version/s: 10.3.1.4

Time Tracking:
Issue & Sub-Tasks
Issue Only
Not Specified

File Attachments:
  Size
File Licensed for inclusion in ASF works cleanup1.diff 2007-01-19 01:35 PM Knut Anders Hatlen 7 kB
File Licensed for inclusion in ASF works cleanup1.stat 2007-01-19 01:35 PM Knut Anders Hatlen 0.3 kB
File Licensed for inclusion in ASF works cleanup1.v2.diff 2007-01-22 02:02 PM Knut Anders Hatlen 8 kB
File Licensed for inclusion in ASF works cleanup2.diff 2007-01-24 08:53 AM Knut Anders Hatlen 2 kB
File Licensed for inclusion in ASF works cleanup3.diff 2007-02-13 08:03 AM Knut Anders Hatlen 6 kB
Text File Licensed for inclusion in ASF works cleanup3.stat 2007-02-13 08:03 AM Knut Anders Hatlen 0.2 kB
File Licensed for inclusion in ASF works cleanup4.diff 2007-03-12 08:32 AM Knut Anders Hatlen 0.6 kB
File Licensed for inclusion in ASF works cleanup5.diff 2007-03-13 01:38 PM Knut Anders Hatlen 5 kB
File Licensed for inclusion in ASF works cleanup5.stat 2007-03-13 01:38 PM Knut Anders Hatlen 0.2 kB
File Licensed for inclusion in ASF works cleanup6.diff 2007-03-13 03:29 PM Knut Anders Hatlen 2 kB
File Licensed for inclusion in ASF works split-hashtables.diff 2006-08-16 12:36 PM Knut Anders Hatlen 12 kB
File Licensed for inclusion in ASF works split-hashtables.stat 2006-08-16 12:36 PM Knut Anders Hatlen 0.3 kB
Image Attachments:

1. 1cpu.png
(3 kB)

2. 2cpu.png
(4 kB)

3. 8cpu.png
(3 kB)

Urgency: Normal
Bug behavior facts: Performance
Resolution Date: 25/May/07 06:58 AM

Sub-Tasks  All   Open   

 Description  « Hide
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.

 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Repository Revision Date User Message
ASF #498999 Tue Jan 23 12:08:23 UTC 2007 kahatlen DERBY-1704 (partial) Allow more concurrency in the lock manager

  * Made LockSet contain a HashMap instead of extending Hashtable.
  * Fixed some comments about MT/synchronization.
Files Changed
MODIFY /db/derby/code/trunk/java/engine/org/apache/derby/impl/services/locks/LockTableVTI.java
MODIFY /db/derby/code/trunk/java/engine/org/apache/derby/impl/services/locks/SinglePool.java
MODIFY /db/derby/code/trunk/java/engine/org/apache/derby/impl/services/locks/LockSet.java
MODIFY /db/derby/code/trunk/java/engine/org/apache/derby/impl/services/locks/Deadlock.java

Repository Revision Date User Message
ASF #499316 Wed Jan 24 08:50:00 UTC 2007 kahatlen DERBY-1704 (partial) Allow more concurrency in the lock manager

Removed some unused code.
Files Changed
MODIFY /db/derby/code/trunk/java/engine/org/apache/derby/impl/services/locks/SinglePool.java
MODIFY /db/derby/code/trunk/java/engine/org/apache/derby/impl/services/locks/LockSet.java
MODIFY /db/derby/code/trunk/java/engine/org/apache/derby/impl/services/locks/Deadlock.java

Repository Revision Date User Message
ASF #507428 Wed Feb 14 07:40:23 UTC 2007 kahatlen DERBY-1704 (partial) Allow more concurrency in the lock manager

Modified LockSpace so that it doesn't extend Hashtable.
Files Changed
MODIFY /db/derby/code/trunk/java/engine/org/apache/derby/impl/services/locks/LockSpace.java
MODIFY /db/derby/code/trunk/java/engine/org/apache/derby/impl/services/locks/SinglePool.java

Repository Revision Date User Message
ASF #517588 Tue Mar 13 08:33:40 UTC 2007 kahatlen DERBY-1704: Allow more concurrency in the lock manager

Simplified LockControl.popFrontWaiter().
Files Changed
MODIFY /db/derby/code/trunk/java/engine/org/apache/derby/impl/services/locks/LockControl.java

Repository Revision Date User Message
ASF #518052 Wed Mar 14 08:17:41 UTC 2007 kahatlen DERBY-1704 (cleanup)
  * Remove unused imports
  * Make classes package private
  * Remove check for condition that is always true
  * Simplify parameter lists
Files Changed
MODIFY /db/derby/code/trunk/java/engine/org/apache/derby/impl/services/locks/LockControl.java
MODIFY /db/derby/code/trunk/java/engine/org/apache/derby/impl/services/locks/Lock.java
MODIFY /db/derby/code/trunk/java/engine/org/apache/derby/impl/services/locks/ActiveLock.java

Repository Revision Date User Message
ASF #518073 Wed Mar 14 08:51:00 UTC 2007 kahatlen DERBY-1704 (cleanup) Remove unused Hashtable.
Files Changed
MODIFY /db/derby/code/trunk/java/engine/org/apache/derby/impl/services/locks/LockSet.java