[
https://issues.apache.org/jira/browse/OAK-3055?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Michael Dürig resolved OAK-3055.
--------------------------------
Resolution: Fixed
Fix Version/s: (was: 1.3.5)
1.3.3
Replaced the segment cache with a LIRS implementation at
http://svn.apache.org/r1691219. In addition http://svn.apache.org/r1691220
exposes the {{CacheStatsMBean}} for this new cache.
I can confirm that this in conjunction with OAK-3007 considerably reduces the
observer lock contention.
> Improve segment cache in SegmentTracker
> ---------------------------------------
>
> Key: OAK-3055
> URL: https://issues.apache.org/jira/browse/OAK-3055
> Project: Jackrabbit Oak
> Issue Type: Improvement
> Components: segmentmk
> Reporter: Michael Dürig
> Assignee: Michael Dürig
> Labels: resilience, scalability
> Fix For: 1.3.3
>
> Attachments: OAK-3055.patch
>
>
> The hand crafted segment cache in {{SegmentTracker}} is prone to lock
> contentions in concurrent access scenarios. As {{SegmentNodeStore#merge}}
> might also end up acquiring this lock while holding the commit semaphore the
> situation can easily lead to many threads being blocked on the commit
> semaphore. The {{SegmentTracker}} cache doesn't differentiate between read
> and write access, which means that reader threads can block writer threads.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)