jackrabbit-oak-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chetan Mehrotra (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (OAK-1666) FileDataStore inUse map causes contention in concurrent env
Date Wed, 02 Apr 2014 12:00:27 GMT

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

Chetan Mehrotra commented on OAK-1666:
--------------------------------------

bq. I find it very strange that this should ever be a problem for real world usage of the
data store.

This issue was not observed with JR2. One possible reason on why it is coming now is that
with Oak lucene index are also stored as content and hence any lucene query involves loading
the binary index content from BlobStore -> FileDataStore. Hence the FDS is being used more
frequently and concurrently if multiple lucene queries get fired

For doing proper fix I have created JCR-3764. Once that is fixed we can specify that option
in Oak and disable its use.

However for load for tomorrow I am going for #2 (use a no op map) as a short term workaround.
(yes its bad but its for short term only :()

> FileDataStore inUse map causes contention in concurrent env
> -----------------------------------------------------------
>
>                 Key: OAK-1666
>                 URL: https://issues.apache.org/jira/browse/OAK-1666
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: core
>            Reporter: Chetan Mehrotra
>            Assignee: Chetan Mehrotra
>            Priority: Minor
>             Fix For: 0.20
>
>
> JR2 FileDataStore#inUseMap [1] is currently a synchronized map and that at times causes
contention concurrent env. This map is used for supporting the Blob GC logic for JR2. 
> With Oak this map content is not used. As a fix we can either
> # Set inUseMap to a Guava Cache Map which has weak keys and value
> # Set inUseMap to a no op map where all put calls are ignored
> # Modify FDS to disable use of inUseMap or make {{usesIdentifier}} protected
> #3 would be a proper fix and #2 can be used as temp workaround untill FDS gets fixed
> [1] https://github.com/apache/jackrabbit/blob/trunk/jackrabbit-data/src/main/java/org/apache/jackrabbit/core/data/FileDataStore.java#L118



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message