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

Chetan Mehrotra commented on OAK-4112:
--------------------------------------

Just for record - Current BloomFilter usage involves synchornized access. If it 
turns out that it had quite adverse impact on concurrency we might need to 
revisit this. Couple of related links around this
* http://stackoverflow.com/questions/11720111/thread-safe-bloomfilter
* https://github.com/google/guava/issues/1090 - Guava issue for having a 
concurrent BloomFilter
* A possible concurrent BloomFilter implementation 
https://github.com/ifesdjeen/blomstre adapted from Cassandra implementation

> 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
>            Assignee: Tomek Rękawek
>              Labels: performance
>             Fix For: 1.6, 1.5.2
>
>         Attachments: OAK-4112-1.patch, OAK-4112-2.patch, OAK-4112-3.patch, 
> OAK-4112-4.patch, OAK-4112-putifnewer.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)

Reply via email to