[ 
https://issues.apache.org/jira/browse/JCR-1012?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12677809#action_12677809
 ] 

Michael Dürig commented on JCR-1012:
------------------------------------

I think we should not add yet another method to the RepositoryService interface 
for this. RepositoryService is already huge and hard to implement for non jcr 
persistent layers. In general there will be probably not much gain from such a 
method since most implementations wouldn't be able to provide useful 
information. 

I was thinking of a different approach however: instead of invalidating each 
item in the respective sub-tree (which might be an expensive operation) why not 
just mark the root of the sub-tree as invalidated. Such a mark would include 
some sort of a time stamp. Also we would time stamp individual items with the 
time they where resolved. When an item is access, it would check if its 
resolution time stamp is older than the latest invalidation time stamp. If so, 
it checks whether the invalidation applies to it at all (by traversing up the 
path) and if so it would re-resolve itself. In any case its resolution time 
stamp will be updated. 

This approach would make invalidation much cheaper without putting much 
additional load to simple item access. Moreover most of the additional load 
(traversing up the path) only applies when an invalidation is pending.
 

> JCR2SPI: Optimization for Item.refresh and Session.refresh
> ----------------------------------------------------------
>
>                 Key: JCR-1012
>                 URL: https://issues.apache.org/jira/browse/JCR-1012
>             Project: Jackrabbit Content Repository
>          Issue Type: Improvement
>          Components: jackrabbit-jcr2spi
>            Reporter: angela
>
> (suggested by david)
> Item.refresh and Session.refresh could be optimized if it was possible to 
> find out, if there are external modifications affecting the tree to be 
> refreshed and if the information would allow to specifically invalidate 
> affected ItemStates.
> Currently all ItemStates present in the tree below the given Item are 
> invalidated (and updated upon the next access).

-- 
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