Issue Details (XML | Word | Printable)

Key: JCR-314
Type: Improvement Improvement
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Unassigned
Reporter: Marcel Reutegger
Votes: 4
Watchers: 5
Operations

If you were logged in you would be able to see more operations.
Jackrabbit Content Repository

Fine grained locking in SharedItemStateManager

Created: 03/Feb/06 07:59 PM   Updated: 15/Jan/08 11:26 PM
Return to search
Component/s: jackrabbit-core
Affects Version/s: 0.9, 1.0, 1.0.1, 1.1, 1.1.1, 1.2.1, 1.2.2, 1.2.3
Fix Version/s: 1.4

Time Tracking:
Not Specified

File Attachments:
  Size
Text File Licensed for inclusion in ASF works ConfigurableISMLocking.patch 2007-12-17 11:21 AM Marcel Reutegger 33 kB
Text File Licensed for inclusion in ASF works fine-grained-locking-1.4.patch 2007-12-11 02:28 PM Esteban Franqueiro 18 kB
Text File Licensed for inclusion in ASF works FineGrainedISMLocking-v2.patch 2007-05-23 11:02 AM Marcel Reutegger 13 kB
Text File Licensed for inclusion in ASF works FineGrainedISMLocking.patch 2007-05-03 12:59 PM Marcel Reutegger 7 kB
Text File Licensed for inclusion in ASF works ISMLocking.patch 2007-05-03 12:59 PM Marcel Reutegger 18 kB
Image Attachments:

1. writes-per-second.jpg
(62 kB)
Issue Links:
Dependants
 

Resolution Date: 18/Dec/07 10:42 AM


 Description  « Hide
The SharedItemStateManager (SISM) currently uses a simple read-write lock to ensure data consistency. Store operations to the PersistenceManager (PM) are effectively serialized.

We should think about more sophisticated locking to allow concurrent writes on the PM.

One possible approach:

If a transaction is currently storing data in a PM a second transaction may check if the set of changes does not intersect with the first transaction. If that is the case it can safely store its data in the PM.

This fine grained locking must also be respected when reading from the SISM. A read request for an item that is currently being stored must be blocked until the store is finished.

 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Repository Revision Date User Message
ASF #540944 Wed May 23 13:12:26 UTC 2007 mreutegg JCR-314: Fine grained locking in SharedItemStateManager
Files Changed
ADD /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/DefaultISMLocking.java
ADD /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/FineGrainedISMLocking.java
ADD /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/ISMLocking.java
MODIFY /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java

Repository Revision Date User Message
ASF #605173 Tue Dec 18 10:41:53 UTC 2007 mreutegg JCR-314: Fine grained locking in SharedItemStateManager
Files Changed
MODIFY /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionItemStateManager.java
MODIFY /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/RepositoryConfigurationParser.java
MODIFY /jackrabbit/trunk/jackrabbit-core/src/main/config/repository.xml
MODIFY /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/version/VersionManagerImpl.java
MODIFY /jackrabbit/trunk/jackrabbit-core/src/test/repository/repository.xml
MODIFY /jackrabbit/trunk/jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/test-repository.xml
MODIFY /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/WorkspaceConfig.java
MODIFY /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/RepositoryImpl.java
MODIFY /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/VersioningConfig.java
MODIFY /jackrabbit/trunk/jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/repository.xml
ADD /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/ISMLockingConfig.java
ADD /jackrabbit/trunk/jackrabbit-core/src/main/resources/org/apache/jackrabbit/core/config/repository-1.4.dtd
MODIFY /jackrabbit/trunk/jackrabbit-core/src/test/resources/org/apache/jackrabbit/core/config/repository.xml
MODIFY /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/ConfigurationEntityResolver.java
MODIFY /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/state/SharedItemStateManager.java

Repository Revision Date User Message
ASF #605174 Tue Dec 18 10:43:38 UTC 2007 mreutegg JCR-314: Fine grained locking in SharedItemStateManager
Files Changed
ADD /jackrabbit/trunk/jackrabbit-site/src/site/resources/dtd/repository-1.4.dtd

Repository Revision Date User Message
ASF #605176 Tue Dec 18 10:44:04 UTC 2007 mreutegg JCR-314: Fine grained locking in SharedItemStateManager
Files Changed
ADD /jackrabbit/site/dtd/repository-1.4.dtd

Repository Revision Date User Message
ASF #605488 Wed Dec 19 09:43:34 UTC 2007 mreutegg JCR-314: Fine grained locking in SharedItemStateManager
- test cases
Files Changed
ADD /jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/state/AbstractISMLockingTest.java
MODIFY /jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/state/TestAll.java
ADD /jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/state/DefaultISMLockingTest.java
ADD /jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/state/FineGrainedISMLockingTest.java