You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Joel Richard (JIRA)" <ji...@apache.org> on 2015/04/13 16:28:12 UTC
[jira] [Updated] (OAK-2758) Performance: Consider caches for
MutableTree#getTree and MemoryNodeBuilder#getChildNode
[ https://issues.apache.org/jira/browse/OAK-2758?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Joel Richard updated OAK-2758:
------------------------------
Summary: Performance: Consider caches for MutableTree#getTree and MemoryNodeBuilder#getChildNode (was: Performance: )
> Performance: Consider caches for MutableTree#getTree and MemoryNodeBuilder#getChildNode
> ---------------------------------------------------------------------------------------
>
> Key: OAK-2758
> URL: https://issues.apache.org/jira/browse/OAK-2758
> Project: Jackrabbit Oak
> Issue Type: Improvement
> Components: core
> Affects Versions: 1.2
> Reporter: Joel Richard
> Priority: Critical
> Labels: performance
> Attachments: experimental_caches.patch
>
>
> While I was analysing Sling's rendering performance, I noticed that it would help a lot to implement a cache for the ResourceResolver. For some pages it almost doubled the rendering performance. This made me wondering whether Oak's read performance could still be improved.
> I noticed that a lot of time is spent in MutableTree#getTree and MemoryNodeBuilder#getChildNode and have implemented a specific cache for them. These two caches improve the read performance up to 4 times and do not break any oak-core tests.
> Here the benchmark results for ReadDeepTreeTest:
> {code}
> Fixtures: Oak-Tar
> Admin User: false
> Runtime: 5
> Num Items: 1000
> Concurrency: 1,2,4
> Random User: true
> Profiling: false
> --------------------------------------
> Executing benchmarks as admin: false on Oak-Tar
> -----------------------------------------------------------
> # ReadDeepTreeTest , C, min, 10%, 50%, 90%, max, N
> Oak-Tar , 1, 16, 16, 17, 19, 22, 290
> Oak-Tar , 2, 23, 29, 44, 68, 115, 216
> Oak-Tar , 4, 24, 43, 97, 154, 232, 207
> {code}
> The same results with my changes:
> {code}
> # ReadDeepTreeTest , C, min, 10%, 50%, 90%, max, N
> Oak-Tar , 1, 4, 4, 5, 5, 15, 1038
> Oak-Tar , 2, 10, 14, 16, 20, 60, 577
> Oak-Tar , 4, 13, 27, 32, 40, 69, 605
> {code}
> I have also implemented another cache for properties, but it didn't really help and broke some tests.
> The experimental patch is attached. It's not meant to be applied, but just to point out areas with potential for improvement.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)