[ 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)