[
https://issues.apache.org/jira/browse/JCR-204?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Julian Reschke resolved JCR-204.
--------------------------------
Resolution: Won't Fix
> Improve recoverability
> ----------------------
>
> Key: JCR-204
> URL: https://issues.apache.org/jira/browse/JCR-204
> Project: Jackrabbit Content Repository
> Issue Type: Improvement
> Components: indexing, jackrabbit-core, observation, transactions
> Environment: svn revision: 265028
> Reporter: Marcel Reutegger
> Priority: Minor
>
> 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 was sent by Atlassian Jira
(v8.20.10#820010)