[
https://issues.apache.org/jira/browse/OAK-4112?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Marcel Reutegger updated OAK-4112:
----------------------------------
Attachment: OAK-4112-1.patch
Cleaned up the patch slightly.
- Removed changes in StripedNodeDocumentLocks
- Removed unused imports in NodeDocumentCache
The method NodeDocumentCache.registerTracker() is overloaded and the variant
with a {{Set<String>}} parameter is not used. Did you plan to use the method
later? Otherwise we should remove it.
There should be tests for CacheChangesTracker.
Can we use the same approach for RDBDocumentStore as well?
I'm still reviewing your changes in more detail and provide more feedback...
> Replace the query exclusive lock with a cache tracker
> -----------------------------------------------------
>
> Key: OAK-4112
> URL: https://issues.apache.org/jira/browse/OAK-4112
> Project: Jackrabbit Oak
> Issue Type: Improvement
> Components: documentmk, mongomk
> Reporter: Tomek Rękawek
> Labels: performance
> Fix For: 1.6
>
> Attachments: OAK-4112-1.patch, OAK-4112.patch
>
>
> The {{MongoDocumentStore#query()}} method uses an expensive
> {{TreeLock#acquireExclusive}} method, introduced in OAK-1897 to avoid caching
> outdated documents.
> It should be possible to avoid acquiring the exclusive lock, by tracking the
> cache changes that occurs during the Mongo find() operation. When the find()
> is done, we can update the cache with the received documents if they haven't
> been invalidated in the meantime.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)