[ 
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


Reply via email to