You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-dev@jackrabbit.apache.org by "Michael Dürig (Commented JIRA)" <ji...@apache.org> on 2012/03/14 14:34:38 UTC

[jira] [Commented] (OAK-14) Identify and document changes in behaviour wrt. Jackrabbit 2

    [ https://issues.apache.org/jira/browse/OAK-14?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13229181#comment-13229181 ] 

Michael Dürig commented on OAK-14:
----------------------------------

Here is a list of things we need to keep an eye on. The list is compiled from the experience I made within the experimental implementations in the sandbox [1, 2]. We should make them into separate issues as we encounter them in our implementation effort.

* SNS: Implement through name mangling. Raise a JSR issue if necessary.

* Query and eventual consistency: would it be tolerable to have the query index not up to date yet? (i.e. after a possibly large save.) This could either result in incomplete query results, an exception or the query to be deferred until the index is up to date. Maybe we could even let the client chose through 'query hints'.

* refresh/save/revert wrt. MVCC: Both refresh and save will bring the session up to the current head revision. There is thus no revert semantics in the API. Since we are closer to the SVN use case now where conflicts are resolved on the client it might be necessary to introduce a Item.revert, Session.revert. See http://java.net/jira/browse/JSR_333-47

* MVCC wrt. Item.refresh, Item.save: Are troublesome since then revisions need to be tracked per item instead of per session. Later commits would have to be made atomic across various revisions instead of only a single one. 

* MVCC wrt. observation: Semantics change somewhat since a session might receive events "from the future". That is, events from a newer revision than the current session's. Trying to get a node from an NODE_ADDED event might thus result in an ItemNotFoundException unless the session is refreshed. In contrast nodes referred to by a NODE_REMOVED events will still be visible to the session. An approach to mitigate this is to have read only sessions which are always on the newest revision (i.e. see all saved changes).                           

* Node type consistency currently not fully achievable due to write skew effects exposed by snapshot isolation [3]

[1] http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-mk/
[2] http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-microkernel/
[3] http://wiki.apache.org/jackrabbit/Transactional%20model%20of%20the%20Microkernel%20based%20Jackrabbit%20prototype
                
> Identify and document changes in behaviour wrt. Jackrabbit 2
> ------------------------------------------------------------
>
>                 Key: OAK-14
>                 URL: https://issues.apache.org/jira/browse/OAK-14
>             Project: Jackrabbit Oak
>          Issue Type: Task
>            Reporter: Michael Dürig
>
> Some implementation specific behaviour will likely change. We should document the cases, provide test cases and migration paths where applicable. 
> This issue serves as a container. Please create separate issues for each identifies change in behaviour.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira