CacheSize 250 - Reading 100 items with 1 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1 --numberOfUsers 1 --cache 250 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 11962 All paths: 123545 Oak-Segment-Tar 1 1 1 2 5 17 1699 Oak-Segment-Tar 10 1 2 4 7 24 12006 Oak-Segment-Tar 20 2 5 7 11 78 12880 Oak-Segment-Tar 50 2 13 16 23 98 14931 Profiler: top 5 stack trace(s) of of 21147 ms of 3628 thread dumps: 6919/24654 (28%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3628/24654 (14%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 857/24654 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 704/24654 (2%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 447/24654 (1%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 28%: app//org.apache.jackrabbit.oak.segment.scheduler 17%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.commons 10%: app//org.apache.jackrabbit.oak.security.authorization.permission 7%: app//org.apache.jackrabbit.oak.cache . CacheSize 250 - Reading 100 items with 1 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1 --numberOfUsers 10 --cache 250 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6592 All paths: 123545 Oak-Segment-Tar 1 1 1 2 2 10 2801 Oak-Segment-Tar 10 1 2 3 5 23 13484 Oak-Segment-Tar 20 1 3 4 15 74 14292 Oak-Segment-Tar 50 2 14 17 21 88 14256 Profiler: top 5 stack trace(s) of of 21092 ms of 3976 thread dumps: 3976/31542 (12%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2579/31542 (8%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 890/31542 (2%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 864/31542 (2%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 837/31542 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 21%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.segment.file 13%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 9%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 250 - Reading 100 items with 1 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1 --numberOfUsers 100 --cache 250 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6655 All paths: 123545 Oak-Segment-Tar 1 1 1 2 2 6 2981 Oak-Segment-Tar 10 1 2 4 8 27 11496 Oak-Segment-Tar 20 1 3 4 16 75 13729 Oak-Segment-Tar 50 1 4 17 22 219 14113 Profiler: top 5 stack trace(s) of of 21132 ms of 4095 thread dumps: 4095/29291 (13%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2137/29291 (7%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1266/29291 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1159/29291 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 863/29291 (2%): at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getSubject(LoginContextProviderImpl.java:97) at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getLoginContext(LoginContextProviderImpl.java:79) at app//org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:162) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 23%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 10%: app//org.apache.jackrabbit.oak.cache 9%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 250 - Reading 100 items with 1 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1 --numberOfUsers 1000 --cache 250 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6344 All paths: 123545 Oak-Segment-Tar 1 1 2 2 3 9 2117 Oak-Segment-Tar 10 2 4 5 7 34 9511 Oak-Segment-Tar 20 2 4 8 18 95 10501 Oak-Segment-Tar 50 2 4 19 52 182 10487 Profiler: top 5 stack trace(s) of of 21074 ms of 4226 thread dumps: 4226/26756 (15%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1357/26756 (5%): at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getSubject(LoginContextProviderImpl.java:97) at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getLoginContext(LoginContextProviderImpl.java:79) at app//org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:162) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1287/26756 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionUtil.isAdminOrSystem(PermissionUtil.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:163) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1249/26756 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 859/26756 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionUtil.isAdminOrSystem(PermissionUtil.java:85) at app//org.apache.jackrabbit.oak.security.authorization.AuthorizationConfigurationImpl.getPermissionProvider(AuthorizationConfigurationImpl.java:204) at app//org.apache.jackrabbit.oak.security.authorization.composite.CompositeAuthorizationConfiguration.getPermissionProvider(CompositeAuthorizationConfiguration.java:175) at app//org.apache.jackrabbit.oak.core.MutableRoot$1.createValue(MutableRoot.java:130) at app//org.apache.jackrabbit.oak.core.MutableRoot$1.createValue(MutableRoot.java:127) at app//org.apache.jackrabbit.oak.commons.LazyValue.get(LazyValue.java:56) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 29%: app//org.apache.jackrabbit.oak.security.authorization.permission 24%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.commons 6%: app//org.apache.jackrabbit.oak.plugins.tree.impl 5%: app//org.apache.jackrabbit.oak.security.authentication . CacheSize 250 - Reading 100 items with 10 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10 --numberOfUsers 1 --cache 250 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6489 All paths: 123545 Oak-Segment-Tar 1 1 1 2 2 7 2866 Oak-Segment-Tar 10 1 2 3 6 23 13257 Oak-Segment-Tar 20 1 3 7 11 71 14339 Oak-Segment-Tar 50 1 13 16 19 175 15440 Profiler: top 5 stack trace(s) of of 21110 ms of 4123 thread dumps: 5506/30746 (17%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 4123/30746 (13%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1331/30746 (4%): at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1172/30746 (3%): at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 739/30746 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 31%: app//org.apache.jackrabbit.oak.segment 17%: app//org.apache.jackrabbit.oak.segment.scheduler 13%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 8%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 250 - Reading 100 items with 10 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10 --numberOfUsers 10 --cache 250 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6194 All paths: 123545 Oak-Segment-Tar 1 1 1 2 3 6 2493 Oak-Segment-Tar 10 1 2 3 5 21 13166 Oak-Segment-Tar 20 1 3 5 13 138 14128 Oak-Segment-Tar 50 1 4 17 20 183 14738 Profiler: top 5 stack trace(s) of of 21090 ms of 4022 thread dumps: 4022/32154 (12%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 3293/32154 (10%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1634/32154 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1449/32154 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 823/32154 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 23%: app//org.apache.jackrabbit.oak.segment 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 13%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.cache 10%: app//org.apache.jackrabbit.oak.segment.scheduler . CacheSize 250 - Reading 100 items with 10 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10 --numberOfUsers 100 --cache 250 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6792 All paths: 123545 Oak-Segment-Tar 1 1 2 2 3 11 2179 Oak-Segment-Tar 10 1 2 4 6 27 12514 Oak-Segment-Tar 20 1 3 5 16 94 13412 Oak-Segment-Tar 50 1 3 14 36 284 14672 Profiler: top 5 stack trace(s) of of 21174 ms of 3969 thread dumps: 3969/29734 (13%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1484/29734 (4%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1128/29734 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1114/29734 (3%): at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getSubject(LoginContextProviderImpl.java:97) at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getLoginContext(LoginContextProviderImpl.java:79) at app//org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:162) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 919/29734 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 24%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.security.authorization.permission 13%: app//org.apache.jackrabbit.oak.commons 9%: app//org.apache.jackrabbit.oak.plugins.tree.impl 8%: app//org.apache.jackrabbit.oak.cache . CacheSize 250 - Reading 100 items with 10 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10 --numberOfUsers 1000 --cache 250 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6747 All paths: 123545 Oak-Segment-Tar 1 1 2 2 3 10 2067 Oak-Segment-Tar 10 2 3 4 6 30 10835 Oak-Segment-Tar 20 2 4 8 20 56 9575 Oak-Segment-Tar 50 2 4 20 57 195 9802 Profiler: top 5 stack trace(s) of of 21089 ms of 4196 thread dumps: 4196/26547 (15%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1423/26547 (5%): at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1282/26547 (4%): at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getSubject(LoginContextProviderImpl.java:97) at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getLoginContext(LoginContextProviderImpl.java:79) at app//org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:162) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1084/26547 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionUtil.isAdminOrSystem(PermissionUtil.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:163) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 794/26547 (2%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 29%: app//org.apache.jackrabbit.oak.security.authorization.permission 27%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.commons 6%: app//org.apache.jackrabbit.oak.plugins.tree.impl 5%: app//org.apache.jackrabbit.oak.security.authentication . CacheSize 250 - Reading 100 items with 100 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 100 --numberOfUsers 1 --cache 250 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6076 All paths: 123545 Oak-Segment-Tar 1 1 2 2 3 7 2258 Oak-Segment-Tar 10 1 3 4 6 31 11776 Oak-Segment-Tar 20 2 3 7 15 67 11946 Oak-Segment-Tar 50 2 3 4 61 271 13780 Profiler: top 5 stack trace(s) of of 21184 ms of 3942 thread dumps: 3942/34027 (11%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1270/34027 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1156/34027 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 974/34027 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 855/34027 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 25%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 12%: app//org.apache.jackrabbit.oak.commons 10%: app//org.apache.jackrabbit.oak.plugins.tree.impl 9%: app//org.apache.jackrabbit.oak.cache . CacheSize 250 - Reading 100 items with 100 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 100 --numberOfUsers 10 --cache 250 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6233 All paths: 123545 Oak-Segment-Tar 1 1 1 2 3 10 2374 Oak-Segment-Tar 10 1 3 4 8 31 10582 Oak-Segment-Tar 20 1 4 8 13 74 11920 Oak-Segment-Tar 50 2 14 18 22 124 13894 Profiler: top 5 stack trace(s) of of 21121 ms of 3988 thread dumps: 5984/28572 (20%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3988/28572 (13%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 505/28572 (1%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 483/28572 (1%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 481/28572 (1%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 20%: app//org.apache.jackrabbit.oak.segment.scheduler 16%: app//org.apache.jackrabbit.oak.commons 13%: app//org.apache.jackrabbit.oak.segment.file 12%: app//org.apache.jackrabbit.oak.segment 11%: app//org.apache.jackrabbit.oak.security.authorization.permission . CacheSize 250 - Reading 100 items with 100 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 100 --numberOfUsers 100 --cache 250 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6245 All paths: 123545 Oak-Segment-Tar 1 1 2 3 4 17 1543 Oak-Segment-Tar 10 2 3 4 7 25 10315 Oak-Segment-Tar 20 1 3 6 18 130 11081 Oak-Segment-Tar 50 2 3 5 66 245 12565 Profiler: top 5 stack trace(s) of of 21087 ms of 3816 thread dumps: 3816/29791 (12%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1190/29791 (3%): at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getSubject(LoginContextProviderImpl.java:97) at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getLoginContext(LoginContextProviderImpl.java:79) at app//org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:162) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 861/29791 (2%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 773/29791 (2%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 643/29791 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 37%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.security.authorization.permission 13%: app//org.apache.jackrabbit.oak.commons 8%: app//org.apache.jackrabbit.oak.plugins.tree.impl 6%: app//org.apache.jackrabbit.oak.core . CacheSize 250 - Reading 100 items with 100 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 100 --numberOfUsers 1000 --cache 250 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6507 All paths: 123545 Oak-Segment-Tar 1 2 2 3 4 15 1703 Oak-Segment-Tar 10 2 4 6 10 36 7533 Oak-Segment-Tar 20 2 5 9 23 91 8326 Oak-Segment-Tar 50 2 5 19 63 212 8901 Profiler: top 5 stack trace(s) of of 21094 ms of 4027 thread dumps: 4027/25581 (15%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1448/25581 (5%): at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getSubject(LoginContextProviderImpl.java:97) at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getLoginContext(LoginContextProviderImpl.java:79) at app//org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:162) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 970/25581 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionUtil.isAdminOrSystem(PermissionUtil.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:163) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 946/25581 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 833/25581 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionUtil.isAdminOrSystem(PermissionUtil.java:85) at app//org.apache.jackrabbit.oak.security.authorization.AuthorizationConfigurationImpl.getPermissionProvider(AuthorizationConfigurationImpl.java:204) at app//org.apache.jackrabbit.oak.security.authorization.composite.CompositeAuthorizationConfiguration.getPermissionProvider(CompositeAuthorizationConfiguration.java:175) at app//org.apache.jackrabbit.oak.core.MutableRoot$1.createValue(MutableRoot.java:130) at app//org.apache.jackrabbit.oak.core.MutableRoot$1.createValue(MutableRoot.java:127) at app//org.apache.jackrabbit.oak.commons.LazyValue.get(LazyValue.java:56) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 30%: app//org.apache.jackrabbit.oak.security.authorization.permission 16%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.segment.file 5%: app//org.apache.jackrabbit.oak.security.authentication . CacheSize 250 - Reading 100 items with 1000 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1000 --numberOfUsers 1 --cache 250 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6601 All paths: 123545 Oak-Segment-Tar 1 1 2 2 3 6 2142 Oak-Segment-Tar 10 1 3 4 7 24 10438 Oak-Segment-Tar 20 2 3 7 15 105 11678 Oak-Segment-Tar 50 2 4 5 62 348 11943 Profiler: top 5 stack trace(s) of of 21091 ms of 3928 thread dumps: 3928/34556 (11%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1094/34556 (3%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 760/34556 (2%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 756/34556 (2%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 697/34556 (2%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 22%: app//org.apache.jackrabbit.oak.segment 19%: app//org.apache.jackrabbit.oak.segment.file 15%: app//org.apache.jackrabbit.oak.security.authorization.permission 14%: app//org.apache.jackrabbit.oak.commons 6%: app//org.apache.jackrabbit.oak.cache . CacheSize 250 - Reading 100 items with 1000 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1000 --numberOfUsers 10 --cache 250 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6140 All paths: 123545 Oak-Segment-Tar 1 2 2 3 4 8 1783 Oak-Segment-Tar 10 2 4 6 8 27 8521 Oak-Segment-Tar 20 3 5 10 24 105 7907 Oak-Segment-Tar 50 3 5 9 86 295 9078 Profiler: top 5 stack trace(s) of of 21138 ms of 3934 thread dumps: 3934/31779 (12%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1075/31779 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 974/31779 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 927/31779 (2%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 924/31779 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 33%: app//org.apache.jackrabbit.oak.segment 28%: app//org.apache.jackrabbit.oak.security.authorization.permission 13%: app//org.apache.jackrabbit.oak.commons 7%: app//org.apache.jackrabbit.oak.cache 3%: app//org.apache.jackrabbit.oak.core . CacheSize 250 - Reading 100 items with 1000 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1000 --numberOfUsers 100 --cache 250 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6814 All paths: 123545 Oak-Segment-Tar 1 7 8 10 13 19 487 Oak-Segment-Tar 10 9 14 17 24 37 2766 Oak-Segment-Tar 20 8 17 31 59 156 2856 Oak-Segment-Tar 50 12 18 68 174 347 3056 Profiler: top 5 stack trace(s) of of 21206 ms of 3778 thread dumps: 3778/28504 (13%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1445/28504 (5%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:149) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1368/28504 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:58) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1354/28504 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:58) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1290/28504 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:149) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 46%: app//org.apache.jackrabbit.oak.security.authorization.permission 19%: app//org.apache.jackrabbit.oak.segment 13%: app//org.apache.jackrabbit.oak.commons 9%: app//org.apache.jackrabbit.oak.cache 2%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 250 - Reading 100 items with 1000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1000 --numberOfUsers 1000 --cache 250 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6503 All paths: 123545 Oak-Segment-Tar 1 51 54 60 76 105 81 Oak-Segment-Tar 10 114 144 193 230 270 265 Oak-Segment-Tar 20 158 245 326 400 453 314 Oak-Segment-Tar 50 123 361 573 794 1053 461 Profiler: top 5 stack trace(s) of of 21756 ms of 3739 thread dumps: 5148/35063 (14%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 4991/35063 (14%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3739/35063 (10%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 3608/35063 (10%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:58) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3552/35063 (10%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:58) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 81%: app//org.apache.jackrabbit.oak.security.authorization.permission 10%: app//org.apache.jackrabbit.oak.commons 3%: app//org.apache.jackrabbit.oak.segment . CacheSize 250 - Reading 100 items with 10000 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10000 --numberOfUsers 1 --cache 250 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6318 All paths: 123545 Oak-Segment-Tar 1 1 2 2 3 11 1952 Oak-Segment-Tar 10 2 4 5 8 25 9114 Oak-Segment-Tar 20 2 4 8 18 77 10237 Oak-Segment-Tar 50 2 4 6 72 242 10985 Profiler: top 5 stack trace(s) of of 21145 ms of 3836 thread dumps: 3836/28221 (13%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1521/28221 (5%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 935/28221 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 888/28221 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 681/28221 (2%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionUtil.checkACLPath(PermissionUtil.java:71) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:83) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:68) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 31%: app//org.apache.jackrabbit.oak.segment 17%: app//org.apache.jackrabbit.oak.cache 14%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 5%: app//org.apache.jackrabbit.oak.segment.scheduler . CacheSize 250 - Reading 100 items with 10000 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10000 --numberOfUsers 10 --cache 250 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6068 All paths: 123545 Oak-Segment-Tar 1 2 3 4 4 11 1371 Oak-Segment-Tar 10 3 6 8 12 32 5985 Oak-Segment-Tar 20 3 5 9 28 104 7439 Oak-Segment-Tar 50 3 6 21 75 425 7947 Profiler: top 5 stack trace(s) of of 21137 ms of 3715 thread dumps: 3715/26095 (14%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 743/26095 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 610/26095 (2%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionUtil.checkACLPath(PermissionUtil.java:71) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:83) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:68) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 581/26095 (2%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 577/26095 (2%): at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:232) at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.hasChildNode(SegmentNodeState.java:441) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.hasChildNode(ReadOnlyBuilder.java:94) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasChild(AbstractTree.java:293) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:81) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:68) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 35%: app//org.apache.jackrabbit.oak.segment 21%: app//org.apache.jackrabbit.oak.security.authorization.permission 14%: app//org.apache.jackrabbit.oak.commons 10%: app//org.apache.jackrabbit.oak.cache 3%: app//org.apache.jackrabbit.oak.core . CacheSize 250 - Reading 100 items with 10000 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10000 --numberOfUsers 100 --cache 250 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6160 All paths: 123545 Oak-Segment-Tar 1 10 13 15 18 26 325 Oak-Segment-Tar 10 22 28 32 41 66 1511 Oak-Segment-Tar 20 24 38 66 103 204 1448 Oak-Segment-Tar 50 24 33 126 247 487 1819 Profiler: top 5 stack trace(s) of of 21322 ms of 3560 thread dumps: 3560/30745 (11%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2567/30745 (8%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2165/30745 (7%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1521/30745 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.rememberNotAccessControlled(PrincipalPermissionEntries.java:97) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:73) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 971/30745 (3%): at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:232) at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.hasChildNode(SegmentNodeState.java:441) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.hasChildNode(ReadOnlyBuilder.java:94) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasChild(AbstractTree.java:293) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:81) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:68) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 50%: app//org.apache.jackrabbit.oak.security.authorization.permission 16%: app//org.apache.jackrabbit.oak.segment 12%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.segment.file 3%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 250 - Reading 100 items with 10000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10000 --numberOfUsers 1000 --cache 250 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6485 All paths: 123545 Oak-Segment-Tar 1 80 92 103 138 141 47 Oak-Segment-Tar 10 202 229 269 338 404 185 Oak-Segment-Tar 20 298 422 533 628 771 201 Oak-Segment-Tar 50 413 726 1044 1424 1806 257 Profiler: top 5 stack trace(s) of of 22440 ms of 3449 thread dumps: 4083/24994 (16%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:149) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3822/24994 (15%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:149) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3449/24994 (13%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1125/24994 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1123/24994 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 64%: app//org.apache.jackrabbit.oak.security.authorization.permission 13%: app//org.apache.jackrabbit.oak.commons 9%: app//org.apache.jackrabbit.oak.segment 8%: app//org.apache.jackrabbit.oak.cache . CacheSize 1000 - Reading 100 items with 1 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1 --numberOfUsers 1 --cache 1000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6148 All paths: 123545 Oak-Segment-Tar 1 1 1 2 2 5 2919 Oak-Segment-Tar 10 1 2 4 8 39 10726 Oak-Segment-Tar 20 1 5 7 9 61 14523 Oak-Segment-Tar 50 1 3 4 45 418 15575 Profiler: top 5 stack trace(s) of of 21093 ms of 4026 thread dumps: 4759/30083 (15%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 4026/30083 (13%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1166/30083 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1056/30083 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 681/30083 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 22%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.segment.scheduler 13%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 9%: app//org.apache.jackrabbit.oak.cache . CacheSize 1000 - Reading 100 items with 1 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1 --numberOfUsers 10 --cache 1000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6218 All paths: 123545 Oak-Segment-Tar 1 1 1 2 2 7 2753 Oak-Segment-Tar 10 1 2 3 5 21 13864 Oak-Segment-Tar 20 1 3 6 14 81 13346 Oak-Segment-Tar 50 1 3 4 57 266 14683 Profiler: top 5 stack trace(s) of of 21092 ms of 3971 thread dumps: 3971/32873 (12%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1406/32873 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1183/32873 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 967/32873 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 884/32873 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 26%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 13%: app//org.apache.jackrabbit.oak.commons 10%: app//org.apache.jackrabbit.oak.plugins.tree.impl 9%: app//org.apache.jackrabbit.oak.cache . CacheSize 1000 - Reading 100 items with 1 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1 --numberOfUsers 100 --cache 1000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6144 All paths: 123545 Oak-Segment-Tar 1 1 1 2 3 11 2611 Oak-Segment-Tar 10 1 3 3 5 22 13654 Oak-Segment-Tar 20 1 3 4 17 101 13302 Oak-Segment-Tar 50 1 3 18 24 94 13174 Profiler: top 5 stack trace(s) of of 21108 ms of 4060 thread dumps: 4060/29096 (13%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1964/29096 (6%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1258/29096 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1196/29096 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 763/29096 (2%): at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getSubject(LoginContextProviderImpl.java:97) at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getLoginContext(LoginContextProviderImpl.java:79) at app//org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:162) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 24%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 10%: app//org.apache.jackrabbit.oak.cache 9%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 1000 - Reading 100 items with 1 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1 --numberOfUsers 1000 --cache 1000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6000 All paths: 123545 Oak-Segment-Tar 1 1 2 2 3 8 2110 Oak-Segment-Tar 10 2 3 5 9 28 9030 Oak-Segment-Tar 20 2 4 8 19 58 10201 Oak-Segment-Tar 50 2 4 19 58 184 9665 Profiler: top 5 stack trace(s) of of 21083 ms of 4122 thread dumps: 4122/25199 (16%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1445/25199 (5%): at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getSubject(LoginContextProviderImpl.java:97) at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getLoginContext(LoginContextProviderImpl.java:79) at app//org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:162) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1214/25199 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionUtil.isAdminOrSystem(PermissionUtil.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:163) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1103/25199 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 844/25199 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionUtil.isAdminOrSystem(PermissionUtil.java:85) at app//org.apache.jackrabbit.oak.security.authorization.AuthorizationConfigurationImpl.getPermissionProvider(AuthorizationConfigurationImpl.java:204) at app//org.apache.jackrabbit.oak.security.authorization.composite.CompositeAuthorizationConfiguration.getPermissionProvider(CompositeAuthorizationConfiguration.java:175) at app//org.apache.jackrabbit.oak.core.MutableRoot$1.createValue(MutableRoot.java:130) at app//org.apache.jackrabbit.oak.core.MutableRoot$1.createValue(MutableRoot.java:127) at app//org.apache.jackrabbit.oak.commons.LazyValue.get(LazyValue.java:56) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 30%: app//org.apache.jackrabbit.oak.security.authorization.permission 25%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.commons 6%: app//org.apache.jackrabbit.oak.plugins.tree.impl 6%: app//org.apache.jackrabbit.oak.security.authentication . CacheSize 1000 - Reading 100 items with 10 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10 --numberOfUsers 1 --cache 1000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6382 All paths: 123545 Oak-Segment-Tar 1 1 1 2 2 5 2976 Oak-Segment-Tar 10 1 2 4 8 28 11125 Oak-Segment-Tar 20 1 5 7 10 49 14123 Oak-Segment-Tar 50 1 13 17 21 115 14828 Profiler: top 5 stack trace(s) of of 21111 ms of 4111 thread dumps: 7513/28200 (26%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 4111/28200 (14%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1008/28200 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 917/28200 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 477/28200 (1%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 26%: app//org.apache.jackrabbit.oak.segment.scheduler 17%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 10%: app//org.apache.jackrabbit.oak.security.authorization.permission 8%: app//org.apache.jackrabbit.oak.cache . CacheSize 1000 - Reading 100 items with 10 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10 --numberOfUsers 10 --cache 1000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6443 All paths: 123545 Oak-Segment-Tar 1 1 1 2 3 7 2614 Oak-Segment-Tar 10 1 2 4 6 25 12354 Oak-Segment-Tar 20 1 3 6 10 80 14873 Oak-Segment-Tar 50 1 3 4 53 277 15507 Profiler: top 5 stack trace(s) of of 21087 ms of 3974 thread dumps: 3974/32418 (12%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 3109/32418 (9%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 829/32418 (2%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 787/32418 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 779/32418 (2%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 16%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.segment.file 13%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 9%: app//org.apache.jackrabbit.oak.segment.scheduler . CacheSize 1000 - Reading 100 items with 10 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10 --numberOfUsers 100 --cache 1000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5787 All paths: 123545 Oak-Segment-Tar 1 1 1 2 2 4 2739 Oak-Segment-Tar 10 1 2 3 5 17 13895 Oak-Segment-Tar 20 1 5 7 9 50 13763 Oak-Segment-Tar 50 2 14 17 20 148 14499 Profiler: top 5 stack trace(s) of of 21103 ms of 4236 thread dumps: 6992/30044 (23%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 4236/30044 (14%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 587/30044 (1%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 570/30044 (1%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 548/30044 (1%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 23%: app//org.apache.jackrabbit.oak.segment.scheduler 14%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.segment 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.segment.file . CacheSize 1000 - Reading 100 items with 10 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10 --numberOfUsers 1000 --cache 1000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 8008 All paths: 123545 Oak-Segment-Tar 1 1 2 3 4 10 1643 Oak-Segment-Tar 10 2 4 5 7 21 9835 Oak-Segment-Tar 20 2 3 7 18 61 10532 Oak-Segment-Tar 50 2 4 21 54 197 10010 Profiler: top 5 stack trace(s) of of 21084 ms of 4148 thread dumps: 4148/26400 (15%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1435/26400 (5%): at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1365/26400 (5%): at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getSubject(LoginContextProviderImpl.java:97) at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getLoginContext(LoginContextProviderImpl.java:79) at app//org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:162) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1199/26400 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionUtil.isAdminOrSystem(PermissionUtil.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:163) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 757/26400 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionUtil.isAdminOrSystem(PermissionUtil.java:85) at app//org.apache.jackrabbit.oak.security.authorization.AuthorizationConfigurationImpl.getPermissionProvider(AuthorizationConfigurationImpl.java:204) at app//org.apache.jackrabbit.oak.security.authorization.composite.CompositeAuthorizationConfiguration.getPermissionProvider(CompositeAuthorizationConfiguration.java:175) at app//org.apache.jackrabbit.oak.core.MutableRoot$1.createValue(MutableRoot.java:130) at app//org.apache.jackrabbit.oak.core.MutableRoot$1.createValue(MutableRoot.java:127) at app//org.apache.jackrabbit.oak.commons.LazyValue.get(LazyValue.java:56) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 31%: app//org.apache.jackrabbit.oak.security.authorization.permission 19%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.commons 6%: app//org.apache.jackrabbit.oak.cache 6%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 1000 - Reading 100 items with 100 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 100 --numberOfUsers 1 --cache 1000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5984 All paths: 123545 Oak-Segment-Tar 1 1 1 2 2 7 2669 Oak-Segment-Tar 10 1 3 5 14 79 6925 Oak-Segment-Tar 20 1 3 8 14 71 11653 Oak-Segment-Tar 50 1 3 19 30 240 12200 Profiler: top 5 stack trace(s) of of 21104 ms of 3815 thread dumps: 3815/27310 (13%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 3789/27310 (13%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 805/27310 (2%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 669/27310 (2%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 592/27310 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 23%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 13%: app//org.apache.jackrabbit.oak.segment.scheduler 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 8%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 1000 - Reading 100 items with 100 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 100 --numberOfUsers 10 --cache 1000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6445 All paths: 123545 Oak-Segment-Tar 1 1 1 2 2 5 2721 Oak-Segment-Tar 10 1 2 4 8 28 11027 Oak-Segment-Tar 20 1 3 7 10 84 13000 Oak-Segment-Tar 50 1 3 16 44 263 11888 Profiler: top 5 stack trace(s) of of 21101 ms of 4004 thread dumps: 4561/30244 (15%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 4004/30244 (13%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1053/30244 (3%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1016/30244 (3%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 599/30244 (1%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 34%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.segment.scheduler 14%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 7%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 1000 - Reading 100 items with 100 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 100 --numberOfUsers 100 --cache 1000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 8205 All paths: 123545 Oak-Segment-Tar 1 1 2 3 5 14 1566 Oak-Segment-Tar 10 1 3 4 8 50 9651 Oak-Segment-Tar 20 2 3 5 19 79 12001 Oak-Segment-Tar 50 2 3 8 50 437 12750 Profiler: top 5 stack trace(s) of of 21114 ms of 3693 thread dumps: 3693/27596 (13%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1213/27596 (4%): at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getSubject(LoginContextProviderImpl.java:97) at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getLoginContext(LoginContextProviderImpl.java:79) at app//org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:162) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 709/27596 (2%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 644/27596 (2%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 643/27596 (2%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 37%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.security.authorization.permission 13%: app//org.apache.jackrabbit.oak.commons 8%: app//org.apache.jackrabbit.oak.plugins.tree.impl 5%: app//org.apache.jackrabbit.oak.core . CacheSize 1000 - Reading 100 items with 100 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 100 --numberOfUsers 1000 --cache 1000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6187 All paths: 123545 Oak-Segment-Tar 1 2 2 3 3 11 1891 Oak-Segment-Tar 10 2 4 5 7 25 9297 Oak-Segment-Tar 20 2 4 9 23 79 8662 Oak-Segment-Tar 50 2 4 14 63 248 9169 Profiler: top 5 stack trace(s) of of 21093 ms of 4199 thread dumps: 4199/27507 (15%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1401/27507 (5%): at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getSubject(LoginContextProviderImpl.java:97) at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getLoginContext(LoginContextProviderImpl.java:79) at app//org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:162) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 940/27507 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionUtil.isAdminOrSystem(PermissionUtil.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:163) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 912/27507 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 763/27507 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionUtil.isAdminOrSystem(PermissionUtil.java:85) at app//org.apache.jackrabbit.oak.security.authorization.AuthorizationConfigurationImpl.getPermissionProvider(AuthorizationConfigurationImpl.java:204) at app//org.apache.jackrabbit.oak.security.authorization.composite.CompositeAuthorizationConfiguration.getPermissionProvider(CompositeAuthorizationConfiguration.java:175) at app//org.apache.jackrabbit.oak.core.MutableRoot$1.createValue(MutableRoot.java:130) at app//org.apache.jackrabbit.oak.core.MutableRoot$1.createValue(MutableRoot.java:127) at app//org.apache.jackrabbit.oak.commons.LazyValue.get(LazyValue.java:56) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 28%: app//org.apache.jackrabbit.oak.security.authorization.permission 26%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.commons 5%: app//org.apache.jackrabbit.oak.security.authentication 4%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 1000 - Reading 100 items with 1000 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1000 --numberOfUsers 1 --cache 1000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6123 All paths: 123545 Oak-Segment-Tar 1 3 3 4 5 11 1156 Oak-Segment-Tar 10 5 8 10 13 30 4672 Oak-Segment-Tar 20 5 9 21 51 206 3714 Oak-Segment-Tar 50 4 10 47 131 366 4195 Profiler: top 5 stack trace(s) of of 21192 ms of 3389 thread dumps: 3389/22116 (15%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 824/22116 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:149) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 504/22116 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:109) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 422/22116 (1%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 421/22116 (1%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 34%: app//org.apache.jackrabbit.oak.segment 18%: app//org.apache.jackrabbit.oak.cache 15%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 4%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 1000 - Reading 100 items with 1000 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1000 --numberOfUsers 10 --cache 1000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6559 All paths: 123545 Oak-Segment-Tar 1 3 3 4 5 10 1186 Oak-Segment-Tar 10 4 7 9 13 38 5294 Oak-Segment-Tar 20 4 7 14 36 133 5394 Oak-Segment-Tar 50 5 10 38 50 302 6395 Profiler: top 5 stack trace(s) of of 21248 ms of 3723 thread dumps: 3723/26440 (14%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1228/26440 (4%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 470/26440 (1%): at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:149) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 400/26440 (1%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:149) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 377/26440 (1%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:109) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 45%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 4%: app//org.apache.jackrabbit.oak.segment.scheduler 4%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 1000 - Reading 100 items with 1000 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1000 --numberOfUsers 100 --cache 1000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5816 All paths: 123545 Oak-Segment-Tar 1 8 9 10 12 17 486 Oak-Segment-Tar 10 11 16 19 23 38 2629 Oak-Segment-Tar 20 12 21 40 72 136 2331 Oak-Segment-Tar 50 11 20 83 191 566 2610 Profiler: top 5 stack trace(s) of of 21214 ms of 3899 thread dumps: 3899/28831 (13%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2782/28831 (9%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2404/28831 (8%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1380/28831 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:58) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1316/28831 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:58) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 52%: app//org.apache.jackrabbit.oak.security.authorization.permission 17%: app//org.apache.jackrabbit.oak.segment 13%: app//org.apache.jackrabbit.oak.commons 6%: app//org.apache.jackrabbit.oak.cache 2%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 1000 - Reading 100 items with 1000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1000 --numberOfUsers 1000 --cache 1000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 7657 All paths: 123545 Oak-Segment-Tar 1 41 44 49 64 103 98 Oak-Segment-Tar 10 85 108 152 179 256 341 Oak-Segment-Tar 20 120 194 285 339 401 370 Oak-Segment-Tar 50 90 286 464 648 840 571 Profiler: top 5 stack trace(s) of of 21763 ms of 3791 thread dumps: 9453/37175 (25%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:149) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 9301/37175 (25%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:149) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3791/37175 (10%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2152/37175 (5%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:149) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:524) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.exists(SecureNodeBuilder.java:127) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.exists(AbstractTree.java:225) at app//org.apache.jackrabbit.oak.core.MutableTree.exists(MutableTree.java:120) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:444) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2118/37175 (5%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:149) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:524) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.exists(SecureNodeBuilder.java:127) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.exists(AbstractTree.java:225) at app//org.apache.jackrabbit.oak.core.MutableTree.exists(MutableTree.java:120) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:444) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 80%: app//org.apache.jackrabbit.oak.security.authorization.permission 10%: app//org.apache.jackrabbit.oak.commons 3%: app//org.apache.jackrabbit.oak.segment . CacheSize 1000 - Reading 100 items with 10000 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10000 --numberOfUsers 1 --cache 1000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5915 All paths: 123545 Oak-Segment-Tar 1 1 2 2 3 7 2008 Oak-Segment-Tar 10 2 4 5 6 18 9836 Oak-Segment-Tar 20 2 5 6 23 69 9389 Oak-Segment-Tar 50 2 4 5 84 473 10219 Profiler: top 5 stack trace(s) of of 21089 ms of 3914 thread dumps: 3914/28561 (13%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 760/28561 (2%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionUtil.checkACLPath(PermissionUtil.java:71) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:83) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:68) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 545/28561 (1%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 526/28561 (1%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:219) at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.hasChildNode(SegmentNodeState.java:441) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.hasChildNode(ReadOnlyBuilder.java:94) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasChild(AbstractTree.java:293) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:81) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:68) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 485/28561 (1%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNodeMap(SegmentNodeState.java:132) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 21%: app//org.apache.jackrabbit.oak.segment.file 19%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.commons 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 12%: app//org.apache.jackrabbit.oak.cache . CacheSize 1000 - Reading 100 items with 10000 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10000 --numberOfUsers 10 --cache 1000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6120 All paths: 123545 Oak-Segment-Tar 1 2 3 4 5 58 1218 Oak-Segment-Tar 10 3 5 7 10 32 6579 Oak-Segment-Tar 20 3 6 11 30 115 6610 Oak-Segment-Tar 50 3 6 10 91 391 7541 Profiler: top 5 stack trace(s) of of 21181 ms of 3634 thread dumps: 3634/31321 (11%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1155/31321 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 913/31321 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 659/31321 (2%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNodeMap(SegmentNodeState.java:132) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.hasChildNode(SegmentNodeState.java:441) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.hasChildNode(ReadOnlyBuilder.java:94) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasChild(AbstractTree.java:293) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:81) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:68) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 545/31321 (1%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.rememberNotAccessControlled(PrincipalPermissionEntries.java:97) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:73) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 27%: app//org.apache.jackrabbit.oak.security.authorization.permission 23%: app//org.apache.jackrabbit.oak.segment 17%: app//org.apache.jackrabbit.oak.segment.file 13%: app//org.apache.jackrabbit.oak.commons 3%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 1000 - Reading 100 items with 10000 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10000 --numberOfUsers 100 --cache 1000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5327 All paths: 123545 Oak-Segment-Tar 1 9 11 12 14 21 412 Oak-Segment-Tar 10 17 24 29 39 81 1666 Oak-Segment-Tar 20 16 26 52 87 294 1790 Oak-Segment-Tar 50 17 26 116 271 666 1862 Profiler: top 5 stack trace(s) of of 21260 ms of 3212 thread dumps: 3212/29383 (10%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2368/29383 (8%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1955/29383 (6%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1531/29383 (5%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.rememberNotAccessControlled(PrincipalPermissionEntries.java:97) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:73) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1005/29383 (3%): at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:232) at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.hasChildNode(SegmentNodeState.java:441) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.hasChildNode(ReadOnlyBuilder.java:94) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasChild(AbstractTree.java:293) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:81) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:68) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 49%: app//org.apache.jackrabbit.oak.security.authorization.permission 17%: app//org.apache.jackrabbit.oak.segment 11%: app//org.apache.jackrabbit.oak.segment.file 11%: app//org.apache.jackrabbit.oak.commons 4%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 1000 - Reading 100 items with 10000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10000 --numberOfUsers 1000 --cache 1000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6405 All paths: 123545 Oak-Segment-Tar 1 77 82 90 114 179 53 Oak-Segment-Tar 10 184 212 251 336 387 195 Oak-Segment-Tar 20 260 337 440 584 692 231 Oak-Segment-Tar 50 253 664 1026 1415 1811 267 Profiler: top 5 stack trace(s) of of 22677 ms of 3267 thread dumps: 3667/23384 (15%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3593/23384 (15%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3267/23384 (13%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1145/23384 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1063/23384 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 63%: app//org.apache.jackrabbit.oak.security.authorization.permission 14%: app//org.apache.jackrabbit.oak.commons 8%: app//org.apache.jackrabbit.oak.segment 5%: app//org.apache.jackrabbit.oak.cache 3%: app//org.apache.jackrabbit.oak.segment.file . CacheSize 5000 - Reading 100 items with 1 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1 --numberOfUsers 1 --cache 5000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5439 All paths: 123545 Oak-Segment-Tar 1 1 1 2 2 4 3231 Oak-Segment-Tar 10 1 2 3 5 28 14469 Oak-Segment-Tar 20 1 2 5 15 97 14204 Oak-Segment-Tar 50 1 3 4 52 316 15327 Profiler: top 5 stack trace(s) of of 21140 ms of 3500 thread dumps: 3500/32256 (10%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1600/32256 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1554/32256 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1224/32256 (3%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 961/32256 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 28%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 12%: app//org.apache.jackrabbit.oak.cache 12%: app//org.apache.jackrabbit.oak.commons 10%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 5000 - Reading 100 items with 1 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1 --numberOfUsers 10 --cache 5000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5498 All paths: 123545 Oak-Segment-Tar 1 1 1 2 2 7 3098 Oak-Segment-Tar 10 1 2 3 4 25 15026 Oak-Segment-Tar 20 1 2 4 15 96 14300 Oak-Segment-Tar 50 1 3 4 57 249 14786 Profiler: top 5 stack trace(s) of of 21086 ms of 3642 thread dumps: 3642/30241 (12%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1481/30241 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1470/30241 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 851/30241 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 832/30241 (2%): at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getSubject(LoginContextProviderImpl.java:97) at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getLoginContext(LoginContextProviderImpl.java:79) at app//org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:162) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 27%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 13%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.cache 9%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 5000 - Reading 100 items with 1 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1 --numberOfUsers 100 --cache 5000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5985 All paths: 123545 Oak-Segment-Tar 1 1 1 2 2 4 3193 Oak-Segment-Tar 10 1 2 3 4 27 14706 Oak-Segment-Tar 20 1 2 4 17 104 13794 Oak-Segment-Tar 50 1 3 4 57 378 14658 Profiler: top 5 stack trace(s) of of 21089 ms of 3593 thread dumps: 3593/27081 (13%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1125/27081 (4%): at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getSubject(LoginContextProviderImpl.java:97) at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getLoginContext(LoginContextProviderImpl.java:79) at app//org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:162) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 758/27081 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 704/27081 (2%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 696/27081 (2%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 17%: app//org.apache.jackrabbit.oak.segment.file 16%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 13%: app//org.apache.jackrabbit.oak.commons 9%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 5000 - Reading 100 items with 1 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1 --numberOfUsers 1000 --cache 5000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5429 All paths: 123545 Oak-Segment-Tar 1 1 2 2 3 5 2451 Oak-Segment-Tar 10 2 3 4 6 32 11210 Oak-Segment-Tar 20 2 3 6 20 137 10349 Oak-Segment-Tar 50 2 3 17 57 196 10288 Profiler: top 5 stack trace(s) of of 21095 ms of 3952 thread dumps: 3952/25368 (15%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1350/25368 (5%): at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getSubject(LoginContextProviderImpl.java:97) at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getLoginContext(LoginContextProviderImpl.java:79) at app//org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:162) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 974/25368 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionUtil.isAdminOrSystem(PermissionUtil.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:163) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 934/25368 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 804/25368 (3%): at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 28%: app//org.apache.jackrabbit.oak.segment 27%: app//org.apache.jackrabbit.oak.security.authorization.permission 15%: app//org.apache.jackrabbit.oak.commons 6%: app//org.apache.jackrabbit.oak.plugins.tree.impl 5%: app//org.apache.jackrabbit.oak.security.authentication . CacheSize 5000 - Reading 100 items with 10 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10 --numberOfUsers 1 --cache 5000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5681 All paths: 123545 Oak-Segment-Tar 1 1 1 2 2 5 3003 Oak-Segment-Tar 10 1 2 3 5 33 14342 Oak-Segment-Tar 20 1 2 4 17 90 13774 Oak-Segment-Tar 50 1 2 4 54 380 15283 Profiler: top 5 stack trace(s) of of 21121 ms of 3390 thread dumps: 3390/31680 (10%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 996/31680 (3%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 900/31680 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 882/31680 (2%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 839/31680 (2%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 17%: app//org.apache.jackrabbit.oak.segment 17%: app//org.apache.jackrabbit.oak.segment.file 15%: app//org.apache.jackrabbit.oak.security.authorization.permission 12%: app//org.apache.jackrabbit.oak.commons 10%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 5000 - Reading 100 items with 10 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10 --numberOfUsers 10 --cache 5000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5213 All paths: 123545 Oak-Segment-Tar 1 1 1 2 2 8 3123 Oak-Segment-Tar 10 1 2 3 5 31 14846 Oak-Segment-Tar 20 1 3 7 10 81 14171 Oak-Segment-Tar 50 1 3 4 55 262 15044 Profiler: top 5 stack trace(s) of of 21085 ms of 3633 thread dumps: 3633/29684 (12%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2769/29684 (9%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 940/29684 (3%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 849/29684 (2%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 793/29684 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 37%: app//org.apache.jackrabbit.oak.segment 13%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 9%: app//org.apache.jackrabbit.oak.plugins.tree.impl 9%: app//org.apache.jackrabbit.oak.segment.scheduler . CacheSize 5000 - Reading 100 items with 10 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10 --numberOfUsers 100 --cache 5000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5676 All paths: 123545 Oak-Segment-Tar 1 1 1 2 2 7 3058 Oak-Segment-Tar 10 1 2 3 4 22 15463 Oak-Segment-Tar 20 1 2 4 17 103 13990 Oak-Segment-Tar 50 1 3 4 35 301 14834 Profiler: top 5 stack trace(s) of of 21093 ms of 3623 thread dumps: 3623/26570 (13%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 969/26570 (3%): at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getSubject(LoginContextProviderImpl.java:97) at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getLoginContext(LoginContextProviderImpl.java:79) at app//org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:162) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 768/26570 (2%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 693/26570 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 668/26570 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 31%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 10%: app//org.apache.jackrabbit.oak.plugins.tree.impl 8%: app//org.apache.jackrabbit.oak.core . CacheSize 5000 - Reading 100 items with 10 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10 --numberOfUsers 1000 --cache 5000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5513 All paths: 123545 Oak-Segment-Tar 1 1 2 2 3 6 2294 Oak-Segment-Tar 10 2 3 4 5 16 11512 Oak-Segment-Tar 20 2 3 7 20 84 10163 Oak-Segment-Tar 50 2 3 18 58 201 10269 Profiler: top 5 stack trace(s) of of 21092 ms of 3939 thread dumps: 3939/25331 (15%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1259/25331 (4%): at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getSubject(LoginContextProviderImpl.java:97) at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getLoginContext(LoginContextProviderImpl.java:79) at app//org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:162) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1103/25331 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionUtil.isAdminOrSystem(PermissionUtil.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:163) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1047/25331 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 814/25331 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionUtil.isAdminOrSystem(PermissionUtil.java:85) at app//org.apache.jackrabbit.oak.security.authorization.AuthorizationConfigurationImpl.getPermissionProvider(AuthorizationConfigurationImpl.java:204) at app//org.apache.jackrabbit.oak.security.authorization.composite.CompositeAuthorizationConfiguration.getPermissionProvider(CompositeAuthorizationConfiguration.java:175) at app//org.apache.jackrabbit.oak.core.MutableRoot$1.createValue(MutableRoot.java:130) at app//org.apache.jackrabbit.oak.core.MutableRoot$1.createValue(MutableRoot.java:127) at app//org.apache.jackrabbit.oak.commons.LazyValue.get(LazyValue.java:56) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 30%: app//org.apache.jackrabbit.oak.security.authorization.permission 19%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.commons 7%: app//org.apache.jackrabbit.oak.cache 6%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 5000 - Reading 100 items with 100 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 100 --numberOfUsers 1 --cache 5000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5853 All paths: 123545 Oak-Segment-Tar 1 1 1 2 2 7 2775 Oak-Segment-Tar 10 1 3 4 5 20 13453 Oak-Segment-Tar 20 2 6 8 9 39 12702 Oak-Segment-Tar 50 2 3 4 63 324 13478 Profiler: top 5 stack trace(s) of of 21095 ms of 3696 thread dumps: 4404/30434 (14%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3696/30434 (12%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1149/30434 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1136/30434 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 688/30434 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 26%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.segment.scheduler 12%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 9%: app//org.apache.jackrabbit.oak.cache . CacheSize 5000 - Reading 100 items with 100 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 100 --numberOfUsers 10 --cache 5000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5671 All paths: 123545 Oak-Segment-Tar 1 1 1 2 2 7 2745 Oak-Segment-Tar 10 1 2 4 5 22 12777 Oak-Segment-Tar 20 2 3 7 15 129 12342 Oak-Segment-Tar 50 2 16 19 22 110 13117 Profiler: top 5 stack trace(s) of of 21105 ms of 3694 thread dumps: 3694/27584 (13%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 3516/27584 (12%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 875/27584 (3%): at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 806/27584 (2%): at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 640/27584 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 34%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.segment.scheduler 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 8%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 5000 - Reading 100 items with 100 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 100 --numberOfUsers 100 --cache 5000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5465 All paths: 123545 Oak-Segment-Tar 1 1 1 2 3 7 2452 Oak-Segment-Tar 10 1 3 4 6 27 11952 Oak-Segment-Tar 20 2 3 5 20 97 12106 Oak-Segment-Tar 50 2 4 20 24 371 12408 Profiler: top 5 stack trace(s) of of 21147 ms of 3621 thread dumps: 3621/26026 (13%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1833/26026 (7%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 719/26026 (2%): at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getSubject(LoginContextProviderImpl.java:97) at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getLoginContext(LoginContextProviderImpl.java:79) at app//org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:162) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 558/26026 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 556/26026 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 16%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.segment.file 14%: app//org.apache.jackrabbit.oak.commons 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 8%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 5000 - Reading 100 items with 100 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 100 --numberOfUsers 1000 --cache 5000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5335 All paths: 123545 Oak-Segment-Tar 1 1 2 2 3 8 2039 Oak-Segment-Tar 10 2 4 5 7 43 9402 Oak-Segment-Tar 20 2 4 7 23 79 9002 Oak-Segment-Tar 50 2 4 13 70 259 8968 Profiler: top 5 stack trace(s) of of 21118 ms of 3827 thread dumps: 3827/24863 (15%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1221/24863 (4%): at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getSubject(LoginContextProviderImpl.java:97) at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getLoginContext(LoginContextProviderImpl.java:79) at app//org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:162) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 850/24863 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionUtil.isAdminOrSystem(PermissionUtil.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:163) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 828/24863 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 722/24863 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionUtil.isAdminOrSystem(PermissionUtil.java:85) at app//org.apache.jackrabbit.oak.security.authorization.AuthorizationConfigurationImpl.getPermissionProvider(AuthorizationConfigurationImpl.java:204) at app//org.apache.jackrabbit.oak.security.authorization.composite.CompositeAuthorizationConfiguration.getPermissionProvider(CompositeAuthorizationConfiguration.java:175) at app//org.apache.jackrabbit.oak.core.MutableRoot$1.createValue(MutableRoot.java:130) at app//org.apache.jackrabbit.oak.core.MutableRoot$1.createValue(MutableRoot.java:127) at app//org.apache.jackrabbit.oak.commons.LazyValue.get(LazyValue.java:56) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 27%: app//org.apache.jackrabbit.oak.security.authorization.permission 15%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.commons 14%: app//org.apache.jackrabbit.oak.segment.file 6%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 5000 - Reading 100 items with 1000 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1000 --numberOfUsers 1 --cache 5000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6132 All paths: 123545 Oak-Segment-Tar 1 3 3 4 5 7 1289 Oak-Segment-Tar 10 4 7 9 11 32 5494 Oak-Segment-Tar 20 7 15 20 28 58 4713 Oak-Segment-Tar 50 4 8 17 113 431 5702 Profiler: top 5 stack trace(s) of of 21180 ms of 3493 thread dumps: 3493/24137 (14%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1100/24137 (4%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 431/24137 (1%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:109) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 383/24137 (1%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.putEntriesByPath(PrincipalPermissionEntries.java:90) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:158) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 281/24137 (1%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:149) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 26%: app//org.apache.jackrabbit.oak.segment 21%: app//org.apache.jackrabbit.oak.segment.file 15%: app//org.apache.jackrabbit.oak.commons 10%: app//org.apache.jackrabbit.oak.security.authorization.permission 4%: app//org.apache.jackrabbit.oak.segment.scheduler . CacheSize 5000 - Reading 100 items with 1000 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1000 --numberOfUsers 10 --cache 5000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5313 All paths: 123545 Oak-Segment-Tar 1 2 3 3 4 6 1470 Oak-Segment-Tar 10 4 6 9 15 41 4956 Oak-Segment-Tar 20 4 7 14 39 118 5184 Oak-Segment-Tar 50 6 13 60 143 411 3566 Profiler: top 5 stack trace(s) of of 21185 ms of 3246 thread dumps: 3246/21668 (14%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 965/21668 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:149) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 364/21668 (1%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 336/21668 (1%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 305/21668 (1%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:109) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 34%: app//org.apache.jackrabbit.oak.segment 18%: app//org.apache.jackrabbit.oak.cache 15%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 5%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 5000 - Reading 100 items with 1000 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1000 --numberOfUsers 100 --cache 5000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 8115 All paths: 123545 Oak-Segment-Tar 1 3 4 5 8 18 886 Oak-Segment-Tar 10 5 8 11 19 44 4002 Oak-Segment-Tar 20 4 9 19 48 153 4054 Oak-Segment-Tar 50 4 8 36 55 299 6460 Profiler: top 5 stack trace(s) of of 21140 ms of 3340 thread dumps: 3340/21784 (15%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1075/21784 (4%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 571/21784 (2%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:149) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 537/21784 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:109) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 293/21784 (1%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 32%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.commons 14%: app//org.apache.jackrabbit.oak.cache 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 5%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 5000 - Reading 100 items with 1000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1000 --numberOfUsers 1000 --cache 5000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5826 All paths: 123545 Oak-Segment-Tar 1 5 6 6 8 18 744 Oak-Segment-Tar 10 8 11 13 16 31 3763 Oak-Segment-Tar 20 7 12 24 51 142 3547 Oak-Segment-Tar 50 7 13 48 128 357 4065 Profiler: top 5 stack trace(s) of of 21156 ms of 3679 thread dumps: 3679/24297 (15%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 911/24297 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getProperty(SegmentNodeState.java:218) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.getProperty(ReadOnlyBuilder.java:136) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getProperty(AbstractTree.java:250) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getLong(TreeUtil.java:193) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.getNumEntries(PermissionStoreImpl.java:112) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:55) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 698/24297 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:109) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 657/24297 (2%): at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getSubject(LoginContextProviderImpl.java:97) at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getLoginContext(LoginContextProviderImpl.java:79) at app//org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:162) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 265/24297 (1%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:149) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 20%: app//org.apache.jackrabbit.oak.security.authorization.permission 16%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.commons 16%: app//org.apache.jackrabbit.oak.segment.file 12%: app//org.apache.jackrabbit.oak.cache . CacheSize 5000 - Reading 100 items with 10000 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10000 --numberOfUsers 1 --cache 5000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5423 All paths: 123545 Oak-Segment-Tar 1 1 2 2 3 8 2282 Oak-Segment-Tar 10 2 3 5 9 22 9219 Oak-Segment-Tar 20 2 4 7 25 147 8657 Oak-Segment-Tar 50 2 4 20 34 250 11044 Profiler: top 5 stack trace(s) of of 21115 ms of 3765 thread dumps: 3765/26960 (13%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1601/26960 (5%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 916/26960 (3%): at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 853/26960 (3%): at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 339/26960 (1%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionUtil.checkACLPath(PermissionUtil.java:71) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:83) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:68) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 44%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 5%: app//org.apache.jackrabbit.oak.segment.scheduler 5%: app//org.apache.jackrabbit.oak.cache . CacheSize 5000 - Reading 100 items with 10000 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10000 --numberOfUsers 10 --cache 5000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5834 All paths: 123545 Oak-Segment-Tar 1 2 3 3 4 12 1379 Oak-Segment-Tar 10 3 5 7 10 34 6961 Oak-Segment-Tar 20 3 6 12 27 107 6840 Oak-Segment-Tar 50 5 27 32 37 90 7866 Profiler: top 5 stack trace(s) of of 21123 ms of 3911 thread dumps: 3911/28242 (13%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2769/28242 (9%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 732/28242 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 603/28242 (2%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNodeMap(SegmentNodeState.java:132) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.hasChildNode(SegmentNodeState.java:441) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.hasChildNode(ReadOnlyBuilder.java:94) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasChild(AbstractTree.java:293) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:81) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:68) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 598/28242 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 21%: app//org.apache.jackrabbit.oak.security.authorization.permission 18%: app//org.apache.jackrabbit.oak.segment.file 17%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 9%: app//org.apache.jackrabbit.oak.segment.scheduler . CacheSize 5000 - Reading 100 items with 10000 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10000 --numberOfUsers 100 --cache 5000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6000 All paths: 123545 Oak-Segment-Tar 1 10 11 12 16 25 389 Oak-Segment-Tar 10 19 25 29 37 65 1659 Oak-Segment-Tar 20 25 38 64 110 249 1416 Oak-Segment-Tar 50 23 33 128 231 409 1917 Profiler: top 5 stack trace(s) of of 21243 ms of 3611 thread dumps: 3611/30265 (11%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2858/30265 (9%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2159/30265 (7%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1829/30265 (6%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasChild(AbstractTree.java:293) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:81) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:68) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1471/30265 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.rememberNotAccessControlled(PrincipalPermissionEntries.java:97) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:73) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 42%: app//org.apache.jackrabbit.oak.security.authorization.permission 15%: app//org.apache.jackrabbit.oak.segment 13%: app//org.apache.jackrabbit.oak.segment.file 12%: app//org.apache.jackrabbit.oak.commons 9%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 5000 - Reading 100 items with 10000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10000 --numberOfUsers 1000 --cache 5000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5555 All paths: 123545 Oak-Segment-Tar 1 66 73 80 86 107 63 Oak-Segment-Tar 10 136 183 219 254 307 232 Oak-Segment-Tar 20 242 322 391 501 625 259 Oak-Segment-Tar 50 255 602 884 1180 1648 308 Profiler: top 5 stack trace(s) of of 22196 ms of 3564 thread dumps: 3564/24295 (14%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 3535/24295 (14%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3148/24295 (12%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1012/24295 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 882/24295 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 57%: app//org.apache.jackrabbit.oak.security.authorization.permission 14%: app//org.apache.jackrabbit.oak.commons 13%: app//org.apache.jackrabbit.oak.segment 9%: app//org.apache.jackrabbit.oak.cache . CacheSize 10000 - Reading 100 items with 1 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1 --numberOfUsers 1 --cache 10000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5362 All paths: 123545 Oak-Segment-Tar 1 1 1 2 2 10 3122 Oak-Segment-Tar 10 1 2 3 5 21 14396 Oak-Segment-Tar 20 2 6 7 8 24 14659 Oak-Segment-Tar 50 1 3 4 52 314 15767 Profiler: top 5 stack trace(s) of of 21097 ms of 4196 thread dumps: 5540/31291 (17%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 4196/31291 (13%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1255/31291 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1206/31291 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 690/31291 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 21%: app//org.apache.jackrabbit.oak.segment 17%: app//org.apache.jackrabbit.oak.segment.scheduler 13%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 9%: app//org.apache.jackrabbit.oak.cache . CacheSize 10000 - Reading 100 items with 1 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1 --numberOfUsers 10 --cache 10000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6813 All paths: 123545 Oak-Segment-Tar 1 1 1 2 2 7 2746 Oak-Segment-Tar 10 1 2 3 6 48 13269 Oak-Segment-Tar 20 1 3 7 11 98 13539 Oak-Segment-Tar 50 1 3 3 55 265 15649 Profiler: top 5 stack trace(s) of of 21096 ms of 3970 thread dumps: 3970/32725 (12%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 3105/32725 (9%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 942/32725 (2%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 921/32725 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 848/32725 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 17%: app//org.apache.jackrabbit.oak.segment 13%: app//org.apache.jackrabbit.oak.segment.file 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 12%: app//org.apache.jackrabbit.oak.commons 10%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 10000 - Reading 100 items with 1 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1 --numberOfUsers 100 --cache 10000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6399 All paths: 123545 Oak-Segment-Tar 1 1 1 2 3 12 2656 Oak-Segment-Tar 10 1 2 3 5 29 13420 Oak-Segment-Tar 20 1 3 6 15 125 12839 Oak-Segment-Tar 50 1 3 4 64 271 14042 Profiler: top 5 stack trace(s) of of 21089 ms of 3979 thread dumps: 3979/28330 (14%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1726/28330 (6%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1040/28330 (3%): at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getSubject(LoginContextProviderImpl.java:97) at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getLoginContext(LoginContextProviderImpl.java:79) at app//org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:162) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 802/28330 (2%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNodeMap(SegmentNodeState.java:132) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 796/28330 (2%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNodeMap(SegmentNodeState.java:132) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 18%: app//org.apache.jackrabbit.oak.segment.file 16%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 9%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 10000 - Reading 100 items with 1 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1 --numberOfUsers 1000 --cache 10000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6324 All paths: 123545 Oak-Segment-Tar 1 1 2 3 4 9 1675 Oak-Segment-Tar 10 2 4 5 10 44 7958 Oak-Segment-Tar 20 2 4 10 27 129 7715 Oak-Segment-Tar 50 2 4 21 61 205 9111 Profiler: top 5 stack trace(s) of of 21104 ms of 3834 thread dumps: 3834/22308 (17%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1328/22308 (5%): at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getSubject(LoginContextProviderImpl.java:97) at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getLoginContext(LoginContextProviderImpl.java:79) at app//org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:162) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1121/22308 (5%): at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1023/22308 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionUtil.isAdminOrSystem(PermissionUtil.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:163) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 634/22308 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionUtil.isAdminOrSystem(PermissionUtil.java:85) at app//org.apache.jackrabbit.oak.security.authorization.AuthorizationConfigurationImpl.getPermissionProvider(AuthorizationConfigurationImpl.java:204) at app//org.apache.jackrabbit.oak.security.authorization.composite.CompositeAuthorizationConfiguration.getPermissionProvider(CompositeAuthorizationConfiguration.java:175) at app//org.apache.jackrabbit.oak.core.MutableRoot$1.createValue(MutableRoot.java:130) at app//org.apache.jackrabbit.oak.core.MutableRoot$1.createValue(MutableRoot.java:127) at app//org.apache.jackrabbit.oak.commons.LazyValue.get(LazyValue.java:56) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 27%: app//org.apache.jackrabbit.oak.security.authorization.permission 23%: app//org.apache.jackrabbit.oak.segment 17%: app//org.apache.jackrabbit.oak.commons 9%: app//org.apache.jackrabbit.oak.plugins.tree.impl 6%: app//org.apache.jackrabbit.oak.security.authentication . CacheSize 10000 - Reading 100 items with 10 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10 --numberOfUsers 1 --cache 10000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 7215 All paths: 123545 Oak-Segment-Tar 1 1 1 2 3 11 2202 Oak-Segment-Tar 10 1 3 6 12 99 7132 Oak-Segment-Tar 20 1 2 5 18 96 12181 Oak-Segment-Tar 50 2 13 18 32 137 12126 Profiler: top 5 stack trace(s) of of 21150 ms of 3378 thread dumps: 3378/25119 (13%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2068/25119 (8%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1229/25119 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1083/25119 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 594/25119 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 22%: app//org.apache.jackrabbit.oak.segment 13%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.cache 9%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 10000 - Reading 100 items with 10 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10 --numberOfUsers 10 --cache 10000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 8120 All paths: 123545 Oak-Segment-Tar 1 1 1 2 4 9 2196 Oak-Segment-Tar 10 1 3 4 9 52 9377 Oak-Segment-Tar 20 1 4 10 16 63 9686 Oak-Segment-Tar 50 1 3 6 52 248 14150 Profiler: top 5 stack trace(s) of of 21102 ms of 3530 thread dumps: 3530/25800 (13%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2856/25800 (11%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1156/25800 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1009/25800 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 578/25800 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 23%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.segment.scheduler 10%: app//org.apache.jackrabbit.oak.cache . CacheSize 10000 - Reading 100 items with 10 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10 --numberOfUsers 100 --cache 10000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 9899 All paths: 123545 Oak-Segment-Tar 1 1 1 2 3 10 2396 Oak-Segment-Tar 10 1 2 3 6 19 13053 Oak-Segment-Tar 20 1 3 6 15 72 12611 Oak-Segment-Tar 50 2 3 4 56 317 14959 Profiler: top 5 stack trace(s) of of 21083 ms of 3870 thread dumps: 3870/29598 (13%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2077/29598 (7%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1254/29598 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1206/29598 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 941/29598 (3%): at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getSubject(LoginContextProviderImpl.java:97) at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getLoginContext(LoginContextProviderImpl.java:79) at app//org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:162) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 21%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.commons 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 10%: app//org.apache.jackrabbit.oak.cache 9%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 10000 - Reading 100 items with 10 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10 --numberOfUsers 1000 --cache 10000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 7622 All paths: 123545 Oak-Segment-Tar 1 1 2 3 4 16 1718 Oak-Segment-Tar 10 2 4 6 15 94 6256 Oak-Segment-Tar 20 2 3 8 26 113 8278 Oak-Segment-Tar 50 2 4 18 55 205 10115 Profiler: top 5 stack trace(s) of of 21123 ms of 3693 thread dumps: 3693/21440 (17%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1377/21440 (6%): at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getSubject(LoginContextProviderImpl.java:97) at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getLoginContext(LoginContextProviderImpl.java:79) at app//org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:162) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1027/21440 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 959/21440 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionUtil.isAdminOrSystem(PermissionUtil.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:163) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 774/21440 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionUtil.isAdminOrSystem(PermissionUtil.java:85) at app//org.apache.jackrabbit.oak.security.authorization.AuthorizationConfigurationImpl.getPermissionProvider(AuthorizationConfigurationImpl.java:204) at app//org.apache.jackrabbit.oak.security.authorization.composite.CompositeAuthorizationConfiguration.getPermissionProvider(CompositeAuthorizationConfiguration.java:175) at app//org.apache.jackrabbit.oak.core.MutableRoot$1.createValue(MutableRoot.java:130) at app//org.apache.jackrabbit.oak.core.MutableRoot$1.createValue(MutableRoot.java:127) at app//org.apache.jackrabbit.oak.commons.LazyValue.get(LazyValue.java:56) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 31%: app//org.apache.jackrabbit.oak.security.authorization.permission 19%: app//org.apache.jackrabbit.oak.commons 14%: app//org.apache.jackrabbit.oak.segment 8%: app//org.apache.jackrabbit.oak.segment.file 6%: app//org.apache.jackrabbit.oak.security.authentication . CacheSize 10000 - Reading 100 items with 100 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 100 --numberOfUsers 1 --cache 10000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6065 All paths: 123545 Oak-Segment-Tar 1 1 1 2 2 9 2676 Oak-Segment-Tar 10 1 3 4 8 23 10529 Oak-Segment-Tar 20 2 6 8 14 49 11622 Oak-Segment-Tar 50 2 3 19 56 236 9799 Profiler: top 5 stack trace(s) of of 21132 ms of 3871 thread dumps: 5124/27764 (18%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3871/27764 (13%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 527/27764 (1%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 510/27764 (1%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 504/27764 (1%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 21%: app//org.apache.jackrabbit.oak.segment 18%: app//org.apache.jackrabbit.oak.segment.scheduler 14%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.segment.file 11%: app//org.apache.jackrabbit.oak.security.authorization.permission . CacheSize 10000 - Reading 100 items with 100 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 100 --numberOfUsers 10 --cache 10000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 8183 All paths: 123545 Oak-Segment-Tar 1 1 2 2 4 7 1978 Oak-Segment-Tar 10 2 5 9 16 71 5046 Oak-Segment-Tar 20 1 2 5 20 101 11541 Oak-Segment-Tar 50 1 3 16 32 331 13532 Profiler: top 5 stack trace(s) of of 21261 ms of 3308 thread dumps: 3308/24873 (13%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1320/24873 (5%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1064/24873 (4%): at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 877/24873 (3%): at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 544/24873 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 38%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 8%: app//org.apache.jackrabbit.oak.plugins.tree.impl 5%: app//org.apache.jackrabbit.oak.core . CacheSize 10000 - Reading 100 items with 100 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 100 --numberOfUsers 100 --cache 10000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 8022 All paths: 123545 Oak-Segment-Tar 1 1 1 2 4 11 2012 Oak-Segment-Tar 10 1 3 4 7 20 11329 Oak-Segment-Tar 20 2 4 8 19 148 10251 Oak-Segment-Tar 50 2 4 6 64 357 11764 Profiler: top 5 stack trace(s) of of 21175 ms of 3787 thread dumps: 3787/29962 (12%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1224/29962 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1220/29962 (4%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1121/29962 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 923/29962 (3%): at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getSubject(LoginContextProviderImpl.java:97) at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getLoginContext(LoginContextProviderImpl.java:79) at app//org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:162) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 26%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.security.authorization.permission 13%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.cache 8%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 10000 - Reading 100 items with 100 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 100 --numberOfUsers 1000 --cache 10000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 7644 All paths: 123545 Oak-Segment-Tar 1 2 3 4 6 14 1293 Oak-Segment-Tar 10 2 5 8 16 60 5356 Oak-Segment-Tar 20 2 4 12 32 116 6422 Oak-Segment-Tar 50 2 4 21 78 316 7784 Profiler: top 5 stack trace(s) of of 21177 ms of 3418 thread dumps: 3418/19492 (17%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1125/19492 (5%): at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getSubject(LoginContextProviderImpl.java:97) at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getLoginContext(LoginContextProviderImpl.java:79) at app//org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:162) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 760/19492 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionUtil.isAdminOrSystem(PermissionUtil.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:163) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 643/19492 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionUtil.isAdminOrSystem(PermissionUtil.java:85) at app//org.apache.jackrabbit.oak.security.authorization.AuthorizationConfigurationImpl.getPermissionProvider(AuthorizationConfigurationImpl.java:204) at app//org.apache.jackrabbit.oak.security.authorization.composite.CompositeAuthorizationConfiguration.getPermissionProvider(CompositeAuthorizationConfiguration.java:175) at app//org.apache.jackrabbit.oak.core.MutableRoot$1.createValue(MutableRoot.java:130) at app//org.apache.jackrabbit.oak.core.MutableRoot$1.createValue(MutableRoot.java:127) at app//org.apache.jackrabbit.oak.commons.LazyValue.get(LazyValue.java:56) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 643/19492 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 29%: app//org.apache.jackrabbit.oak.security.authorization.permission 24%: app//org.apache.jackrabbit.oak.segment 17%: app//org.apache.jackrabbit.oak.commons 6%: app//org.apache.jackrabbit.oak.security.authentication 5%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 10000 - Reading 100 items with 1000 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1000 --numberOfUsers 1 --cache 10000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6039 All paths: 123545 Oak-Segment-Tar 1 3 4 5 7 15 991 Oak-Segment-Tar 10 5 8 11 30 136 3177 Oak-Segment-Tar 20 5 8 18 46 187 4294 Oak-Segment-Tar 50 5 9 47 135 405 4027 Profiler: top 5 stack trace(s) of of 21130 ms of 3218 thread dumps: 3218/20120 (15%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 931/20120 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:149) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 412/20120 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:109) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 255/20120 (1%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:183) at app//org.apache.jackrabbit.oak.spi.security.privilege.JcrAllUtil.denotesDynamicJcrAll(JcrAllUtil.java:70) at app//org.apache.jackrabbit.oak.spi.security.privilege.JcrAllUtil.getPrivilegeBits(JcrAllUtil.java:46) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.createPermissionEntry(PermissionStoreImpl.java:188) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:164) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 250/20120 (1%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.putEntriesByPath(PrincipalPermissionEntries.java:90) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:158) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 20%: app//org.apache.jackrabbit.oak.segment 17%: app//org.apache.jackrabbit.oak.commons 15%: app//org.apache.jackrabbit.oak.segment.file 15%: app//org.apache.jackrabbit.oak.cache 12%: app//org.apache.jackrabbit.oak.security.authorization.permission . CacheSize 10000 - Reading 100 items with 1000 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1000 --numberOfUsers 10 --cache 10000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 10625 All paths: 123545 Oak-Segment-Tar 1 3 4 4 12 42 840 Oak-Segment-Tar 10 4 7 9 13 31 5195 Oak-Segment-Tar 20 4 7 16 40 140 4914 Oak-Segment-Tar 50 4 8 38 89 342 5858 Profiler: top 5 stack trace(s) of of 21184 ms of 3285 thread dumps: 3285/24451 (13%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 733/24451 (2%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 619/24451 (2%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:149) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 536/24451 (2%): at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 443/24451 (1%): at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 45%: app//org.apache.jackrabbit.oak.segment 13%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 6%: app//org.apache.jackrabbit.oak.cache 4%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 10000 - Reading 100 items with 1000 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1000 --numberOfUsers 100 --cache 10000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6012 All paths: 123545 Oak-Segment-Tar 1 3 4 4 7 21 989 Oak-Segment-Tar 10 5 8 11 30 155 3115 Oak-Segment-Tar 20 6 10 27 76 306 2740 Oak-Segment-Tar 50 7 14 63 162 446 3239 Profiler: top 5 stack trace(s) of of 21213 ms of 2944 thread dumps: 2944/17767 (16%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 482/17767 (2%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:149) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 460/17767 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:109) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 322/17767 (1%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 261/17767 (1%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.MapRecord.getKeys(MapRecord.java:326) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNodeNames(SegmentNodeState.java:472) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.getChildNodeNames(ReadOnlyBuilder.java:100) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getChildNames(AbstractTree.java:145) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getChildren(AbstractTree.java:322) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:124) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 33%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.commons 15%: app//org.apache.jackrabbit.oak.cache 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 5%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 10000 - Reading 100 items with 1000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1000 --numberOfUsers 1000 --cache 10000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5981 All paths: 123545 Oak-Segment-Tar 1 5 5 6 7 12 820 Oak-Segment-Tar 10 9 12 15 38 167 2364 Oak-Segment-Tar 20 6 14 41 107 265 1936 Oak-Segment-Tar 50 7 16 75 181 454 2853 Profiler: top 5 stack trace(s) of of 21262 ms of 3111 thread dumps: 3111/17361 (17%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 571/17361 (3%): at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getSubject(LoginContextProviderImpl.java:97) at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getLoginContext(LoginContextProviderImpl.java:79) at app//org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:162) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 528/17361 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getProperty(SegmentNodeState.java:218) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.getProperty(ReadOnlyBuilder.java:136) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getProperty(AbstractTree.java:250) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getLong(TreeUtil.java:193) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.getNumEntries(PermissionStoreImpl.java:112) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:55) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 288/17361 (1%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:109) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 208/17361 (1%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionUtil.isAdminOrSystem(PermissionUtil.java:85) at app//org.apache.jackrabbit.oak.security.authorization.AuthorizationConfigurationImpl.getPermissionProvider(AuthorizationConfigurationImpl.java:204) at app//org.apache.jackrabbit.oak.security.authorization.composite.CompositeAuthorizationConfiguration.getPermissionProvider(CompositeAuthorizationConfiguration.java:175) at app//org.apache.jackrabbit.oak.core.MutableRoot$1.createValue(MutableRoot.java:130) at app//org.apache.jackrabbit.oak.core.MutableRoot$1.createValue(MutableRoot.java:127) at app//org.apache.jackrabbit.oak.commons.LazyValue.get(LazyValue.java:56) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 27%: app//org.apache.jackrabbit.oak.segment 20%: app//org.apache.jackrabbit.oak.security.authorization.permission 18%: app//org.apache.jackrabbit.oak.commons 13%: app//org.apache.jackrabbit.oak.cache 3%: app//org.apache.jackrabbit.oak.security.authentication . CacheSize 10000 - Reading 100 items with 10000 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10000 --numberOfUsers 1 --cache 10000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 7426 All paths: 123545 Oak-Segment-Tar 1 26 26 29 50 93 145 Oak-Segment-Tar 10 48 60 69 90 132 694 Oak-Segment-Tar 20 56 90 155 317 455 563 Oak-Segment-Tar 50 58 215 406 630 906 622 Profiler: top 5 stack trace(s) of of 21556 ms of 2966 thread dumps: 2966/18333 (16%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1180/18333 (6%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:149) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 776/18333 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.MapRecord.getKeys(MapRecord.java:326) at app//org.apache.jackrabbit.oak.segment.MapRecord$1.iterator(MapRecord.java:312) at app//com.google.common.collect.Iterables$3.transform(Iterables.java:509) at app//com.google.common.collect.Iterables$3.transform(Iterables.java:506) at app//com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48) at app//com.google.common.collect.Iterators$5.hasNext(Iterators.java:543) at app//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) at app//com.google.common.collect.TransformedIterator.hasNext(TransformedIterator.java:43) at app//com.google.common.collect.Iterators$7.computeNext(Iterators.java:645) at app//com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143) at app//com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:124) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 462/18333 (2%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getProperty(SegmentNodeState.java:218) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.getProperty(ReadOnlyBuilder.java:136) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getProperty(AbstractTree.java:250) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:147) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 459/18333 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.putEntriesByPath(PrincipalPermissionEntries.java:90) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:158) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 32%: app//org.apache.jackrabbit.oak.segment 26%: app//org.apache.jackrabbit.oak.cache 16%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 3%: app//org.apache.jackrabbit.oak.spi.state . CacheSize 10000 - Reading 100 items with 10000 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10000 --numberOfUsers 10 --cache 10000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5963 All paths: 123545 Oak-Segment-Tar 1 29 30 30 36 43 159 Oak-Segment-Tar 10 57 71 80 104 143 599 Oak-Segment-Tar 20 83 133 213 315 432 468 Oak-Segment-Tar 50 87 414 658 903 1185 399 Profiler: top 5 stack trace(s) of of 21855 ms of 3194 thread dumps: 3194/19775 (16%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 752/19775 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:149) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 441/19775 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:109) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 372/19775 (1%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.putEntriesByPath(PrincipalPermissionEntries.java:90) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:158) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 270/19775 (1%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:149) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 24%: app//org.apache.jackrabbit.oak.segment 20%: app//org.apache.jackrabbit.oak.segment.file 16%: app//org.apache.jackrabbit.oak.commons 15%: app//org.apache.jackrabbit.oak.cache 12%: app//org.apache.jackrabbit.oak.security.authorization.permission . CacheSize 10000 - Reading 100 items with 10000 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10000 --numberOfUsers 100 --cache 10000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 7891 All paths: 123545 Oak-Segment-Tar 1 27 27 28 32 39 174 Oak-Segment-Tar 10 54 77 94 156 349 465 Oak-Segment-Tar 20 89 129 187 337 730 489 Oak-Segment-Tar 50 74 266 504 764 1021 505 Profiler: top 5 stack trace(s) of of 21605 ms of 3097 thread dumps: 3097/17715 (17%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1282/17715 (7%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:149) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 792/17715 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.MapRecord.getKeys(MapRecord.java:326) at app//org.apache.jackrabbit.oak.segment.MapRecord$1.iterator(MapRecord.java:312) at app//com.google.common.collect.Iterables$3.transform(Iterables.java:509) at app//com.google.common.collect.Iterables$3.transform(Iterables.java:506) at app//com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48) at app//com.google.common.collect.Iterators$5.hasNext(Iterators.java:543) at app//com.google.common.collect.TransformedIterator.hasNext(TransformedIterator.java:43) at app//com.google.common.collect.Iterators$7.computeNext(Iterators.java:645) at app//com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143) at app//com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:124) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 389/17715 (2%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:183) at app//org.apache.jackrabbit.oak.spi.security.privilege.JcrAllUtil.denotesDynamicJcrAll(JcrAllUtil.java:70) at app//org.apache.jackrabbit.oak.spi.security.privilege.JcrAllUtil.getPrivilegeBits(JcrAllUtil.java:46) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.createPermissionEntry(PermissionStoreImpl.java:188) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:164) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 339/17715 (1%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:109) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 34%: app//org.apache.jackrabbit.oak.segment 26%: app//org.apache.jackrabbit.oak.cache 17%: app//org.apache.jackrabbit.oak.commons 10%: app//org.apache.jackrabbit.oak.security.authorization.permission 3%: app//com.google.common.collect . CacheSize 10000 - Reading 100 items with 10000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10000 --numberOfUsers 1000 --cache 10000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 7092 All paths: 123545 Oak-Segment-Tar 1 84 95 112 136 195 44 Oak-Segment-Tar 10 180 257 354 450 574 141 Oak-Segment-Tar 20 356 432 540 644 829 196 Oak-Segment-Tar 50 560 943 1265 1626 1882 215 Profiler: top 5 stack trace(s) of of 22518 ms of 3562 thread dumps: 5235/30239 (17%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 5014/30239 (16%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3562/30239 (11%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1532/30239 (5%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1311/30239 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.getEntriesByPath(PrincipalPermissionEntries.java:86) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.load(PermissionEntryCache.java:60) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:148) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$DefaultPermissionCache.getEntries(PermissionCacheBuilder.java:157) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 68%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.commons 7%: app//org.apache.jackrabbit.oak.segment 4%: app//org.apache.jackrabbit.oak.cache 3%: app//org.apache.jackrabbit.oak.segment.file . CacheSize 50000 - Reading 100 items with 1 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1 --numberOfUsers 1 --cache 50000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6720 All paths: 123545 Oak-Segment-Tar 1 1 1 2 3 16 2203 Oak-Segment-Tar 10 1 2 4 8 47 10250 Oak-Segment-Tar 20 1 2 4 17 100 13712 Oak-Segment-Tar 50 1 3 14 33 271 15513 Profiler: top 5 stack trace(s) of of 21190 ms of 3680 thread dumps: 3680/30252 (12%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1628/30252 (5%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 868/30252 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 813/30252 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 752/30252 (2%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 16%: app//org.apache.jackrabbit.oak.segment.file 15%: app//org.apache.jackrabbit.oak.segment 13%: app//org.apache.jackrabbit.oak.commons 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 10%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 50000 - Reading 100 items with 1 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1 --numberOfUsers 10 --cache 50000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6376 All paths: 123545 Oak-Segment-Tar 1 1 1 2 2 5 2751 Oak-Segment-Tar 10 1 2 4 6 29 12537 Oak-Segment-Tar 20 1 4 7 10 85 13526 Oak-Segment-Tar 50 1 3 4 55 370 14619 Profiler: top 5 stack trace(s) of of 21092 ms of 4030 thread dumps: 4126/31716 (13%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 4030/31716 (12%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 749/31716 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 708/31716 (2%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 697/31716 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 33%: app//org.apache.jackrabbit.oak.segment 13%: app//org.apache.jackrabbit.oak.commons 13%: app//org.apache.jackrabbit.oak.segment.scheduler 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 8%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 50000 - Reading 100 items with 1 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1 --numberOfUsers 100 --cache 50000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 7305 All paths: 123545 Oak-Segment-Tar 1 1 2 2 3 13 2072 Oak-Segment-Tar 10 1 3 5 9 33 9577 Oak-Segment-Tar 20 2 5 10 15 84 9656 Oak-Segment-Tar 50 2 14 23 28 157 11079 Profiler: top 5 stack trace(s) of of 21182 ms of 3621 thread dumps: 4422/23043 (19%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3621/23043 (15%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 468/23043 (2%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 456/23043 (1%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 441/23043 (1%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 19%: app//org.apache.jackrabbit.oak.segment.scheduler 16%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.segment.file 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.segment . CacheSize 50000 - Reading 100 items with 1 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1 --numberOfUsers 1000 --cache 50000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6500 All paths: 123545 Oak-Segment-Tar 1 1 2 2 3 6 2094 Oak-Segment-Tar 10 2 3 4 6 26 11139 Oak-Segment-Tar 20 2 4 8 20 70 9848 Oak-Segment-Tar 50 2 4 20 57 183 9732 Profiler: top 5 stack trace(s) of of 21086 ms of 4285 thread dumps: 4285/27267 (15%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1369/27267 (5%): at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1297/27267 (4%): at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getSubject(LoginContextProviderImpl.java:97) at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getLoginContext(LoginContextProviderImpl.java:79) at app//org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:162) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1186/27267 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionUtil.isAdminOrSystem(PermissionUtil.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:163) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 862/27267 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 29%: app//org.apache.jackrabbit.oak.security.authorization.permission 19%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.commons 7%: app//org.apache.jackrabbit.oak.cache 6%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 50000 - Reading 100 items with 10 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10 --numberOfUsers 1 --cache 50000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5565 All paths: 123545 Oak-Segment-Tar 1 1 1 2 2 5 2981 Oak-Segment-Tar 10 1 2 4 6 20 12601 Oak-Segment-Tar 20 1 3 7 14 136 12722 Oak-Segment-Tar 50 1 3 4 53 311 15453 Profiler: top 5 stack trace(s) of of 21087 ms of 3997 thread dumps: 3997/32763 (12%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2734/32763 (8%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 979/32763 (2%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 889/32763 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 859/32763 (2%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 31%: app//org.apache.jackrabbit.oak.segment 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 12%: app//org.apache.jackrabbit.oak.commons 9%: app//org.apache.jackrabbit.oak.plugins.tree.impl 8%: app//org.apache.jackrabbit.oak.segment.scheduler . CacheSize 50000 - Reading 100 items with 10 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10 --numberOfUsers 10 --cache 50000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 7844 All paths: 123545 Oak-Segment-Tar 1 1 2 2 3 9 2100 Oak-Segment-Tar 10 1 3 5 9 29 9405 Oak-Segment-Tar 20 1 4 6 14 78 12352 Oak-Segment-Tar 50 1 3 4 55 316 15501 Profiler: top 5 stack trace(s) of of 21122 ms of 3655 thread dumps: 3655/29025 (12%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 3313/29025 (11%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1047/29025 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 955/29025 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 665/29025 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 23%: app//org.apache.jackrabbit.oak.segment 13%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 11%: app//org.apache.jackrabbit.oak.segment.scheduler 8%: app//org.apache.jackrabbit.oak.cache . CacheSize 50000 - Reading 100 items with 10 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10 --numberOfUsers 100 --cache 50000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5991 All paths: 123545 Oak-Segment-Tar 1 1 1 2 3 5 2702 Oak-Segment-Tar 10 1 2 3 4 23 14428 Oak-Segment-Tar 20 1 3 5 17 99 13044 Oak-Segment-Tar 50 2 3 4 58 249 14861 Profiler: top 5 stack trace(s) of of 21104 ms of 4084 thread dumps: 4084/31263 (13%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1439/31263 (4%): at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getSubject(LoginContextProviderImpl.java:97) at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getLoginContext(LoginContextProviderImpl.java:79) at app//org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:162) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 888/31263 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 868/31263 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 843/31263 (2%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 22%: app//org.apache.jackrabbit.oak.segment 17%: app//org.apache.jackrabbit.oak.security.authorization.permission 16%: app//org.apache.jackrabbit.oak.commons 16%: app//org.apache.jackrabbit.oak.segment.file 7%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 50000 - Reading 100 items with 10 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10 --numberOfUsers 1000 --cache 50000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6634 All paths: 123545 Oak-Segment-Tar 1 1 2 2 3 14 2057 Oak-Segment-Tar 10 2 3 4 7 33 10076 Oak-Segment-Tar 20 2 3 7 19 93 10521 Oak-Segment-Tar 50 2 4 19 56 182 10197 Profiler: top 5 stack trace(s) of of 21083 ms of 4299 thread dumps: 4299/26958 (15%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1393/26958 (5%): at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getSubject(LoginContextProviderImpl.java:97) at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getLoginContext(LoginContextProviderImpl.java:79) at app//org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:162) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1374/26958 (5%): at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1227/26958 (4%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionUtil.isAdminOrSystem(PermissionUtil.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:163) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1010/26958 (3%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 29%: app//org.apache.jackrabbit.oak.security.authorization.permission 26%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.commons 6%: app//org.apache.jackrabbit.oak.plugins.tree.impl 5%: app//org.apache.jackrabbit.oak.security.authentication . CacheSize 50000 - Reading 100 items with 100 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 100 --numberOfUsers 1 --cache 50000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5413 All paths: 123545 Oak-Segment-Tar 1 1 1 2 3 11 2628 Oak-Segment-Tar 10 1 2 4 6 23 12440 Oak-Segment-Tar 20 1 3 5 16 67 12549 Oak-Segment-Tar 50 3 16 19 22 132 13338 Profiler: top 5 stack trace(s) of of 21144 ms of 4023 thread dumps: 4023/32201 (12%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2766/32201 (8%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 989/32201 (3%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 799/32201 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 787/32201 (2%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 34%: app//org.apache.jackrabbit.oak.segment 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 12%: app//org.apache.jackrabbit.oak.commons 8%: app//org.apache.jackrabbit.oak.segment.scheduler 8%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 50000 - Reading 100 items with 100 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 100 --numberOfUsers 10 --cache 50000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5814 All paths: 123545 Oak-Segment-Tar 1 1 1 2 3 12 2490 Oak-Segment-Tar 10 1 2 4 7 37 11027 Oak-Segment-Tar 20 1 3 7 13 68 12914 Oak-Segment-Tar 50 2 3 4 58 340 13705 Profiler: top 5 stack trace(s) of of 21118 ms of 3939 thread dumps: 3939/30384 (12%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 2964/30384 (9%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 745/30384 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 690/30384 (2%): at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getSubject(LoginContextProviderImpl.java:97) at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getLoginContext(LoginContextProviderImpl.java:79) at app//org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:162) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 685/30384 (2%): at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.buildPath(AbstractTree.java:205) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getPath(AbstractTree.java:197) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getPath(ImmutableTree.java:170) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder$PathEntryMapCache.getEntries(PermissionCacheBuilder.java:185) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.getEntries(PermissionEntryProviderImpl.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.getUserEntries(CompiledPermissionImpl.java:603) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.access$1400(CompiledPermissionImpl.java:478) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:655) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$LazyIterator.getNext(CompiledPermissionImpl.java:620) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl$TreePermissionImpl.canRead(CompiledPermissionImpl.java:550) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 15%: app//org.apache.jackrabbit.oak.segment 15%: app//org.apache.jackrabbit.oak.security.authorization.permission 14%: app//org.apache.jackrabbit.oak.segment.file 13%: app//org.apache.jackrabbit.oak.commons 9%: app//org.apache.jackrabbit.oak.segment.scheduler . CacheSize 50000 - Reading 100 items with 100 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 100 --numberOfUsers 100 --cache 50000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5856 All paths: 123545 Oak-Segment-Tar 1 1 1 2 3 9 2295 Oak-Segment-Tar 10 1 3 4 6 27 11750 Oak-Segment-Tar 20 2 4 5 19 80 11454 Oak-Segment-Tar 50 2 4 20 28 253 12132 Profiler: top 5 stack trace(s) of of 21144 ms of 4070 thread dumps: 4070/30895 (13%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1935/30895 (6%): at app//org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.getHeadNodeState(LockBasedScheduler.java:219) at app//org.apache.jackrabbit.oak.segment.SegmentNodeStore.getRoot(SegmentNodeStore.java:198) at app//org.apache.jackrabbit.oak.core.MutableRoot.(MutableRoot.java:164) at app//org.apache.jackrabbit.oak.core.ContentSessionImpl.getLatestRoot(ContentSessionImpl.java:105) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.(SessionDelegate.java:140) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl$1.(RepositoryImpl.java:308) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.createSessionDelegate(RepositoryImpl.java:306) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:283) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 862/30895 (2%): at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getSubject(LoginContextProviderImpl.java:97) at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getLoginContext(LoginContextProviderImpl.java:79) at app//org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:162) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 662/30895 (2%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 657/30895 (2%): at app//org.apache.jackrabbit.oak.segment.file.AbstractFileStore$2$$Lambda$54/0x00000008001e3440.run(Unknown Source) at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:157) at app//org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 27%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 14%: app//org.apache.jackrabbit.oak.security.authorization.permission 7%: app//org.apache.jackrabbit.oak.plugins.tree.impl 6%: app//org.apache.jackrabbit.oak.segment.file . CacheSize 50000 - Reading 100 items with 100 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 100 --numberOfUsers 1000 --cache 50000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 7215 All paths: 123545 Oak-Segment-Tar 1 1 2 2 3 6 1954 Oak-Segment-Tar 10 2 4 5 10 30 8021 Oak-Segment-Tar 20 2 4 7 22 88 9266 Oak-Segment-Tar 50 2 4 15 64 207 9213 Profiler: top 5 stack trace(s) of of 21088 ms of 4150 thread dumps: 4150/25826 (16%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1300/25826 (5%): at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getSubject(LoginContextProviderImpl.java:97) at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getLoginContext(LoginContextProviderImpl.java:79) at app//org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:162) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 922/25826 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionUtil.isAdminOrSystem(PermissionUtil.java:85) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:163) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 843/25826 (3%): at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 741/25826 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionUtil.isAdminOrSystem(PermissionUtil.java:85) at app//org.apache.jackrabbit.oak.security.authorization.AuthorizationConfigurationImpl.getPermissionProvider(AuthorizationConfigurationImpl.java:204) at app//org.apache.jackrabbit.oak.security.authorization.composite.CompositeAuthorizationConfiguration.getPermissionProvider(CompositeAuthorizationConfiguration.java:175) at app//org.apache.jackrabbit.oak.core.MutableRoot$1.createValue(MutableRoot.java:130) at app//org.apache.jackrabbit.oak.core.MutableRoot$1.createValue(MutableRoot.java:127) at app//org.apache.jackrabbit.oak.commons.LazyValue.get(LazyValue.java:56) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 28%: app//org.apache.jackrabbit.oak.security.authorization.permission 22%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.commons 7%: app//org.apache.jackrabbit.oak.cache 6%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 50000 - Reading 100 items with 1000 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1000 --numberOfUsers 1 --cache 50000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6042 All paths: 123545 Oak-Segment-Tar 1 3 3 4 5 10 1129 Oak-Segment-Tar 10 4 7 10 13 26 4999 Oak-Segment-Tar 20 4 8 14 36 119 5381 Oak-Segment-Tar 50 5 9 25 106 368 5659 Profiler: top 5 stack trace(s) of of 21201 ms of 3720 thread dumps: 3720/26498 (14%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 962/26498 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:149) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 547/26498 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:109) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 364/26498 (1%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplateId(SegmentNodeState.java:117) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 339/26498 (1%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.putEntriesByPath(PrincipalPermissionEntries.java:90) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:158) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 40%: app//org.apache.jackrabbit.oak.segment 14%: app//org.apache.jackrabbit.oak.commons 13%: app//org.apache.jackrabbit.oak.security.authorization.permission 10%: app//org.apache.jackrabbit.oak.cache 3%: app//com.google.common.collect . CacheSize 50000 - Reading 100 items with 1000 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1000 --numberOfUsers 10 --cache 50000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5524 All paths: 123545 Oak-Segment-Tar 1 3 3 3 4 8 1432 Oak-Segment-Tar 10 4 7 9 13 34 5239 Oak-Segment-Tar 20 4 8 16 31 124 5592 Oak-Segment-Tar 50 4 8 20 105 407 5796 Profiler: top 5 stack trace(s) of of 21146 ms of 3834 thread dumps: 3834/28427 (13%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 687/28427 (2%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 614/28427 (2%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 613/28427 (2%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:149) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 537/28427 (1%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getProperty(SegmentNodeState.java:218) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.getProperty(ReadOnlyBuilder.java:136) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getProperty(AbstractTree.java:250) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:147) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 48%: app//org.apache.jackrabbit.oak.segment 13%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.security.authorization.permission 6%: app//org.apache.jackrabbit.oak.cache 3%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 50000 - Reading 100 items with 1000 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1000 --numberOfUsers 100 --cache 50000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5527 All paths: 123545 Oak-Segment-Tar 1 3 4 4 5 18 1134 Oak-Segment-Tar 10 5 9 12 18 92 3810 Oak-Segment-Tar 20 5 9 18 43 182 4433 Oak-Segment-Tar 50 4 8 25 116 323 5385 Profiler: top 5 stack trace(s) of of 21172 ms of 3563 thread dumps: 3563/21933 (16%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 951/21933 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:149) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 470/21933 (2%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.MapRecord.getKeys(MapRecord.java:326) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNodeNames(SegmentNodeState.java:472) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.getChildNodeNames(ReadOnlyBuilder.java:100) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getChildNames(AbstractTree.java:145) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getChildren(AbstractTree.java:322) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:124) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 465/21933 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:109) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 406/21933 (1%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:450) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.(MemoryNodeBuilder.java:142) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.(SegmentNodeBuilder.java:100) at app//org.apache.jackrabbit.oak.segment.SegmentNodeBuilder.createChildBuilder(SegmentNodeBuilder.java:156) at app//org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.getChildNode(MemoryNodeBuilder.java:330) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.(SecureNodeBuilder.java:111) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getChildNode(SecureNodeBuilder.java:328) at app//org.apache.jackrabbit.oak.core.MutableTree.getTree(MutableTree.java:288) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:221) at app//org.apache.jackrabbit.oak.core.MutableRoot.getTree(MutableRoot.java:70) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:441) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItem(SessionImpl.java:364) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:150) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 31%: app//org.apache.jackrabbit.oak.segment 21%: app//org.apache.jackrabbit.oak.cache 16%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 4%: app//org.apache.jackrabbit.oak.plugins.tree.impl . CacheSize 50000 - Reading 100 items with 1000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 1000 --numberOfUsers 1000 --cache 50000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6252 All paths: 123545 Oak-Segment-Tar 1 5 5 6 9 17 749 Oak-Segment-Tar 10 9 11 13 15 35 3855 Oak-Segment-Tar 20 6 12 21 49 133 3747 Oak-Segment-Tar 50 7 11 33 135 413 4261 Profiler: top 5 stack trace(s) of of 21127 ms of 3743 thread dumps: 3743/24285 (15%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 915/24285 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getProperty(SegmentNodeState.java:218) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.getProperty(ReadOnlyBuilder.java:136) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getProperty(AbstractTree.java:250) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getLong(TreeUtil.java:193) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.getNumEntries(PermissionStoreImpl.java:112) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:55) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 686/24285 (2%): at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getSubject(LoginContextProviderImpl.java:97) at app//org.apache.jackrabbit.oak.security.authentication.LoginContextProviderImpl.getLoginContext(LoginContextProviderImpl.java:79) at app//org.apache.jackrabbit.oak.core.ContentRepositoryImpl.login(ContentRepositoryImpl.java:162) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:282) at app//org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl.login(RepositoryImpl.java:225) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:592) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$1.run(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.loginSubject(AbstractTest.java:589) at app//org.apache.jackrabbit.oak.benchmark.authorization.permission.EagerCacheSizeTest.getTestSession(EagerCacheSizeTest.java:173) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:139) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 665/24285 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:109) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 373/24285 (1%): at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.getProperty(ReadOnlyBuilder.java:136) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getProperty(AbstractTree.java:250) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.createPermissionEntry(PermissionStoreImpl.java:187) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:164) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 22%: app//org.apache.jackrabbit.oak.segment 21%: app//org.apache.jackrabbit.oak.security.authorization.permission 15%: app//org.apache.jackrabbit.oak.commons 14%: app//org.apache.jackrabbit.oak.cache 6%: app//org.apache.jackrabbit.oak.spi.state . CacheSize 50000 - Reading 100 items with 10000 initial ACEs and 1 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10000 --numberOfUsers 1 --cache 50000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5920 All paths: 123545 Oak-Segment-Tar 1 26 26 28 31 40 177 Oak-Segment-Tar 10 56 60 65 73 114 758 Oak-Segment-Tar 20 58 95 132 180 276 745 Oak-Segment-Tar 50 52 135 375 581 909 700 Profiler: top 5 stack trace(s) of of 21484 ms of 3355 thread dumps: 3355/20870 (16%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1070/20870 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:149) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 714/20870 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.MapRecord.getKeys(MapRecord.java:326) at app//org.apache.jackrabbit.oak.segment.MapRecord$1.iterator(MapRecord.java:312) at app//com.google.common.collect.Iterables$3.transform(Iterables.java:509) at app//com.google.common.collect.Iterables$3.transform(Iterables.java:506) at app//com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48) at app//com.google.common.collect.Iterators$5.hasNext(Iterators.java:543) at app//com.google.common.collect.Iterators$5.hasNext(Iterators.java:542) at app//com.google.common.collect.TransformedIterator.hasNext(TransformedIterator.java:43) at app//com.google.common.collect.Iterators$7.computeNext(Iterators.java:645) at app//com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143) at app//com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:124) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 532/20870 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:109) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 451/20870 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.putEntriesByPath(PrincipalPermissionEntries.java:90) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:158) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 42%: app//org.apache.jackrabbit.oak.segment 17%: app//org.apache.jackrabbit.oak.cache 16%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 3%: app//com.google.common.collect . CacheSize 50000 - Reading 100 items with 10000 initial ACEs and 10 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10000 --numberOfUsers 10 --cache 50000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 6280 All paths: 123545 Oak-Segment-Tar 1 28 28 29 34 42 167 Oak-Segment-Tar 10 63 69 78 89 134 637 Oak-Segment-Tar 20 70 114 161 213 317 627 Oak-Segment-Tar 50 68 228 421 690 1209 583 Profiler: top 5 stack trace(s) of of 21527 ms of 3272 thread dumps: 3272/20478 (15%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 939/20478 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:149) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 494/20478 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:109) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 340/20478 (1%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PrincipalPermissionEntries.putEntriesByPath(PrincipalPermissionEntries.java:90) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:158) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 328/20478 (1%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:183) at app//org.apache.jackrabbit.oak.spi.security.privilege.JcrAllUtil.denotesDynamicJcrAll(JcrAllUtil.java:70) at app//org.apache.jackrabbit.oak.spi.security.privilege.JcrAllUtil.getPrivilegeBits(JcrAllUtil.java:46) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.createPermissionEntry(PermissionStoreImpl.java:188) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:164) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 22%: app//org.apache.jackrabbit.oak.segment.file 19%: app//org.apache.jackrabbit.oak.cache 16%: app//org.apache.jackrabbit.oak.commons 14%: app//org.apache.jackrabbit.oak.segment 10%: app//org.apache.jackrabbit.oak.security.authorization.permission . CacheSize 50000 - Reading 100 items with 10000 initial ACEs and 100 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10000 --numberOfUsers 100 --cache 50000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5549 All paths: 123545 Oak-Segment-Tar 1 26 27 29 33 35 170 Oak-Segment-Tar 10 46 65 73 88 137 663 Oak-Segment-Tar 20 73 112 160 208 292 640 Oak-Segment-Tar 50 62 206 414 669 913 619 Profiler: top 5 stack trace(s) of of 21622 ms of 3392 thread dumps: 3392/21632 (15%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1118/21632 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:149) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 668/21632 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.MapRecord.getKeys(MapRecord.java:326) at app//org.apache.jackrabbit.oak.segment.MapRecord$1.iterator(MapRecord.java:312) at app//com.google.common.collect.Iterables$3.transform(Iterables.java:509) at app//com.google.common.collect.Iterables$3.transform(Iterables.java:506) at app//com.google.common.collect.TransformedIterator.next(TransformedIterator.java:48) at app//com.google.common.collect.Iterators$5.hasNext(Iterators.java:543) at app//com.google.common.collect.TransformedIterator.hasNext(TransformedIterator.java:43) at app//com.google.common.collect.Iterators$7.computeNext(Iterators.java:645) at app//com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143) at app//com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:124) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 567/21632 (2%): at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:181) at app//org.apache.jackrabbit.oak.spi.security.privilege.JcrAllUtil.denotesDynamicJcrAll(JcrAllUtil.java:70) at app//org.apache.jackrabbit.oak.spi.security.privilege.JcrAllUtil.getPrivilegeBits(JcrAllUtil.java:46) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.createPermissionEntry(PermissionStoreImpl.java:188) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:164) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 514/21632 (2%): at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getProperty(SegmentNodeState.java:218) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.getProperty(ReadOnlyBuilder.java:136) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getProperty(AbstractTree.java:250) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:147) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:104) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 46%: app//org.apache.jackrabbit.oak.segment 16%: app//org.apache.jackrabbit.oak.cache 15%: app//org.apache.jackrabbit.oak.commons 10%: app//org.apache.jackrabbit.oak.security.authorization.permission 2%: app//com.google.common.collect . CacheSize 50000 - Reading 100 items with 10000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- java -Xmx2048m -Dprofile=true -Druntime=5 -Dwarmup=1 -jar target/oak-benchmarks-1.20-SNAPSHOT.jar benchmark --itemsToRead 100 --numberOfInitialAce 10000 --numberOfUsers 1000 --cache 50000 --csvFile EagerCacheSizeTest_20191029_141650.csv --concurrency 1,10,20,50 --report false EagerCacheSizeTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # EagerCacheSizeTest C min 10% 50% 90% max N Import deep tree: 5475 All paths: 123545 Oak-Segment-Tar 1 29 30 33 37 49 152 Oak-Segment-Tar 10 57 76 92 124 168 520 Oak-Segment-Tar 20 61 106 157 215 337 633 Oak-Segment-Tar 50 64 206 447 711 1186 574 Profiler: top 5 stack trace(s) of of 21580 ms of 3225 thread dumps: 3225/17978 (17%): at app//org.apache.jackrabbit.oak.commons.Profiler.getRunnableStackTraces(Profiler.java:207) at app//org.apache.jackrabbit.oak.commons.Profiler.tick(Profiler.java:376) at app//org.apache.jackrabbit.oak.commons.Profiler.run(Profiler.java:352) 1144/17978 (6%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:165) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getStringInternal(TreeUtil.java:149) at app//org.apache.jackrabbit.oak.plugins.tree.TreeUtil.getString(TreeUtil.java:134) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:153) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 705/17978 (3%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.MapRecord.getKeys(MapRecord.java:326) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNodeNames(SegmentNodeState.java:472) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.getChildNodeNames(ReadOnlyBuilder.java:100) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getChildNames(AbstractTree.java:145) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.getChildren(AbstractTree.java:322) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:124) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 499/17978 (2%): at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.build(PermissionCacheBuilder.java:109) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:63) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 376/17978 (2%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.access(CacheLIRS.java:911) at app//org.apache.jackrabbit.oak.cache.CacheLIRS$Segment.get(CacheLIRS.java:894) at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:386) at app//org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:115) at app//org.apache.jackrabbit.oak.segment.CachingSegmentReader.readString(CachingSegmentReader.java:101) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:192) at app//org.apache.jackrabbit.oak.segment.SegmentPropertyState.getValue(SegmentPropertyState.java:183) at app//org.apache.jackrabbit.oak.spi.security.privilege.JcrAllUtil.denotesDynamicJcrAll(JcrAllUtil.java:70) at app//org.apache.jackrabbit.oak.spi.security.privilege.JcrAllUtil.getPrivilegeBits(JcrAllUtil.java:46) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.createPermissionEntry(PermissionStoreImpl.java:188) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.loadPermissionEntries(PermissionStoreImpl.java:164) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionStoreImpl.load(PermissionStoreImpl.java:125) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryCache.getFullyLoadedEntries(PermissionEntryCache.java:42) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionCacheBuilder.init(PermissionCacheBuilder.java:64) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.init(PermissionEntryProviderImpl.java:62) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionEntryProviderImpl.(PermissionEntryProviderImpl.java:57) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.(CompiledPermissionImpl.java:113) at app//org.apache.jackrabbit.oak.security.authorization.permission.CompiledPermissionImpl.create(CompiledPermissionImpl.java:137) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getCompiledPermissions(PermissionProviderImpl.java:166) at app//org.apache.jackrabbit.oak.security.authorization.permission.PermissionProviderImpl.getTreePermission(PermissionProviderImpl.java:108) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:357) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getTreePermission(SecureNodeBuilder.java:360) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.access$100(SecureNodeBuilder.java:46) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder$ReadablePropertyPredicate.apply(SecureNodeBuilder.java:383) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.getProperty(SecureNodeBuilder.java:179) at app//org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasProperty(SecureNodeBuilder.java:188) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.core.MutableTree.hasProperty(MutableTree.java:132) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getItem(SessionDelegate.java:446) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemInternal(SessionImpl.java:167) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.access$400(SessionImpl.java:82) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:229) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$3.performNullable(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performNullable(SessionDelegate.java:242) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getItemOrNull(SessionImpl.java:226) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.itemExists(SessionImpl.java:373) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.randomRead(ReadDeepTreeTest.java:149) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) summary: 31%: app//org.apache.jackrabbit.oak.segment 25%: app//org.apache.jackrabbit.oak.cache 17%: app//org.apache.jackrabbit.oak.commons 12%: app//org.apache.jackrabbit.oak.security.authorization.permission 3%: app//org.apache.jackrabbit.oak.spi.state . ----------------------------------------- Benchmark completed. see EagerCacheSizeTest_20191029_141650.csv for details: Benchmarks: EagerCacheSizeTest Fixture: Oak-Segment-Tar Runtime: 5 Concurrency: 1,10,20,50 Profiling: true Items to Read: 100 Number of ACEs: 1 10 100 1000 10000 Number of Principals: 1 10 100 1000 EagerCacheSize: 250 1000 5000 10000 50000 CompositionType: -------------------------------------- CacheSize 250 - Reading 100 items with 1 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 5, 17, 1699 Oak-Segment-Tar , 10, 1, 2, 4, 7, 24, 12006 Oak-Segment-Tar , 20, 2, 5, 7, 11, 78, 12880 Oak-Segment-Tar , 50, 2, 13, 16, 23, 98, 14931 CacheSize 250 - Reading 100 items with 1 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 2, 10, 2801 Oak-Segment-Tar , 10, 1, 2, 3, 5, 23, 13484 Oak-Segment-Tar , 20, 1, 3, 4, 15, 74, 14292 Oak-Segment-Tar , 50, 2, 14, 17, 21, 88, 14256 CacheSize 250 - Reading 100 items with 1 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 2, 6, 2981 Oak-Segment-Tar , 10, 1, 2, 4, 8, 27, 11496 Oak-Segment-Tar , 20, 1, 3, 4, 16, 75, 13729 Oak-Segment-Tar , 50, 1, 4, 17, 22, 219, 14113 CacheSize 250 - Reading 100 items with 1 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 2, 2, 3, 9, 2117 Oak-Segment-Tar , 10, 2, 4, 5, 7, 34, 9511 Oak-Segment-Tar , 20, 2, 4, 8, 18, 95, 10501 Oak-Segment-Tar , 50, 2, 4, 19, 52, 182, 10487 CacheSize 250 - Reading 100 items with 10 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 2, 7, 2866 Oak-Segment-Tar , 10, 1, 2, 3, 6, 23, 13257 Oak-Segment-Tar , 20, 1, 3, 7, 11, 71, 14339 Oak-Segment-Tar , 50, 1, 13, 16, 19, 175, 15440 CacheSize 250 - Reading 100 items with 10 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 3, 6, 2493 Oak-Segment-Tar , 10, 1, 2, 3, 5, 21, 13166 Oak-Segment-Tar , 20, 1, 3, 5, 13, 138, 14128 Oak-Segment-Tar , 50, 1, 4, 17, 20, 183, 14738 CacheSize 250 - Reading 100 items with 10 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 2, 2, 3, 11, 2179 Oak-Segment-Tar , 10, 1, 2, 4, 6, 27, 12514 Oak-Segment-Tar , 20, 1, 3, 5, 16, 94, 13412 Oak-Segment-Tar , 50, 1, 3, 14, 36, 284, 14672 CacheSize 250 - Reading 100 items with 10 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 2, 2, 3, 10, 2067 Oak-Segment-Tar , 10, 2, 3, 4, 6, 30, 10835 Oak-Segment-Tar , 20, 2, 4, 8, 20, 56, 9575 Oak-Segment-Tar , 50, 2, 4, 20, 57, 195, 9802 CacheSize 250 - Reading 100 items with 100 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 2, 2, 3, 7, 2258 Oak-Segment-Tar , 10, 1, 3, 4, 6, 31, 11776 Oak-Segment-Tar , 20, 2, 3, 7, 15, 67, 11946 Oak-Segment-Tar , 50, 2, 3, 4, 61, 271, 13780 CacheSize 250 - Reading 100 items with 100 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 3, 10, 2374 Oak-Segment-Tar , 10, 1, 3, 4, 8, 31, 10582 Oak-Segment-Tar , 20, 1, 4, 8, 13, 74, 11920 Oak-Segment-Tar , 50, 2, 14, 18, 22, 124, 13894 CacheSize 250 - Reading 100 items with 100 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 2, 3, 4, 17, 1543 Oak-Segment-Tar , 10, 2, 3, 4, 7, 25, 10315 Oak-Segment-Tar , 20, 1, 3, 6, 18, 130, 11081 Oak-Segment-Tar , 50, 2, 3, 5, 66, 245, 12565 CacheSize 250 - Reading 100 items with 100 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 2, 2, 3, 4, 15, 1703 Oak-Segment-Tar , 10, 2, 4, 6, 10, 36, 7533 Oak-Segment-Tar , 20, 2, 5, 9, 23, 91, 8326 Oak-Segment-Tar , 50, 2, 5, 19, 63, 212, 8901 CacheSize 250 - Reading 100 items with 1000 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 2, 2, 3, 6, 2142 Oak-Segment-Tar , 10, 1, 3, 4, 7, 24, 10438 Oak-Segment-Tar , 20, 2, 3, 7, 15, 105, 11678 Oak-Segment-Tar , 50, 2, 4, 5, 62, 348, 11943 CacheSize 250 - Reading 100 items with 1000 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 2, 2, 3, 4, 8, 1783 Oak-Segment-Tar , 10, 2, 4, 6, 8, 27, 8521 Oak-Segment-Tar , 20, 3, 5, 10, 24, 105, 7907 Oak-Segment-Tar , 50, 3, 5, 9, 86, 295, 9078 CacheSize 250 - Reading 100 items with 1000 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 7, 8, 10, 13, 19, 487 Oak-Segment-Tar , 10, 9, 14, 17, 24, 37, 2766 Oak-Segment-Tar , 20, 8, 17, 31, 59, 156, 2856 Oak-Segment-Tar , 50, 12, 18, 68, 174, 347, 3056 CacheSize 250 - Reading 100 items with 1000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 51, 54, 60, 76, 105, 81 Oak-Segment-Tar , 10, 114, 144, 193, 230, 270, 265 Oak-Segment-Tar , 20, 158, 245, 326, 400, 453, 314 Oak-Segment-Tar , 50, 123, 361, 573, 794, 1053, 461 CacheSize 250 - Reading 100 items with 10000 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 2, 2, 3, 11, 1952 Oak-Segment-Tar , 10, 2, 4, 5, 8, 25, 9114 Oak-Segment-Tar , 20, 2, 4, 8, 18, 77, 10237 Oak-Segment-Tar , 50, 2, 4, 6, 72, 242, 10985 CacheSize 250 - Reading 100 items with 10000 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 2, 3, 4, 4, 11, 1371 Oak-Segment-Tar , 10, 3, 6, 8, 12, 32, 5985 Oak-Segment-Tar , 20, 3, 5, 9, 28, 104, 7439 Oak-Segment-Tar , 50, 3, 6, 21, 75, 425, 7947 CacheSize 250 - Reading 100 items with 10000 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 10, 13, 15, 18, 26, 325 Oak-Segment-Tar , 10, 22, 28, 32, 41, 66, 1511 Oak-Segment-Tar , 20, 24, 38, 66, 103, 204, 1448 Oak-Segment-Tar , 50, 24, 33, 126, 247, 487, 1819 CacheSize 250 - Reading 100 items with 10000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 80, 92, 103, 138, 141, 47 Oak-Segment-Tar , 10, 202, 229, 269, 338, 404, 185 Oak-Segment-Tar , 20, 298, 422, 533, 628, 771, 201 Oak-Segment-Tar , 50, 413, 726, 1044, 1424, 1806, 257 CacheSize 1000 - Reading 100 items with 1 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 2, 5, 2919 Oak-Segment-Tar , 10, 1, 2, 4, 8, 39, 10726 Oak-Segment-Tar , 20, 1, 5, 7, 9, 61, 14523 Oak-Segment-Tar , 50, 1, 3, 4, 45, 418, 15575 CacheSize 1000 - Reading 100 items with 1 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 2, 7, 2753 Oak-Segment-Tar , 10, 1, 2, 3, 5, 21, 13864 Oak-Segment-Tar , 20, 1, 3, 6, 14, 81, 13346 Oak-Segment-Tar , 50, 1, 3, 4, 57, 266, 14683 CacheSize 1000 - Reading 100 items with 1 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 3, 11, 2611 Oak-Segment-Tar , 10, 1, 3, 3, 5, 22, 13654 Oak-Segment-Tar , 20, 1, 3, 4, 17, 101, 13302 Oak-Segment-Tar , 50, 1, 3, 18, 24, 94, 13174 CacheSize 1000 - Reading 100 items with 1 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 2, 2, 3, 8, 2110 Oak-Segment-Tar , 10, 2, 3, 5, 9, 28, 9030 Oak-Segment-Tar , 20, 2, 4, 8, 19, 58, 10201 Oak-Segment-Tar , 50, 2, 4, 19, 58, 184, 9665 CacheSize 1000 - Reading 100 items with 10 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 2, 5, 2976 Oak-Segment-Tar , 10, 1, 2, 4, 8, 28, 11125 Oak-Segment-Tar , 20, 1, 5, 7, 10, 49, 14123 Oak-Segment-Tar , 50, 1, 13, 17, 21, 115, 14828 CacheSize 1000 - Reading 100 items with 10 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 3, 7, 2614 Oak-Segment-Tar , 10, 1, 2, 4, 6, 25, 12354 Oak-Segment-Tar , 20, 1, 3, 6, 10, 80, 14873 Oak-Segment-Tar , 50, 1, 3, 4, 53, 277, 15507 CacheSize 1000 - Reading 100 items with 10 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 2, 4, 2739 Oak-Segment-Tar , 10, 1, 2, 3, 5, 17, 13895 Oak-Segment-Tar , 20, 1, 5, 7, 9, 50, 13763 Oak-Segment-Tar , 50, 2, 14, 17, 20, 148, 14499 CacheSize 1000 - Reading 100 items with 10 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 2, 3, 4, 10, 1643 Oak-Segment-Tar , 10, 2, 4, 5, 7, 21, 9835 Oak-Segment-Tar , 20, 2, 3, 7, 18, 61, 10532 Oak-Segment-Tar , 50, 2, 4, 21, 54, 197, 10010 CacheSize 1000 - Reading 100 items with 100 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 2, 7, 2669 Oak-Segment-Tar , 10, 1, 3, 5, 14, 79, 6925 Oak-Segment-Tar , 20, 1, 3, 8, 14, 71, 11653 Oak-Segment-Tar , 50, 1, 3, 19, 30, 240, 12200 CacheSize 1000 - Reading 100 items with 100 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 2, 5, 2721 Oak-Segment-Tar , 10, 1, 2, 4, 8, 28, 11027 Oak-Segment-Tar , 20, 1, 3, 7, 10, 84, 13000 Oak-Segment-Tar , 50, 1, 3, 16, 44, 263, 11888 CacheSize 1000 - Reading 100 items with 100 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 2, 3, 5, 14, 1566 Oak-Segment-Tar , 10, 1, 3, 4, 8, 50, 9651 Oak-Segment-Tar , 20, 2, 3, 5, 19, 79, 12001 Oak-Segment-Tar , 50, 2, 3, 8, 50, 437, 12750 CacheSize 1000 - Reading 100 items with 100 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 2, 2, 3, 3, 11, 1891 Oak-Segment-Tar , 10, 2, 4, 5, 7, 25, 9297 Oak-Segment-Tar , 20, 2, 4, 9, 23, 79, 8662 Oak-Segment-Tar , 50, 2, 4, 14, 63, 248, 9169 CacheSize 1000 - Reading 100 items with 1000 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 3, 3, 4, 5, 11, 1156 Oak-Segment-Tar , 10, 5, 8, 10, 13, 30, 4672 Oak-Segment-Tar , 20, 5, 9, 21, 51, 206, 3714 Oak-Segment-Tar , 50, 4, 10, 47, 131, 366, 4195 CacheSize 1000 - Reading 100 items with 1000 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 3, 3, 4, 5, 10, 1186 Oak-Segment-Tar , 10, 4, 7, 9, 13, 38, 5294 Oak-Segment-Tar , 20, 4, 7, 14, 36, 133, 5394 Oak-Segment-Tar , 50, 5, 10, 38, 50, 302, 6395 CacheSize 1000 - Reading 100 items with 1000 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 8, 9, 10, 12, 17, 486 Oak-Segment-Tar , 10, 11, 16, 19, 23, 38, 2629 Oak-Segment-Tar , 20, 12, 21, 40, 72, 136, 2331 Oak-Segment-Tar , 50, 11, 20, 83, 191, 566, 2610 CacheSize 1000 - Reading 100 items with 1000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 41, 44, 49, 64, 103, 98 Oak-Segment-Tar , 10, 85, 108, 152, 179, 256, 341 Oak-Segment-Tar , 20, 120, 194, 285, 339, 401, 370 Oak-Segment-Tar , 50, 90, 286, 464, 648, 840, 571 CacheSize 1000 - Reading 100 items with 10000 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 2, 2, 3, 7, 2008 Oak-Segment-Tar , 10, 2, 4, 5, 6, 18, 9836 Oak-Segment-Tar , 20, 2, 5, 6, 23, 69, 9389 Oak-Segment-Tar , 50, 2, 4, 5, 84, 473, 10219 CacheSize 1000 - Reading 100 items with 10000 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 2, 3, 4, 5, 58, 1218 Oak-Segment-Tar , 10, 3, 5, 7, 10, 32, 6579 Oak-Segment-Tar , 20, 3, 6, 11, 30, 115, 6610 Oak-Segment-Tar , 50, 3, 6, 10, 91, 391, 7541 CacheSize 1000 - Reading 100 items with 10000 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 9, 11, 12, 14, 21, 412 Oak-Segment-Tar , 10, 17, 24, 29, 39, 81, 1666 Oak-Segment-Tar , 20, 16, 26, 52, 87, 294, 1790 Oak-Segment-Tar , 50, 17, 26, 116, 271, 666, 1862 CacheSize 1000 - Reading 100 items with 10000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 77, 82, 90, 114, 179, 53 Oak-Segment-Tar , 10, 184, 212, 251, 336, 387, 195 Oak-Segment-Tar , 20, 260, 337, 440, 584, 692, 231 Oak-Segment-Tar , 50, 253, 664, 1026, 1415, 1811, 267 CacheSize 5000 - Reading 100 items with 1 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 2, 4, 3231 Oak-Segment-Tar , 10, 1, 2, 3, 5, 28, 14469 Oak-Segment-Tar , 20, 1, 2, 5, 15, 97, 14204 Oak-Segment-Tar , 50, 1, 3, 4, 52, 316, 15327 CacheSize 5000 - Reading 100 items with 1 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 2, 7, 3098 Oak-Segment-Tar , 10, 1, 2, 3, 4, 25, 15026 Oak-Segment-Tar , 20, 1, 2, 4, 15, 96, 14300 Oak-Segment-Tar , 50, 1, 3, 4, 57, 249, 14786 CacheSize 5000 - Reading 100 items with 1 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 2, 4, 3193 Oak-Segment-Tar , 10, 1, 2, 3, 4, 27, 14706 Oak-Segment-Tar , 20, 1, 2, 4, 17, 104, 13794 Oak-Segment-Tar , 50, 1, 3, 4, 57, 378, 14658 CacheSize 5000 - Reading 100 items with 1 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 2, 2, 3, 5, 2451 Oak-Segment-Tar , 10, 2, 3, 4, 6, 32, 11210 Oak-Segment-Tar , 20, 2, 3, 6, 20, 137, 10349 Oak-Segment-Tar , 50, 2, 3, 17, 57, 196, 10288 CacheSize 5000 - Reading 100 items with 10 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 2, 5, 3003 Oak-Segment-Tar , 10, 1, 2, 3, 5, 33, 14342 Oak-Segment-Tar , 20, 1, 2, 4, 17, 90, 13774 Oak-Segment-Tar , 50, 1, 2, 4, 54, 380, 15283 CacheSize 5000 - Reading 100 items with 10 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 2, 8, 3123 Oak-Segment-Tar , 10, 1, 2, 3, 5, 31, 14846 Oak-Segment-Tar , 20, 1, 3, 7, 10, 81, 14171 Oak-Segment-Tar , 50, 1, 3, 4, 55, 262, 15044 CacheSize 5000 - Reading 100 items with 10 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 2, 7, 3058 Oak-Segment-Tar , 10, 1, 2, 3, 4, 22, 15463 Oak-Segment-Tar , 20, 1, 2, 4, 17, 103, 13990 Oak-Segment-Tar , 50, 1, 3, 4, 35, 301, 14834 CacheSize 5000 - Reading 100 items with 10 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 2, 2, 3, 6, 2294 Oak-Segment-Tar , 10, 2, 3, 4, 5, 16, 11512 Oak-Segment-Tar , 20, 2, 3, 7, 20, 84, 10163 Oak-Segment-Tar , 50, 2, 3, 18, 58, 201, 10269 CacheSize 5000 - Reading 100 items with 100 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 2, 7, 2775 Oak-Segment-Tar , 10, 1, 3, 4, 5, 20, 13453 Oak-Segment-Tar , 20, 2, 6, 8, 9, 39, 12702 Oak-Segment-Tar , 50, 2, 3, 4, 63, 324, 13478 CacheSize 5000 - Reading 100 items with 100 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 2, 7, 2745 Oak-Segment-Tar , 10, 1, 2, 4, 5, 22, 12777 Oak-Segment-Tar , 20, 2, 3, 7, 15, 129, 12342 Oak-Segment-Tar , 50, 2, 16, 19, 22, 110, 13117 CacheSize 5000 - Reading 100 items with 100 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 3, 7, 2452 Oak-Segment-Tar , 10, 1, 3, 4, 6, 27, 11952 Oak-Segment-Tar , 20, 2, 3, 5, 20, 97, 12106 Oak-Segment-Tar , 50, 2, 4, 20, 24, 371, 12408 CacheSize 5000 - Reading 100 items with 100 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 2, 2, 3, 8, 2039 Oak-Segment-Tar , 10, 2, 4, 5, 7, 43, 9402 Oak-Segment-Tar , 20, 2, 4, 7, 23, 79, 9002 Oak-Segment-Tar , 50, 2, 4, 13, 70, 259, 8968 CacheSize 5000 - Reading 100 items with 1000 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 3, 3, 4, 5, 7, 1289 Oak-Segment-Tar , 10, 4, 7, 9, 11, 32, 5494 Oak-Segment-Tar , 20, 7, 15, 20, 28, 58, 4713 Oak-Segment-Tar , 50, 4, 8, 17, 113, 431, 5702 CacheSize 5000 - Reading 100 items with 1000 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 2, 3, 3, 4, 6, 1470 Oak-Segment-Tar , 10, 4, 6, 9, 15, 41, 4956 Oak-Segment-Tar , 20, 4, 7, 14, 39, 118, 5184 Oak-Segment-Tar , 50, 6, 13, 60, 143, 411, 3566 CacheSize 5000 - Reading 100 items with 1000 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 3, 4, 5, 8, 18, 886 Oak-Segment-Tar , 10, 5, 8, 11, 19, 44, 4002 Oak-Segment-Tar , 20, 4, 9, 19, 48, 153, 4054 Oak-Segment-Tar , 50, 4, 8, 36, 55, 299, 6460 CacheSize 5000 - Reading 100 items with 1000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 5, 6, 6, 8, 18, 744 Oak-Segment-Tar , 10, 8, 11, 13, 16, 31, 3763 Oak-Segment-Tar , 20, 7, 12, 24, 51, 142, 3547 Oak-Segment-Tar , 50, 7, 13, 48, 128, 357, 4065 CacheSize 5000 - Reading 100 items with 10000 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 2, 2, 3, 8, 2282 Oak-Segment-Tar , 10, 2, 3, 5, 9, 22, 9219 Oak-Segment-Tar , 20, 2, 4, 7, 25, 147, 8657 Oak-Segment-Tar , 50, 2, 4, 20, 34, 250, 11044 CacheSize 5000 - Reading 100 items with 10000 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 2, 3, 3, 4, 12, 1379 Oak-Segment-Tar , 10, 3, 5, 7, 10, 34, 6961 Oak-Segment-Tar , 20, 3, 6, 12, 27, 107, 6840 Oak-Segment-Tar , 50, 5, 27, 32, 37, 90, 7866 CacheSize 5000 - Reading 100 items with 10000 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 10, 11, 12, 16, 25, 389 Oak-Segment-Tar , 10, 19, 25, 29, 37, 65, 1659 Oak-Segment-Tar , 20, 25, 38, 64, 110, 249, 1416 Oak-Segment-Tar , 50, 23, 33, 128, 231, 409, 1917 CacheSize 5000 - Reading 100 items with 10000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 66, 73, 80, 86, 107, 63 Oak-Segment-Tar , 10, 136, 183, 219, 254, 307, 232 Oak-Segment-Tar , 20, 242, 322, 391, 501, 625, 259 Oak-Segment-Tar , 50, 255, 602, 884, 1180, 1648, 308 CacheSize 10000 - Reading 100 items with 1 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 2, 10, 3122 Oak-Segment-Tar , 10, 1, 2, 3, 5, 21, 14396 Oak-Segment-Tar , 20, 2, 6, 7, 8, 24, 14659 Oak-Segment-Tar , 50, 1, 3, 4, 52, 314, 15767 CacheSize 10000 - Reading 100 items with 1 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 2, 7, 2746 Oak-Segment-Tar , 10, 1, 2, 3, 6, 48, 13269 Oak-Segment-Tar , 20, 1, 3, 7, 11, 98, 13539 Oak-Segment-Tar , 50, 1, 3, 3, 55, 265, 15649 CacheSize 10000 - Reading 100 items with 1 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 3, 12, 2656 Oak-Segment-Tar , 10, 1, 2, 3, 5, 29, 13420 Oak-Segment-Tar , 20, 1, 3, 6, 15, 125, 12839 Oak-Segment-Tar , 50, 1, 3, 4, 64, 271, 14042 CacheSize 10000 - Reading 100 items with 1 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 2, 3, 4, 9, 1675 Oak-Segment-Tar , 10, 2, 4, 5, 10, 44, 7958 Oak-Segment-Tar , 20, 2, 4, 10, 27, 129, 7715 Oak-Segment-Tar , 50, 2, 4, 21, 61, 205, 9111 CacheSize 10000 - Reading 100 items with 10 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 3, 11, 2202 Oak-Segment-Tar , 10, 1, 3, 6, 12, 99, 7132 Oak-Segment-Tar , 20, 1, 2, 5, 18, 96, 12181 Oak-Segment-Tar , 50, 2, 13, 18, 32, 137, 12126 CacheSize 10000 - Reading 100 items with 10 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 4, 9, 2196 Oak-Segment-Tar , 10, 1, 3, 4, 9, 52, 9377 Oak-Segment-Tar , 20, 1, 4, 10, 16, 63, 9686 Oak-Segment-Tar , 50, 1, 3, 6, 52, 248, 14150 CacheSize 10000 - Reading 100 items with 10 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 3, 10, 2396 Oak-Segment-Tar , 10, 1, 2, 3, 6, 19, 13053 Oak-Segment-Tar , 20, 1, 3, 6, 15, 72, 12611 Oak-Segment-Tar , 50, 2, 3, 4, 56, 317, 14959 CacheSize 10000 - Reading 100 items with 10 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 2, 3, 4, 16, 1718 Oak-Segment-Tar , 10, 2, 4, 6, 15, 94, 6256 Oak-Segment-Tar , 20, 2, 3, 8, 26, 113, 8278 Oak-Segment-Tar , 50, 2, 4, 18, 55, 205, 10115 CacheSize 10000 - Reading 100 items with 100 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 2, 9, 2676 Oak-Segment-Tar , 10, 1, 3, 4, 8, 23, 10529 Oak-Segment-Tar , 20, 2, 6, 8, 14, 49, 11622 Oak-Segment-Tar , 50, 2, 3, 19, 56, 236, 9799 CacheSize 10000 - Reading 100 items with 100 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 2, 2, 4, 7, 1978 Oak-Segment-Tar , 10, 2, 5, 9, 16, 71, 5046 Oak-Segment-Tar , 20, 1, 2, 5, 20, 101, 11541 Oak-Segment-Tar , 50, 1, 3, 16, 32, 331, 13532 CacheSize 10000 - Reading 100 items with 100 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 4, 11, 2012 Oak-Segment-Tar , 10, 1, 3, 4, 7, 20, 11329 Oak-Segment-Tar , 20, 2, 4, 8, 19, 148, 10251 Oak-Segment-Tar , 50, 2, 4, 6, 64, 357, 11764 CacheSize 10000 - Reading 100 items with 100 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 2, 3, 4, 6, 14, 1293 Oak-Segment-Tar , 10, 2, 5, 8, 16, 60, 5356 Oak-Segment-Tar , 20, 2, 4, 12, 32, 116, 6422 Oak-Segment-Tar , 50, 2, 4, 21, 78, 316, 7784 CacheSize 10000 - Reading 100 items with 1000 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 3, 4, 5, 7, 15, 991 Oak-Segment-Tar , 10, 5, 8, 11, 30, 136, 3177 Oak-Segment-Tar , 20, 5, 8, 18, 46, 187, 4294 Oak-Segment-Tar , 50, 5, 9, 47, 135, 405, 4027 CacheSize 10000 - Reading 100 items with 1000 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 3, 4, 4, 12, 42, 840 Oak-Segment-Tar , 10, 4, 7, 9, 13, 31, 5195 Oak-Segment-Tar , 20, 4, 7, 16, 40, 140, 4914 Oak-Segment-Tar , 50, 4, 8, 38, 89, 342, 5858 CacheSize 10000 - Reading 100 items with 1000 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 3, 4, 4, 7, 21, 989 Oak-Segment-Tar , 10, 5, 8, 11, 30, 155, 3115 Oak-Segment-Tar , 20, 6, 10, 27, 76, 306, 2740 Oak-Segment-Tar , 50, 7, 14, 63, 162, 446, 3239 CacheSize 10000 - Reading 100 items with 1000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 5, 5, 6, 7, 12, 820 Oak-Segment-Tar , 10, 9, 12, 15, 38, 167, 2364 Oak-Segment-Tar , 20, 6, 14, 41, 107, 265, 1936 Oak-Segment-Tar , 50, 7, 16, 75, 181, 454, 2853 CacheSize 10000 - Reading 100 items with 10000 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 26, 26, 29, 50, 93, 145 Oak-Segment-Tar , 10, 48, 60, 69, 90, 132, 694 Oak-Segment-Tar , 20, 56, 90, 155, 317, 455, 563 Oak-Segment-Tar , 50, 58, 215, 406, 630, 906, 622 CacheSize 10000 - Reading 100 items with 10000 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 29, 30, 30, 36, 43, 159 Oak-Segment-Tar , 10, 57, 71, 80, 104, 143, 599 Oak-Segment-Tar , 20, 83, 133, 213, 315, 432, 468 Oak-Segment-Tar , 50, 87, 414, 658, 903, 1185, 399 CacheSize 10000 - Reading 100 items with 10000 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 27, 27, 28, 32, 39, 174 Oak-Segment-Tar , 10, 54, 77, 94, 156, 349, 465 Oak-Segment-Tar , 20, 89, 129, 187, 337, 730, 489 Oak-Segment-Tar , 50, 74, 266, 504, 764, 1021, 505 CacheSize 10000 - Reading 100 items with 10000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 84, 95, 112, 136, 195, 44 Oak-Segment-Tar , 10, 180, 257, 354, 450, 574, 141 Oak-Segment-Tar , 20, 356, 432, 540, 644, 829, 196 Oak-Segment-Tar , 50, 560, 943, 1265, 1626, 1882, 215 CacheSize 50000 - Reading 100 items with 1 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 3, 16, 2203 Oak-Segment-Tar , 10, 1, 2, 4, 8, 47, 10250 Oak-Segment-Tar , 20, 1, 2, 4, 17, 100, 13712 Oak-Segment-Tar , 50, 1, 3, 14, 33, 271, 15513 CacheSize 50000 - Reading 100 items with 1 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 2, 5, 2751 Oak-Segment-Tar , 10, 1, 2, 4, 6, 29, 12537 Oak-Segment-Tar , 20, 1, 4, 7, 10, 85, 13526 Oak-Segment-Tar , 50, 1, 3, 4, 55, 370, 14619 CacheSize 50000 - Reading 100 items with 1 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 2, 2, 3, 13, 2072 Oak-Segment-Tar , 10, 1, 3, 5, 9, 33, 9577 Oak-Segment-Tar , 20, 2, 5, 10, 15, 84, 9656 Oak-Segment-Tar , 50, 2, 14, 23, 28, 157, 11079 CacheSize 50000 - Reading 100 items with 1 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 2, 2, 3, 6, 2094 Oak-Segment-Tar , 10, 2, 3, 4, 6, 26, 11139 Oak-Segment-Tar , 20, 2, 4, 8, 20, 70, 9848 Oak-Segment-Tar , 50, 2, 4, 20, 57, 183, 9732 CacheSize 50000 - Reading 100 items with 10 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 2, 5, 2981 Oak-Segment-Tar , 10, 1, 2, 4, 6, 20, 12601 Oak-Segment-Tar , 20, 1, 3, 7, 14, 136, 12722 Oak-Segment-Tar , 50, 1, 3, 4, 53, 311, 15453 CacheSize 50000 - Reading 100 items with 10 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 2, 2, 3, 9, 2100 Oak-Segment-Tar , 10, 1, 3, 5, 9, 29, 9405 Oak-Segment-Tar , 20, 1, 4, 6, 14, 78, 12352 Oak-Segment-Tar , 50, 1, 3, 4, 55, 316, 15501 CacheSize 50000 - Reading 100 items with 10 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 3, 5, 2702 Oak-Segment-Tar , 10, 1, 2, 3, 4, 23, 14428 Oak-Segment-Tar , 20, 1, 3, 5, 17, 99, 13044 Oak-Segment-Tar , 50, 2, 3, 4, 58, 249, 14861 CacheSize 50000 - Reading 100 items with 10 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 2, 2, 3, 14, 2057 Oak-Segment-Tar , 10, 2, 3, 4, 7, 33, 10076 Oak-Segment-Tar , 20, 2, 3, 7, 19, 93, 10521 Oak-Segment-Tar , 50, 2, 4, 19, 56, 182, 10197 CacheSize 50000 - Reading 100 items with 100 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 3, 11, 2628 Oak-Segment-Tar , 10, 1, 2, 4, 6, 23, 12440 Oak-Segment-Tar , 20, 1, 3, 5, 16, 67, 12549 Oak-Segment-Tar , 50, 3, 16, 19, 22, 132, 13338 CacheSize 50000 - Reading 100 items with 100 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 3, 12, 2490 Oak-Segment-Tar , 10, 1, 2, 4, 7, 37, 11027 Oak-Segment-Tar , 20, 1, 3, 7, 13, 68, 12914 Oak-Segment-Tar , 50, 2, 3, 4, 58, 340, 13705 CacheSize 50000 - Reading 100 items with 100 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 1, 2, 3, 9, 2295 Oak-Segment-Tar , 10, 1, 3, 4, 6, 27, 11750 Oak-Segment-Tar , 20, 2, 4, 5, 19, 80, 11454 Oak-Segment-Tar , 50, 2, 4, 20, 28, 253, 12132 CacheSize 50000 - Reading 100 items with 100 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 1, 2, 2, 3, 6, 1954 Oak-Segment-Tar , 10, 2, 4, 5, 10, 30, 8021 Oak-Segment-Tar , 20, 2, 4, 7, 22, 88, 9266 Oak-Segment-Tar , 50, 2, 4, 15, 64, 207, 9213 CacheSize 50000 - Reading 100 items with 1000 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 3, 3, 4, 5, 10, 1129 Oak-Segment-Tar , 10, 4, 7, 10, 13, 26, 4999 Oak-Segment-Tar , 20, 4, 8, 14, 36, 119, 5381 Oak-Segment-Tar , 50, 5, 9, 25, 106, 368, 5659 CacheSize 50000 - Reading 100 items with 1000 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 3, 3, 3, 4, 8, 1432 Oak-Segment-Tar , 10, 4, 7, 9, 13, 34, 5239 Oak-Segment-Tar , 20, 4, 8, 16, 31, 124, 5592 Oak-Segment-Tar , 50, 4, 8, 20, 105, 407, 5796 CacheSize 50000 - Reading 100 items with 1000 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 3, 4, 4, 5, 18, 1134 Oak-Segment-Tar , 10, 5, 9, 12, 18, 92, 3810 Oak-Segment-Tar , 20, 5, 9, 18, 43, 182, 4433 Oak-Segment-Tar , 50, 4, 8, 25, 116, 323, 5385 CacheSize 50000 - Reading 100 items with 1000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 5, 5, 6, 9, 17, 749 Oak-Segment-Tar , 10, 9, 11, 13, 15, 35, 3855 Oak-Segment-Tar , 20, 6, 12, 21, 49, 133, 3747 Oak-Segment-Tar , 50, 7, 11, 33, 135, 413, 4261 CacheSize 50000 - Reading 100 items with 10000 initial ACEs and 1 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 26, 26, 28, 31, 40, 177 Oak-Segment-Tar , 10, 56, 60, 65, 73, 114, 758 Oak-Segment-Tar , 20, 58, 95, 132, 180, 276, 745 Oak-Segment-Tar , 50, 52, 135, 375, 581, 909, 700 CacheSize 50000 - Reading 100 items with 10000 initial ACEs and 10 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 28, 28, 29, 34, 42, 167 Oak-Segment-Tar , 10, 63, 69, 78, 89, 134, 637 Oak-Segment-Tar , 20, 70, 114, 161, 213, 317, 627 Oak-Segment-Tar , 50, 68, 228, 421, 690, 1209, 583 CacheSize 50000 - Reading 100 items with 10000 initial ACEs and 100 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 26, 27, 29, 33, 35, 170 Oak-Segment-Tar , 10, 46, 65, 73, 88, 137, 663 Oak-Segment-Tar , 20, 73, 112, 160, 208, 292, 640 Oak-Segment-Tar , 50, 62, 206, 414, 669, 913, 619 CacheSize 50000 - Reading 100 items with 10000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # EagerCacheSizeTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 29, 30, 33, 37, 49, 152 Oak-Segment-Tar , 10, 57, 76, 92, 124, 168, 520 Oak-Segment-Tar , 20, 61, 106, 157, 215, 337, 633 Oak-Segment-Tar , 50, 64, 206, 447, 711, 1186, 574