Reading 10000 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 10000 --numberOfInitialAce 1 --numberOfUsers 1 --entriesForEachPrincipal false --reverseOrder false --compositionType AND --useAggregationFilter true --csvFile PermissionEvaluationTest_10000_cycle_principalbased-AND-aggregationfilter_20191010_132620.csv --concurrency 1,10,20,50 --report false PermissionEvaluationTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # PermissionEvaluationTest C min 10% 50% 90% max N Import deep tree: 5708 All paths: 123545 Oak-Segment-Tar 1 62 63 68 82 85 72 Oak-Segment-Tar 10 110 137 143 153 187 350 Oak-Segment-Tar 20 188 263 318 361 423 328 Oak-Segment-Tar 50 282 504 689 883 1161 385 Profiler: top 5 stack trace(s) of of 21888 ms of 4209 thread dumps: 4209/43458 (9%): 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) 3086/43458 (7%): 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.hasProperty(SegmentNodeState.java:203) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.hasProperty(ReadOnlyBuilder.java:131) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:168) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2502/43458 (5%): at app//org.apache.jackrabbit.oak.namepath.impl.NamePathMapperImpl.getOakPath(NamePathMapperImpl.java:84) at app//org.apache.jackrabbit.oak.jcr.session.SessionContext.getOakPath(SessionContext.java:361) at app//org.apache.jackrabbit.oak.jcr.session.SessionContext.getOakPathOrThrow(SessionContext.java:380) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getOakPathOrThrow(SessionImpl.java:150) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:629) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2227/43458 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:371) 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.hasProperty(SegmentNodeState.java:203) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.hasProperty(ReadOnlyBuilder.java:131) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:168) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2048/43458 (4%): at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryCache.getEntries(EntryCache.java:76) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryIterator.getNext(EntryIterator.java:60) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryIterator.getNext(EntryIterator.java:28) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:272) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:164) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:208) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:174) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//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 10%: app//org.apache.jackrabbit.oak.commons 9%: app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl 7%: app//org.apache.jackrabbit.oak.plugins.tree 6%: app//org.apache.jackrabbit.oak.namepath.impl . Reading 10000 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 10000 --numberOfInitialAce 1 --numberOfUsers 10 --entriesForEachPrincipal false --reverseOrder false --compositionType AND --useAggregationFilter true --csvFile PermissionEvaluationTest_10000_cycle_principalbased-AND-aggregationfilter_20191010_132620.csv --concurrency 1,10,20,50 --report false PermissionEvaluationTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # PermissionEvaluationTest C min 10% 50% 90% max N Import deep tree: 6143 All paths: 123545 Oak-Segment-Tar 1 63 65 80 165 180 52 Oak-Segment-Tar 10 129 140 158 191 209 311 Oak-Segment-Tar 20 183 243 319 482 594 301 Oak-Segment-Tar 50 340 583 751 910 1277 355 Profiler: top 5 stack trace(s) of of 21947 ms of 3765 thread dumps: 3765/37145 (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) 2461/37145 (6%): 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.hasProperty(SegmentNodeState.java:203) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.hasProperty(ReadOnlyBuilder.java:131) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:168) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2035/37145 (5%): at app//org.apache.jackrabbit.oak.namepath.impl.NamePathMapperImpl.getOakPath(NamePathMapperImpl.java:84) at app//org.apache.jackrabbit.oak.jcr.session.SessionContext.getOakPath(SessionContext.java:361) at app//org.apache.jackrabbit.oak.jcr.session.SessionContext.getOakPathOrThrow(SessionContext.java:380) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getOakPathOrThrow(SessionImpl.java:150) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:629) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1750/37145 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:371) 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.hasProperty(SegmentNodeState.java:203) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.hasProperty(ReadOnlyBuilder.java:131) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:168) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1715/37145 (4%): at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryCache.getEntries(EntryCache.java:76) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryIterator.getNext(EntryIterator.java:60) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryIterator.getNext(EntryIterator.java:28) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:272) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:164) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:208) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:174) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//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: 43%: app//org.apache.jackrabbit.oak.segment 11%: app//org.apache.jackrabbit.oak.commons 10%: app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl 6%: app//org.apache.jackrabbit.oak.plugins.tree 6%: app//org.apache.jackrabbit.oak.plugins.tree.impl . Reading 10000 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 10000 --numberOfInitialAce 1 --numberOfUsers 100 --entriesForEachPrincipal false --reverseOrder false --compositionType AND --useAggregationFilter true --csvFile PermissionEvaluationTest_10000_cycle_principalbased-AND-aggregationfilter_20191010_132620.csv --concurrency 1,10,20,50 --report false PermissionEvaluationTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # PermissionEvaluationTest C min 10% 50% 90% max N Import deep tree: 7815 All paths: 123545 Oak-Segment-Tar 1 70 73 123 157 190 42 Oak-Segment-Tar 10 124 147 160 198 234 300 Oak-Segment-Tar 20 163 267 338 410 472 303 Oak-Segment-Tar 50 261 505 764 998 1279 347 Profiler: top 5 stack trace(s) of of 21831 ms of 3819 thread dumps: 3938/38076 (10%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:371) 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.hasProperty(SegmentNodeState.java:203) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.hasProperty(ReadOnlyBuilder.java:131) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:168) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3819/38076 (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) 2162/38076 (5%): at app//org.apache.jackrabbit.oak.segment.Segment.readRecordId(Segment.java:428) at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:218) at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:172) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.createChild(ImmutableTree.java:127) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getChild(ImmutableTree.java:178) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getChild(ImmutableTree.java:81) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:171) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2131/38076 (5%): at app//org.apache.jackrabbit.oak.namepath.impl.NamePathMapperImpl.getOakPath(NamePathMapperImpl.java:84) at app//org.apache.jackrabbit.oak.jcr.session.SessionContext.getOakPath(SessionContext.java:361) at app//org.apache.jackrabbit.oak.jcr.session.SessionContext.getOakPathOrThrow(SessionContext.java:380) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getOakPathOrThrow(SessionImpl.java:150) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:629) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1704/38076 (4%): at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:232) at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:172) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.createChild(ImmutableTree.java:127) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getChild(ImmutableTree.java:178) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getChild(ImmutableTree.java:81) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:171) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//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 11%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.cache 9%: app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl 6%: app//org.apache.jackrabbit.oak.plugins.tree . Reading 10000 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 10000 --numberOfInitialAce 1 --numberOfUsers 1000 --entriesForEachPrincipal false --reverseOrder false --compositionType AND --useAggregationFilter true --csvFile PermissionEvaluationTest_10000_cycle_principalbased-AND-aggregationfilter_20191010_132620.csv --concurrency 1,10,20,50 --report false PermissionEvaluationTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # PermissionEvaluationTest C min 10% 50% 90% max N Import deep tree: 6295 All paths: 123545 Oak-Segment-Tar 1 70 71 77 105 119 60 Oak-Segment-Tar 10 125 153 174 240 311 268 Oak-Segment-Tar 20 164 262 352 432 526 294 Oak-Segment-Tar 50 341 564 782 981 1217 337 Profiler: top 5 stack trace(s) of of 21809 ms of 3750 thread dumps: 3750/35315 (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) 3654/35315 (10%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:371) 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.hasProperty(SegmentNodeState.java:203) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.hasProperty(ReadOnlyBuilder.java:131) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:168) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1807/35315 (5%): at app//org.apache.jackrabbit.oak.namepath.impl.NamePathMapperImpl.getOakPath(NamePathMapperImpl.java:84) at app//org.apache.jackrabbit.oak.jcr.session.SessionContext.getOakPath(SessionContext.java:361) at app//org.apache.jackrabbit.oak.jcr.session.SessionContext.getOakPathOrThrow(SessionContext.java:380) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getOakPathOrThrow(SessionImpl.java:150) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:629) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1459/35315 (4%): at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryCache.getEntries(EntryCache.java:76) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryIterator.getNext(EntryIterator.java:60) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryIterator.getNext(EntryIterator.java:28) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:272) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:164) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:208) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:174) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1237/35315 (3%): at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:171) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.createChild(ImmutableTree.java:127) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getChild(ImmutableTree.java:178) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getChild(ImmutableTree.java:81) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:171) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//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: 36%: app//org.apache.jackrabbit.oak.segment 11%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.cache 9%: app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl 6%: app//org.apache.jackrabbit.oak.plugins.tree . Reading 10000 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 10000 --numberOfInitialAce 10 --numberOfUsers 1 --entriesForEachPrincipal false --reverseOrder false --compositionType AND --useAggregationFilter true --csvFile PermissionEvaluationTest_10000_cycle_principalbased-AND-aggregationfilter_20191010_132620.csv --concurrency 1,10,20,50 --report false PermissionEvaluationTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # PermissionEvaluationTest C min 10% 50% 90% max N Import deep tree: 7510 All paths: 123545 Oak-Segment-Tar 1 63 71 87 104 122 59 Oak-Segment-Tar 10 101 144 171 199 236 299 Oak-Segment-Tar 20 161 234 319 395 481 322 Oak-Segment-Tar 50 299 498 760 992 1259 353 Profiler: top 5 stack trace(s) of of 21899 ms of 3712 thread dumps: 4019/36377 (11%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:371) 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.hasProperty(SegmentNodeState.java:203) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.hasProperty(ReadOnlyBuilder.java:131) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:168) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3712/36377 (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) 2058/36377 (5%): at app//org.apache.jackrabbit.oak.namepath.impl.NamePathMapperImpl.getOakPath(NamePathMapperImpl.java:84) at app//org.apache.jackrabbit.oak.jcr.session.SessionContext.getOakPath(SessionContext.java:361) at app//org.apache.jackrabbit.oak.jcr.session.SessionContext.getOakPathOrThrow(SessionContext.java:380) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getOakPathOrThrow(SessionImpl.java:150) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:629) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1691/36377 (4%): at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryCache.getEntries(EntryCache.java:76) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryIterator.getNext(EntryIterator.java:60) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryIterator.getNext(EntryIterator.java:28) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:272) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:164) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:208) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:174) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1534/36377 (4%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNodeMap(SegmentNodeState.java:133) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.createChild(ImmutableTree.java:127) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getChild(ImmutableTree.java:178) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getChild(ImmutableTree.java:81) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:171) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//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 12%: app//org.apache.jackrabbit.oak.cache 11%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl 6%: app//org.apache.jackrabbit.oak.plugins.tree . Reading 10000 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 10000 --numberOfInitialAce 10 --numberOfUsers 10 --entriesForEachPrincipal false --reverseOrder false --compositionType AND --useAggregationFilter true --csvFile PermissionEvaluationTest_10000_cycle_principalbased-AND-aggregationfilter_20191010_132620.csv --concurrency 1,10,20,50 --report false PermissionEvaluationTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # PermissionEvaluationTest C min 10% 50% 90% max N Import deep tree: 6021 All paths: 123545 Oak-Segment-Tar 1 67 69 87 103 115 58 Oak-Segment-Tar 10 112 144 157 209 255 307 Oak-Segment-Tar 20 189 266 325 387 488 316 Oak-Segment-Tar 50 307 566 796 1051 1268 333 Profiler: top 5 stack trace(s) of of 21985 ms of 3954 thread dumps: 4347/40152 (10%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:371) 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.hasProperty(SegmentNodeState.java:203) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.hasProperty(ReadOnlyBuilder.java:131) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:168) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3954/40152 (9%): 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) 2153/40152 (5%): at app//org.apache.jackrabbit.oak.namepath.impl.NamePathMapperImpl.getOakPath(NamePathMapperImpl.java:84) at app//org.apache.jackrabbit.oak.jcr.session.SessionContext.getOakPath(SessionContext.java:361) at app//org.apache.jackrabbit.oak.jcr.session.SessionContext.getOakPathOrThrow(SessionContext.java:380) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getOakPathOrThrow(SessionImpl.java:150) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:629) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1887/40152 (4%): at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryCache.getEntries(EntryCache.java:76) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryIterator.getNext(EntryIterator.java:60) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryIterator.getNext(EntryIterator.java:28) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:272) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:164) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:208) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:174) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1474/40152 (3%): at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:171) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.createChild(ImmutableTree.java:127) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getChild(ImmutableTree.java:178) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getChild(ImmutableTree.java:81) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:171) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//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: 36%: app//org.apache.jackrabbit.oak.segment 11%: app//org.apache.jackrabbit.oak.cache 11%: app//org.apache.jackrabbit.oak.commons 10%: app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl 6%: app//org.apache.jackrabbit.oak.plugins.tree . Reading 10000 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 10000 --numberOfInitialAce 10 --numberOfUsers 100 --entriesForEachPrincipal false --reverseOrder false --compositionType AND --useAggregationFilter true --csvFile PermissionEvaluationTest_10000_cycle_principalbased-AND-aggregationfilter_20191010_132620.csv --concurrency 1,10,20,50 --report false PermissionEvaluationTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # PermissionEvaluationTest C min 10% 50% 90% max N Import deep tree: 6938 All paths: 123545 Oak-Segment-Tar 1 66 67 73 95 150 64 Oak-Segment-Tar 10 134 144 153 169 188 330 Oak-Segment-Tar 20 189 266 321 377 480 320 Oak-Segment-Tar 50 321 565 748 905 1040 360 Profiler: top 5 stack trace(s) of of 21960 ms of 4016 thread dumps: 4741/40602 (11%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:371) 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.hasProperty(SegmentNodeState.java:203) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.hasProperty(ReadOnlyBuilder.java:131) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:168) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 4016/40602 (9%): 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) 2127/40602 (5%): at app//org.apache.jackrabbit.oak.namepath.impl.NamePathMapperImpl.getOakPath(NamePathMapperImpl.java:84) at app//org.apache.jackrabbit.oak.jcr.session.SessionContext.getOakPath(SessionContext.java:361) at app//org.apache.jackrabbit.oak.jcr.session.SessionContext.getOakPathOrThrow(SessionContext.java:380) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getOakPathOrThrow(SessionImpl.java:150) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:629) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2004/40602 (4%): at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryCache.getEntries(EntryCache.java:76) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryIterator.getNext(EntryIterator.java:60) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryIterator.getNext(EntryIterator.java:28) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:272) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:164) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:208) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:174) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1629/40602 (4%): at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:171) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.createChild(ImmutableTree.java:127) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getChild(ImmutableTree.java:178) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getChild(ImmutableTree.java:81) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:171) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//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 12%: app//org.apache.jackrabbit.oak.cache 11%: app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl 11%: app//org.apache.jackrabbit.oak.commons 6%: app//org.apache.jackrabbit.oak.plugins.tree . Reading 10000 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 10000 --numberOfInitialAce 10 --numberOfUsers 1000 --entriesForEachPrincipal false --reverseOrder false --compositionType AND --useAggregationFilter true --csvFile PermissionEvaluationTest_10000_cycle_principalbased-AND-aggregationfilter_20191010_132620.csv --concurrency 1,10,20,50 --report false PermissionEvaluationTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # PermissionEvaluationTest C min 10% 50% 90% max N Import deep tree: 5797 All paths: 123545 Oak-Segment-Tar 1 65 66 73 89 119 66 Oak-Segment-Tar 10 138 149 157 170 181 320 Oak-Segment-Tar 20 191 270 324 392 455 313 Oak-Segment-Tar 50 401 569 780 944 1326 344 Profiler: top 5 stack trace(s) of of 21998 ms of 4042 thread dumps: 4593/39524 (11%): 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.hasProperty(SegmentNodeState.java:203) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.hasProperty(ReadOnlyBuilder.java:131) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:168) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 4042/39524 (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) 2081/39524 (5%): at app//org.apache.jackrabbit.oak.namepath.impl.NamePathMapperImpl.getOakPath(NamePathMapperImpl.java:84) at app//org.apache.jackrabbit.oak.jcr.session.SessionContext.getOakPath(SessionContext.java:361) at app//org.apache.jackrabbit.oak.jcr.session.SessionContext.getOakPathOrThrow(SessionContext.java:380) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getOakPathOrThrow(SessionImpl.java:150) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:629) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1998/39524 (5%): at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryCache.getEntries(EntryCache.java:76) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryIterator.getNext(EntryIterator.java:60) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryIterator.getNext(EntryIterator.java:28) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:272) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:164) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:208) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:174) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1631/39524 (4%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNodeMap(SegmentNodeState.java:133) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.createChild(ImmutableTree.java:127) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getChild(ImmutableTree.java:178) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getChild(ImmutableTree.java:81) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:171) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//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.segment 11%: app//org.apache.jackrabbit.oak.commons 10%: app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl 6%: app//org.apache.jackrabbit.oak.plugins.tree 5%: app//org.apache.jackrabbit.oak.namepath.impl . Reading 10000 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 10000 --numberOfInitialAce 100 --numberOfUsers 1 --entriesForEachPrincipal false --reverseOrder false --compositionType AND --useAggregationFilter true --csvFile PermissionEvaluationTest_10000_cycle_principalbased-AND-aggregationfilter_20191010_132620.csv --concurrency 1,10,20,50 --report false PermissionEvaluationTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # PermissionEvaluationTest C min 10% 50% 90% max N Import deep tree: 6548 All paths: 123545 Oak-Segment-Tar 1 69 71 83 102 160 59 Oak-Segment-Tar 10 126 161 189 220 270 269 Oak-Segment-Tar 20 188 272 335 421 510 299 Oak-Segment-Tar 50 408 574 835 1036 1250 331 Profiler: top 5 stack trace(s) of of 22174 ms of 3760 thread dumps: 3760/36031 (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) 2278/36031 (6%): at app//org.apache.jackrabbit.oak.commons.Buffer.getShort(Buffer.java:207) at app//org.apache.jackrabbit.oak.segment.data.SegmentDataV12.internalReadRecordId(SegmentDataV12.java:209) at app//org.apache.jackrabbit.oak.segment.data.SegmentDataV12.readRecordId(SegmentDataV12.java:205) at app//org.apache.jackrabbit.oak.segment.Segment.readRecordId(Segment.java:427) at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:171) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.createChild(ImmutableTree.java:127) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getChild(ImmutableTree.java:178) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getChild(ImmutableTree.java:81) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:171) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2169/36031 (6%): at app//org.apache.jackrabbit.oak.commons.Buffer.getShort(Buffer.java:207) at app//org.apache.jackrabbit.oak.segment.data.SegmentDataV12.internalReadRecordId(SegmentDataV12.java:209) at app//org.apache.jackrabbit.oak.segment.data.SegmentDataV12.readRecordId(SegmentDataV12.java:205) at app//org.apache.jackrabbit.oak.segment.Segment.readRecordId(Segment.java:427) 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.hasProperty(SegmentNodeState.java:203) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.hasProperty(ReadOnlyBuilder.java:131) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:168) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2070/36031 (5%): at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryCache.getEntries(EntryCache.java:76) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryIterator.getNext(EntryIterator.java:60) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryIterator.getNext(EntryIterator.java:28) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:272) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:164) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:208) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:174) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2025/36031 (5%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:371) 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.hasProperty(SegmentNodeState.java:203) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.hasProperty(ReadOnlyBuilder.java:131) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:168) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//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.commons 22%: app//org.apache.jackrabbit.oak.segment 11%: app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl 6%: app//org.apache.jackrabbit.oak.cache 5%: app//org.apache.jackrabbit.oak.plugins.tree . Reading 10000 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 10000 --numberOfInitialAce 100 --numberOfUsers 10 --entriesForEachPrincipal false --reverseOrder false --compositionType AND --useAggregationFilter true --csvFile PermissionEvaluationTest_10000_cycle_principalbased-AND-aggregationfilter_20191010_132620.csv --concurrency 1,10,20,50 --report false PermissionEvaluationTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # PermissionEvaluationTest C min 10% 50% 90% max N Import deep tree: 7260 All paths: 123545 Oak-Segment-Tar 1 69 72 87 106 151 57 Oak-Segment-Tar 10 134 142 151 185 244 320 Oak-Segment-Tar 20 209 269 324 385 508 320 Oak-Segment-Tar 50 233 553 738 923 1215 369 Profiler: top 5 stack trace(s) of of 22232 ms of 3967 thread dumps: 3967/40127 (9%): 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) 2559/40127 (6%): 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.hasProperty(SegmentNodeState.java:203) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.hasProperty(ReadOnlyBuilder.java:131) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:168) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 2020/40127 (5%): at app//org.apache.jackrabbit.oak.namepath.impl.NamePathMapperImpl.getOakPath(NamePathMapperImpl.java:84) at app//org.apache.jackrabbit.oak.jcr.session.SessionContext.getOakPath(SessionContext.java:361) at app//org.apache.jackrabbit.oak.jcr.session.SessionContext.getOakPathOrThrow(SessionContext.java:380) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getOakPathOrThrow(SessionImpl.java:150) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:629) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1943/40127 (4%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.createChild(ImmutableTree.java:127) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getChild(ImmutableTree.java:178) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getChild(ImmutableTree.java:81) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:171) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1922/40127 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:371) 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.hasProperty(SegmentNodeState.java:203) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.hasProperty(ReadOnlyBuilder.java:131) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:168) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//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: 43%: app//org.apache.jackrabbit.oak.segment 11%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl 6%: app//org.apache.jackrabbit.oak.plugins.tree 6%: app//org.apache.jackrabbit.oak.plugins.tree.impl . Reading 10000 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 10000 --numberOfInitialAce 100 --numberOfUsers 100 --entriesForEachPrincipal false --reverseOrder false --compositionType AND --useAggregationFilter true --csvFile PermissionEvaluationTest_10000_cycle_principalbased-AND-aggregationfilter_20191010_132620.csv --concurrency 1,10,20,50 --report false PermissionEvaluationTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # PermissionEvaluationTest C min 10% 50% 90% max N Import deep tree: 8503 All paths: 123545 Oak-Segment-Tar 1 66 70 83 104 124 59 Oak-Segment-Tar 10 107 145 177 213 237 286 Oak-Segment-Tar 20 174 255 326 409 525 312 Oak-Segment-Tar 50 426 604 754 951 1318 347 Profiler: top 5 stack trace(s) of of 22061 ms of 3683 thread dumps: 3683/34601 (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) 2335/34601 (6%): 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.hasProperty(SegmentNodeState.java:203) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.hasProperty(ReadOnlyBuilder.java:131) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:168) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1828/34601 (5%): at app//org.apache.jackrabbit.oak.namepath.impl.NamePathMapperImpl.getOakPath(NamePathMapperImpl.java:84) at app//org.apache.jackrabbit.oak.jcr.session.SessionContext.getOakPath(SessionContext.java:361) at app//org.apache.jackrabbit.oak.jcr.session.SessionContext.getOakPathOrThrow(SessionContext.java:380) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getOakPathOrThrow(SessionImpl.java:150) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:629) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1672/34601 (4%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.createChild(ImmutableTree.java:127) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getChild(ImmutableTree.java:178) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getChild(ImmutableTree.java:81) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:171) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1573/34601 (4%): at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryCache.getEntries(EntryCache.java:76) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryIterator.getNext(EntryIterator.java:60) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryIterator.getNext(EntryIterator.java:28) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:272) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:164) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:208) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:174) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//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 11%: app//org.apache.jackrabbit.oak.commons 10%: app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl 6%: app//org.apache.jackrabbit.oak.plugins.tree 5%: app//org.apache.jackrabbit.oak.namepath.impl . Reading 10000 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 10000 --numberOfInitialAce 100 --numberOfUsers 1000 --entriesForEachPrincipal false --reverseOrder false --compositionType AND --useAggregationFilter true --csvFile PermissionEvaluationTest_10000_cycle_principalbased-AND-aggregationfilter_20191010_132620.csv --concurrency 1,10,20,50 --report false PermissionEvaluationTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # PermissionEvaluationTest C min 10% 50% 90% max N Import deep tree: 5883 All paths: 123545 Oak-Segment-Tar 1 68 69 84 105 134 59 Oak-Segment-Tar 10 122 153 179 224 266 275 Oak-Segment-Tar 20 189 261 345 462 643 290 Oak-Segment-Tar 50 274 581 792 969 1166 346 Profiler: top 5 stack trace(s) of of 22096 ms of 3706 thread dumps: 3706/35031 (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) 2357/35031 (6%): 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.hasProperty(SegmentNodeState.java:203) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.hasProperty(ReadOnlyBuilder.java:131) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:168) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1745/35031 (4%): at app//org.apache.jackrabbit.oak.namepath.impl.NamePathMapperImpl.getOakPath(NamePathMapperImpl.java:84) at app//org.apache.jackrabbit.oak.jcr.session.SessionContext.getOakPath(SessionContext.java:361) at app//org.apache.jackrabbit.oak.jcr.session.SessionContext.getOakPathOrThrow(SessionContext.java:380) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getOakPathOrThrow(SessionImpl.java:150) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:629) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1662/35031 (4%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNodeMap(SegmentNodeState.java:133) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.createChild(ImmutableTree.java:127) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getChild(ImmutableTree.java:178) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getChild(ImmutableTree.java:81) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:171) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1514/35031 (4%): at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryCache.getEntries(EntryCache.java:76) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryIterator.getNext(EntryIterator.java:60) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryIterator.getNext(EntryIterator.java:28) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:272) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:164) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:208) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:174) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//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 12%: app//org.apache.jackrabbit.oak.commons 10%: app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl 5%: app//org.apache.jackrabbit.oak.plugins.tree 5%: app//org.apache.jackrabbit.oak.namepath.impl . Reading 10000 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 10000 --numberOfInitialAce 1000 --numberOfUsers 1 --entriesForEachPrincipal false --reverseOrder false --compositionType AND --useAggregationFilter true --csvFile PermissionEvaluationTest_10000_cycle_principalbased-AND-aggregationfilter_20191010_132620.csv --concurrency 1,10,20,50 --report false PermissionEvaluationTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # PermissionEvaluationTest C min 10% 50% 90% max N Import deep tree: 5951 All paths: 123545 Oak-Segment-Tar 1 83 90 111 142 176 44 Oak-Segment-Tar 10 156 178 204 253 581 230 Oak-Segment-Tar 20 155 304 475 641 715 212 Oak-Segment-Tar 50 262 519 768 1017 1346 344 Profiler: top 5 stack trace(s) of of 21951 ms of 3446 thread dumps: 3446/27636 (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) 1576/27636 (5%): at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryCache.getEntries(EntryCache.java:76) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryIterator.getNext(EntryIterator.java:60) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryIterator.getNext(EntryIterator.java:28) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:272) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:164) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:208) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:174) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1381/27636 (4%): at app//org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:149) 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.hasProperty(SegmentNodeState.java:203) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.hasProperty(ReadOnlyBuilder.java:131) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:168) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1176/27636 (4%): at app//org.apache.jackrabbit.oak.namepath.impl.NamePathMapperImpl.getOakPath(NamePathMapperImpl.java:84) at app//org.apache.jackrabbit.oak.jcr.session.SessionContext.getOakPath(SessionContext.java:361) at app//org.apache.jackrabbit.oak.jcr.session.SessionContext.getOakPathOrThrow(SessionContext.java:380) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getOakPathOrThrow(SessionImpl.java:150) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:629) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1060/27636 (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.hasProperty(SegmentNodeState.java:203) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.hasProperty(ReadOnlyBuilder.java:131) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:168) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//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.segment 15%: app//org.apache.jackrabbit.oak.commons 9%: app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl 6%: app//org.apache.jackrabbit.oak.plugins.tree 4%: app//org.apache.jackrabbit.oak.namepath.impl . Reading 10000 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 10000 --numberOfInitialAce 1000 --numberOfUsers 10 --entriesForEachPrincipal false --reverseOrder false --compositionType AND --useAggregationFilter true --csvFile PermissionEvaluationTest_10000_cycle_principalbased-AND-aggregationfilter_20191010_132620.csv --concurrency 1,10,20,50 --report false PermissionEvaluationTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # PermissionEvaluationTest C min 10% 50% 90% max N Import deep tree: 6304 All paths: 123545 Oak-Segment-Tar 1 70 73 90 117 137 54 Oak-Segment-Tar 10 87 152 178 230 300 271 Oak-Segment-Tar 20 179 275 356 439 533 287 Oak-Segment-Tar 50 183 587 817 951 1303 331 Profiler: top 5 stack trace(s) of of 21857 ms of 3748 thread dumps: 4198/39215 (10%): 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.hasProperty(SegmentNodeState.java:203) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.hasProperty(ReadOnlyBuilder.java:131) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:168) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3748/39215 (9%): 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) 2144/39215 (5%): at app//org.apache.jackrabbit.oak.namepath.impl.NamePathMapperImpl.getOakPath(NamePathMapperImpl.java:84) at app//org.apache.jackrabbit.oak.jcr.session.SessionContext.getOakPath(SessionContext.java:361) at app//org.apache.jackrabbit.oak.jcr.session.SessionContext.getOakPathOrThrow(SessionContext.java:380) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getOakPathOrThrow(SessionImpl.java:150) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:629) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1880/39215 (4%): at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryCache.getEntries(EntryCache.java:76) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryIterator.getNext(EntryIterator.java:60) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryIterator.getNext(EntryIterator.java:28) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:272) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:164) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:208) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:174) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1549/39215 (3%): at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryIterator.getNext(EntryIterator.java:61) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryIterator.getNext(EntryIterator.java:28) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:272) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:164) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:208) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:174) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//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.segment 12%: app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl 10%: app//org.apache.jackrabbit.oak.commons 6%: app//org.apache.jackrabbit.oak.plugins.tree 5%: app//org.apache.jackrabbit.oak.namepath.impl . Reading 10000 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 10000 --numberOfInitialAce 1000 --numberOfUsers 100 --entriesForEachPrincipal false --reverseOrder false --compositionType AND --useAggregationFilter true --csvFile PermissionEvaluationTest_10000_cycle_principalbased-AND-aggregationfilter_20191010_132620.csv --concurrency 1,10,20,50 --report false PermissionEvaluationTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # PermissionEvaluationTest C min 10% 50% 90% max N Import deep tree: 6329 All paths: 123545 Oak-Segment-Tar 1 69 71 87 99 111 59 Oak-Segment-Tar 10 146 156 182 240 268 269 Oak-Segment-Tar 20 196 273 336 434 594 300 Oak-Segment-Tar 50 373 569 817 1025 1374 328 Profiler: top 5 stack trace(s) of of 22040 ms of 3888 thread dumps: 4231/38865 (10%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.hasProperty(SegmentNodeState.java:203) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.hasProperty(ReadOnlyBuilder.java:131) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:168) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 3888/38865 (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) 1978/38865 (5%): at app//org.apache.jackrabbit.oak.namepath.impl.NamePathMapperImpl.getOakPath(NamePathMapperImpl.java:84) at app//org.apache.jackrabbit.oak.jcr.session.SessionContext.getOakPath(SessionContext.java:361) at app//org.apache.jackrabbit.oak.jcr.session.SessionContext.getOakPathOrThrow(SessionContext.java:380) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getOakPathOrThrow(SessionImpl.java:150) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:629) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//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/38865 (5%): at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryCache.getEntries(EntryCache.java:76) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryIterator.getNext(EntryIterator.java:60) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.EntryIterator.getNext(EntryIterator.java:28) at app//org.apache.jackrabbit.commons.iterator.AbstractLazyIterator.hasNext(AbstractLazyIterator.java:39) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:272) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:164) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:208) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:174) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1507/38865 (3%): at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:217) at app//org.apache.jackrabbit.oak.segment.MapRecord.getEntry(MapRecord.java:172) at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.createChild(ImmutableTree.java:127) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getChild(ImmutableTree.java:178) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getChild(ImmutableTree.java:81) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:171) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//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: 47%: app//org.apache.jackrabbit.oak.segment 12%: app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl 10%: app//org.apache.jackrabbit.oak.commons 6%: app//org.apache.jackrabbit.oak.plugins.tree 5%: app//org.apache.jackrabbit.oak.namepath.impl . Reading 10000 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 10000 --numberOfInitialAce 1000 --numberOfUsers 1000 --entriesForEachPrincipal false --reverseOrder false --compositionType AND --useAggregationFilter true --csvFile PermissionEvaluationTest_10000_cycle_principalbased-AND-aggregationfilter_20191010_132620.csv --concurrency 1,10,20,50 --report false PermissionEvaluationTest Oak-Segment-Tar Apache Jackrabbit Oak 1.20-SNAPSHOT # PermissionEvaluationTest C min 10% 50% 90% max N Import deep tree: 6979 All paths: 123545 Oak-Segment-Tar 1 70 71 82 111 156 58 Oak-Segment-Tar 10 150 160 190 328 403 240 Oak-Segment-Tar 20 313 385 519 688 891 198 Oak-Segment-Tar 50 265 569 882 1175 1641 307 Profiler: top 5 stack trace(s) of of 22207 ms of 3636 thread dumps: 3636/33685 (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) 1959/33685 (5%): 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.hasProperty(SegmentNodeState.java:203) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.hasProperty(ReadOnlyBuilder.java:131) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:168) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1675/33685 (4%): at app//org.apache.jackrabbit.oak.namepath.impl.NamePathMapperImpl.getOakPath(NamePathMapperImpl.java:84) at app//org.apache.jackrabbit.oak.jcr.session.SessionContext.getOakPath(SessionContext.java:361) at app//org.apache.jackrabbit.oak.jcr.session.SessionContext.getOakPathOrThrow(SessionContext.java:380) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.getOakPathOrThrow(SessionImpl.java:150) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:629) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1499/33685 (4%): at app//org.apache.jackrabbit.oak.cache.CacheLIRS.getIfPresent(CacheLIRS.java:371) 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.hasProperty(SegmentNodeState.java:203) at app//org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder.hasProperty(ReadOnlyBuilder.java:131) at app//org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree.hasProperty(AbstractTree.java:256) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:168) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.access$000(AbstractTest.java:51) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest$Executor.run(AbstractTest.java:307) 1459/33685 (4%): at app//org.apache.jackrabbit.oak.segment.SegmentNodeState.getChildNode(SegmentNodeState.java:452) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.createChild(ImmutableTree.java:127) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getChild(ImmutableTree.java:178) at app//org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree.getChild(ImmutableTree.java:81) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation$NodeLocation.getChild(TreeLocation.java:171) at app//org.apache.jackrabbit.oak.plugins.tree.TreeLocation.create(TreeLocation.java:63) at app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl.PrincipalBasedPermissionProvider.isGranted(PrincipalBasedPermissionProvider.java:169) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:48) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager$1.perform(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.safePerform(SessionDelegate.java:296) at app//org.apache.jackrabbit.oak.jcr.security.AccessManager.hasPermissions(AccessManager.java:44) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:635) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl$11.perform(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:207) at app//org.apache.jackrabbit.oak.jcr.session.SessionImpl.hasPermission(SessionImpl.java:631) at app//org.apache.jackrabbit.oak.benchmark.authorization.principalbased.PermissionEvaluationTest.randomRead(PermissionEvaluationTest.java:47) at app//org.apache.jackrabbit.oak.benchmark.ReadDeepTreeTest.runTest(ReadDeepTreeTest.java:133) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:378) at app//org.apache.jackrabbit.oak.benchmark.AbstractTest.execute(AbstractTest.java:387) at app//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: 41%: app//org.apache.jackrabbit.oak.segment 12%: app//org.apache.jackrabbit.oak.commons 11%: app//org.apache.jackrabbit.oak.spi.security.authorization.principalbased.impl 6%: app//org.apache.jackrabbit.oak.plugins.tree 5%: app//org.apache.jackrabbit.oak.cache . ----------------------------------------- Benchmark completed. see PermissionEvaluationTest_10000_cycle_principalbased-AND-aggregationfilter_20191010_132620.csv for details: Benchmarks: PermissionEvaluationTest Fixture: Oak-Segment-Tar Runtime: 5 Concurrency: 1,10,20,50 Profiling: true Items to Read: 10000 Number of ACEs: 1 10 100 1000 Number of Principals: 1 10 100 1000 Create entries for each principal: false Use default authorization instead of 'principalbased': false CompositionType: AND -------------------------------------- Reading 10000 items with 1 initial ACEs and 1 principals per subject ----------------------------------------------------------- # PermissionEvaluationTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 62, 63, 68, 82, 85, 72 Oak-Segment-Tar , 10, 110, 137, 143, 153, 187, 350 Oak-Segment-Tar , 20, 188, 263, 318, 361, 423, 328 Oak-Segment-Tar , 50, 282, 504, 689, 883, 1161, 385 Reading 10000 items with 1 initial ACEs and 10 principals per subject ----------------------------------------------------------- # PermissionEvaluationTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 63, 65, 80, 165, 180, 52 Oak-Segment-Tar , 10, 129, 140, 158, 191, 209, 311 Oak-Segment-Tar , 20, 183, 243, 319, 482, 594, 301 Oak-Segment-Tar , 50, 340, 583, 751, 910, 1277, 355 Reading 10000 items with 1 initial ACEs and 100 principals per subject ----------------------------------------------------------- # PermissionEvaluationTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 70, 73, 123, 157, 190, 42 Oak-Segment-Tar , 10, 124, 147, 160, 198, 234, 300 Oak-Segment-Tar , 20, 163, 267, 338, 410, 472, 303 Oak-Segment-Tar , 50, 261, 505, 764, 998, 1279, 347 Reading 10000 items with 1 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # PermissionEvaluationTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 70, 71, 77, 105, 119, 60 Oak-Segment-Tar , 10, 125, 153, 174, 240, 311, 268 Oak-Segment-Tar , 20, 164, 262, 352, 432, 526, 294 Oak-Segment-Tar , 50, 341, 564, 782, 981, 1217, 337 Reading 10000 items with 10 initial ACEs and 1 principals per subject ----------------------------------------------------------- # PermissionEvaluationTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 63, 71, 87, 104, 122, 59 Oak-Segment-Tar , 10, 101, 144, 171, 199, 236, 299 Oak-Segment-Tar , 20, 161, 234, 319, 395, 481, 322 Oak-Segment-Tar , 50, 299, 498, 760, 992, 1259, 353 Reading 10000 items with 10 initial ACEs and 10 principals per subject ----------------------------------------------------------- # PermissionEvaluationTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 67, 69, 87, 103, 115, 58 Oak-Segment-Tar , 10, 112, 144, 157, 209, 255, 307 Oak-Segment-Tar , 20, 189, 266, 325, 387, 488, 316 Oak-Segment-Tar , 50, 307, 566, 796, 1051, 1268, 333 Reading 10000 items with 10 initial ACEs and 100 principals per subject ----------------------------------------------------------- # PermissionEvaluationTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 66, 67, 73, 95, 150, 64 Oak-Segment-Tar , 10, 134, 144, 153, 169, 188, 330 Oak-Segment-Tar , 20, 189, 266, 321, 377, 480, 320 Oak-Segment-Tar , 50, 321, 565, 748, 905, 1040, 360 Reading 10000 items with 10 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # PermissionEvaluationTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 65, 66, 73, 89, 119, 66 Oak-Segment-Tar , 10, 138, 149, 157, 170, 181, 320 Oak-Segment-Tar , 20, 191, 270, 324, 392, 455, 313 Oak-Segment-Tar , 50, 401, 569, 780, 944, 1326, 344 Reading 10000 items with 100 initial ACEs and 1 principals per subject ----------------------------------------------------------- # PermissionEvaluationTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 69, 71, 83, 102, 160, 59 Oak-Segment-Tar , 10, 126, 161, 189, 220, 270, 269 Oak-Segment-Tar , 20, 188, 272, 335, 421, 510, 299 Oak-Segment-Tar , 50, 408, 574, 835, 1036, 1250, 331 Reading 10000 items with 100 initial ACEs and 10 principals per subject ----------------------------------------------------------- # PermissionEvaluationTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 69, 72, 87, 106, 151, 57 Oak-Segment-Tar , 10, 134, 142, 151, 185, 244, 320 Oak-Segment-Tar , 20, 209, 269, 324, 385, 508, 320 Oak-Segment-Tar , 50, 233, 553, 738, 923, 1215, 369 Reading 10000 items with 100 initial ACEs and 100 principals per subject ----------------------------------------------------------- # PermissionEvaluationTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 66, 70, 83, 104, 124, 59 Oak-Segment-Tar , 10, 107, 145, 177, 213, 237, 286 Oak-Segment-Tar , 20, 174, 255, 326, 409, 525, 312 Oak-Segment-Tar , 50, 426, 604, 754, 951, 1318, 347 Reading 10000 items with 100 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # PermissionEvaluationTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 68, 69, 84, 105, 134, 59 Oak-Segment-Tar , 10, 122, 153, 179, 224, 266, 275 Oak-Segment-Tar , 20, 189, 261, 345, 462, 643, 290 Oak-Segment-Tar , 50, 274, 581, 792, 969, 1166, 346 Reading 10000 items with 1000 initial ACEs and 1 principals per subject ----------------------------------------------------------- # PermissionEvaluationTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 83, 90, 111, 142, 176, 44 Oak-Segment-Tar , 10, 156, 178, 204, 253, 581, 230 Oak-Segment-Tar , 20, 155, 304, 475, 641, 715, 212 Oak-Segment-Tar , 50, 262, 519, 768, 1017, 1346, 344 Reading 10000 items with 1000 initial ACEs and 10 principals per subject ----------------------------------------------------------- # PermissionEvaluationTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 70, 73, 90, 117, 137, 54 Oak-Segment-Tar , 10, 87, 152, 178, 230, 300, 271 Oak-Segment-Tar , 20, 179, 275, 356, 439, 533, 287 Oak-Segment-Tar , 50, 183, 587, 817, 951, 1303, 331 Reading 10000 items with 1000 initial ACEs and 100 principals per subject ----------------------------------------------------------- # PermissionEvaluationTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 69, 71, 87, 99, 111, 59 Oak-Segment-Tar , 10, 146, 156, 182, 240, 268, 269 Oak-Segment-Tar , 20, 196, 273, 336, 434, 594, 300 Oak-Segment-Tar , 50, 373, 569, 817, 1025, 1374, 328 Reading 10000 items with 1000 initial ACEs and 1000 principals per subject ----------------------------------------------------------- # PermissionEvaluationTest , C, min, 10%, 50%, 90%, max, N Oak-Segment-Tar , 1, 70, 71, 82, 111, 156, 58 Oak-Segment-Tar , 10, 150, 160, 190, 328, 403, 240 Oak-Segment-Tar , 20, 313, 385, 519, 688, 891, 198 Oak-Segment-Tar , 50, 265, 569, 882, 1175, 1641, 307