[
https://issues.apache.org/jira/browse/OAK-3002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14595812#comment-14595812
]
Stefan Egli commented on OAK-3002:
----------------------------------
At the moment the journal contains the changed paths in a tree format. From
that tree it is clear that the leaf nodes have changed, but for non-leafs it
cannot be determined if they have changed or not. Because that is not clear,
the invalidation logic needs to get the modCnt from mongo and then invalidates
depending on the modCnt. If it had a definite knowledge of which paths did
change, then it could just go ahead and invalidate the whole list of paths,
skipping the modCnt check. That would be the optimization that this is about.
Arguably, skipping the modCnt check could invalidate too many entries if for
some reason the document would be in the cache in the latest version already.
So it would be a trade off between being able to skip the modCnt check and
invalidating too many under some (special?) cases..
> Optimize docCache and docChildrenCache invalidation by filtering using journal
> ------------------------------------------------------------------------------
>
> Key: OAK-3002
> URL: https://issues.apache.org/jira/browse/OAK-3002
> Project: Jackrabbit Oak
> Issue Type: Sub-task
> Components: core, mongomk
> Reporter: Stefan Egli
> Assignee: Stefan Egli
> Labels: scalability
> Fix For: 1.2.3, 1.3.2
>
> Attachments: JournalLoadTest.java,
> OAK-3002-improved-doc-and-docChildren-cache-invaliation-and-junit.4.patch,
> OAK-3002-improved-doc-and-docChildren-cache-invaliation.3.patch,
> OAK-3002-improved-doc-cache-invaliation.2.patch
>
>
> This subtask is about spawning out a
> [comment|https://issues.apache.org/jira/browse/OAK-2829?focusedCommentId=14588114&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14588114]
> on OAK-2829 re optimizing docCache invalidation using the newly introduced
> external diff journal:
> {quote}
> Attached OAK-2829-improved-doc-cache-invaliation.patch which is a suggestion
> on how to avoid invalidating the entire document cache when doing a
> {{backgroundRead}} but instead making use of the new journal: ie only
> invalidate from the document cache what has actually changed.
> I'd like to get an opinion ([~mreutegg], [~chetanm]?) on this first, I have a
> load test pending locally which found invalidation of the document cache to
> be the slowest part thus wanted to optimize this first.
> Open still/next:
> * also invalidate only necessary parts from the docChildrenCache
> * junits for all of these
> {quote}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)