[ http://issues.apache.org/jira/browse/JCR-204?page=all ]

Jukka Zitting updated JCR-204:
------------------------------

    Fix Version: 1.1
                     (was: 1.0)

> Improve recoverability
> ----------------------
>
>          Key: JCR-204
>          URL: http://issues.apache.org/jira/browse/JCR-204
>      Project: Jackrabbit
>         Type: Improvement
>   Components: observation, query, core
>  Environment: svn revision: 265028
>     Reporter: Marcel Reutegger
>     Assignee: Marcel Reutegger
>     Priority: Minor
>      Fix For: 1.1

>
> Transactions in Jackrabbit are committed in SharedItemStateManager.store(). 
> While the call to PersistenceManager.store() is by its definition atomic, 
> updates on the index through synchronous notification by the 
> ObservationManager are not. Consequently, it may happen that the index is not 
> up-to-date with the workspace data in case of a crash.
> Consider the following cases:
> 1)
> - changes in a ChangeLog are successfully stored by the persistence manager
> - the observation manager notifies the query handler about the change
> - the query handler starts to update the index
> - system crashes
> -> the index is missing some changes
> 2)
> - changes in a ChangeLog are successfully stored by the persistence manager
> - system crashes
> -> the index is missing all changes
> To prevent situations like 1) the index must be fully transactional 
> implementing ACID properties.
> In case an index update cannot be completed, the index will appear as if the 
> update never happened. Which results in a situation described in example 2)
> To prevent situations like 2) the observation manager musts keep track of 
> transactions and make sure that committed transactions (the ones that 
> successfully stored the changes in the persistence manager) successfully 
> notify all listeners. If the system should crash while listeners are notified 
> the events must be re-delivered on restart.
> comments and suggestions on alternatives are welcome!

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to