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

Alex Parvulescu commented on OAK-1804:
--------------------------------------

another one, even if it has the same root cause, I'm pasting it here as it 
looks like a different combination of locks

{code}
"pool-8-thread-1" - Thread t@171
   java.lang.Thread.State: BLOCKED
        at 
org.apache.jackrabbit.oak.plugins.segment.file.FileStore.readSegment(FileStore.java:584)
        - waiting to lock <2c1d063c> (a 
org.apache.jackrabbit.oak.plugins.segment.file.FileStore) owned by "TarMK flush 
thread: /../repository/segmentstore" t@58
        at 
org.apache.jackrabbit.oak.plugins.segment.SegmentTracker.getSegment(SegmentTracker.java:106)
        at 
org.apache.jackrabbit.oak.plugins.segment.SegmentId.getSegment(SegmentId.java:97)
        - locked <5621c650> (a 
org.apache.jackrabbit.oak.plugins.segment.SegmentId)
        at 
org.apache.jackrabbit.oak.plugins.segment.Record.getSegment(Record.java:68)
        at 
org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.getChildNodeMap(SegmentNodeState.java:80)
        at 
org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:336)
        at 
org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:117)
        at 
org.apache.jackrabbit.oak.spi.state.ProxyNodeStore.getRoot(ProxyNodeStore.java:35)
        at 
org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate.isAlreadyRunning(AsyncIndexUpdate.java:273)
        at 
org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate.run(AsyncIndexUpdate.java:144)
        - locked <5bc6882c> (a 
org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate)
        at 
org.apache.sling.commons.scheduler.impl.QuartzJobExecutor.execute(QuartzJobExecutor.java:105)

"TarMK flush thread: /../repository/segmentstore" - Thread t@58
   java.lang.Thread.State: BLOCKED
        at 
org.apache.jackrabbit.oak.plugins.segment.SegmentId.getSegment(SegmentId.java:93)
        - waiting to lock <5621c650> (a 
org.apache.jackrabbit.oak.plugins.segment.SegmentId) owned by "pool-8-thread-1" 
t@171
        at 
org.apache.jackrabbit.oak.plugins.segment.Record.getSegment(Record.java:68)
        at 
org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:74)
        at 
org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState.getProperties(SegmentNodeState.java:142)
        at 
org.apache.jackrabbit.oak.plugins.segment.file.FileStore.compact(FileStore.java:343)
        at 
org.apache.jackrabbit.oak.plugins.segment.file.FileStore.compact(FileStore.java:371)
        at 
org.apache.jackrabbit.oak.plugins.segment.file.FileStore.flush(FileStore.java:411)
        - locked <2c1d063c> (a 
org.apache.jackrabbit.oak.plugins.segment.file.FileStore)
        - locked <19a94a0> (a java.util.concurrent.atomic.AtomicReference)
        at 
org.apache.jackrabbit.oak.plugins.segment.file.FileStore$1.run(FileStore.java:247)
        at java.lang.Thread.run(Thread.java:744)
{code}

> TarMK compaction
> ----------------
>
>                 Key: OAK-1804
>                 URL: https://issues.apache.org/jira/browse/OAK-1804
>             Project: Jackrabbit Oak
>          Issue Type: New Feature
>          Components: segmentmk
>            Reporter: Jukka Zitting
>            Assignee: Alex Parvulescu
>              Labels: production, tools
>             Fix For: 1.0.1, 1.1
>
>         Attachments: SegmentNodeStore.java.patch, compaction.patch
>
>
> The TarMK would benefit from periodic "compact" operations that would 
> traverse and recreate (parts of) the content tree in order to optimize the 
> storage layout. More specifically, such compaction would:
> * Optimize performance by increasing locality and reducing duplication, both 
> of which improve the effectiveness of caching.
> * Allow the garbage collector to release more unused disk space by removing 
> references to segments where only a subset of content is reachable.



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

Reply via email to