[ 
https://issues.apache.org/jira/browse/JCR-314?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Marcel Reutegger updated JCR-314:
---------------------------------

    Attachment: ConfigurableISMLocking.patch

Esteban, thank you for your patch. I've modified it slightly and used a 
separate configuration element with a class attribute. I didn't include your 
changes to the FineGrainedISMLocking because I think they may lead to 
inconsistencies. As described easier in this issue, once the version storage in 
sufficiently populated, the login will not block anymore when a version 
operation is in progress.

I have also added a new version of the DTD (1.4) and updated all repository.xml 
files I found in the sources. Once the changes are committed I will add the DTD 
to the website.

Please note that this change is backward compatible. The ISMLocking element is 
optional and defaults to DefaultISMLocking (the currently hard coded 
implementation).

> Fine grained locking in SharedItemStateManager
> ----------------------------------------------
>
>                 Key: JCR-314
>                 URL: https://issues.apache.org/jira/browse/JCR-314
>             Project: Jackrabbit
>          Issue Type: Improvement
>          Components: jackrabbit-core
>    Affects Versions: 0.9, 1.0, 1.0.1, 1.1, 1.1.1, 1.2.1, 1.2.2, 1.2.3
>            Reporter: Marcel Reutegger
>         Attachments: ConfigurableISMLocking.patch, 
> fine-grained-locking-1.4.patch, FineGrainedISMLocking-v2.patch, 
> FineGrainedISMLocking.patch, ISMLocking.patch, writes-per-second.jpg
>
>
> 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.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to