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
Jukka Zitting made changes - 16/Feb/06 06:54 AM
Field Original Value New Value
Fix Version/s 1.1 [ 12310346 ]
Affects Version/s 0.9 [ 12310719 ]
Jukka Zitting made changes - 17/Sep/06 10:04 PM
Fix Version/s 1.1 [ 12310346 ]
Stefan Guggisberg made changes - 11/Mar/07 10:17 AM
Affects Version/s 1.2.1 [ 12312100 ]
Priority Minor [ 4 ] Major [ 3 ]
Affects Version/s 1.2.3 [ 12312329 ]
Affects Version/s 1.0.1 [ 12310345 ]
Affects Version/s 1.1 [ 12310346 ]
Affects Version/s 1.1.1 [ 12312099 ]
Affects Version/s 1.0 [ 12310154 ]
Affects Version/s 1.2.2 [ 12312228 ]
Marcel Reutegger made changes - 03/May/07 12:59 PM
Attachment ISMLocking.patch [ 12356709 ]
Attachment FineGrainedISMLocking.patch [ 12356710 ]
Marcel Reutegger made changes - 23/May/07 11:02 AM
Attachment FineGrainedISMLocking-v2.patch [ 12357974 ]
Marcel Reutegger made changes - 23/May/07 01:25 PM
Attachment writes-per-second.jpg [ 12357989 ]
Stefan Guggisberg made changes - 01/Jun/07 10:30 AM
Link This issue blocks JCR-935 [ JCR-935 ]
Esteban Franqueiro made changes - 11/Dec/07 02:28 PM
Attachment fine-grained-locking-1.4.patch [ 12371436 ]
Marcel Reutegger made changes - 17/Dec/07 11:21 AM
Attachment ConfigurableISMLocking.patch [ 12371788 ]
Marcel Reutegger made changes - 18/Dec/07 10:42 AM
Resolution Fixed [ 1 ]
Status Open [ 1 ] Resolved [ 5 ]
Fix Version/s 1.4 [ 12312447 ]
Jukka Zitting made changes - 15/Jan/08 11:26 PM
Status Resolved [ 5 ] Closed [ 6 ]
Jukka Zitting made changes - 07/Jul/09 01:04 PM
Workflow jira [ 12346603 ] no-reopen-closed, patch-avail [ 12469547 ]