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 "Alex Deparvu (JIRA)" <ji...@apache.org> on 2017/06/26 13:59:00 UTC

[jira] [Commented] (OAK-6394) Reduce default Multiplexer impact on ReferenceIndex

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

Alex Deparvu commented on OAK-6394:
-----------------------------------

Bench results from {{GetGroupPrincipalsTest}}:

* with switch to ImmutableSet:
{noformat}
Apache Jackrabbit Oak
# GetGroupPrincipalsTest           C     min     10%     50%     90%     max       N 
Oak-Segment-Tar                    1     207     211     214     221     234     279
{noformat}

* trunk version
{noformat}
Apache Jackrabbit Oak
# GetGroupPrincipalsTest           C     min     10%     50%     90%     max       N 
Oak-Segment-Tar                    1     220     224     232     248     269     256
{noformat}



> Reduce default Multiplexer impact on ReferenceIndex
> ---------------------------------------------------
>
>                 Key: OAK-6394
>                 URL: https://issues.apache.org/jira/browse/OAK-6394
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: core, property-index
>            Reporter: Alex Deparvu
>
> The default Multiplexing setup (no default mounts) has some impact on computing the default strategy used on the query side, as seen in some perf tests:
> {noformat}
> "Reverse Call Tree","Time (ms)","Level"
> "java.lang.Object.hashCode() Object.java (native)","160914","1"
> "java.util.HashMap.hash(Object) HashMap.java:362","","2"
> "java.util.HashMap.put(Object, Object) HashMap.java:492","","3"
> "java.util.HashSet.add(Object) HashSet.java:217","","4"
> "java.util.Collections.addAll(Collection, Object[]) Collections.java:3845","","5"
> "com.google.common.collect.Sets.newHashSet(Object[]) Sets.java:183","","6"
> "org.apache.jackrabbit.oak.plugins.index.property.Multiplexers.getStrategies(boolean, MountInfoProvider, Iterable, String) Multiplexers.java:101","","7"
> "org.apache.jackrabbit.oak.plugins.index.property.Multiplexers.getStrategies(boolean, MountInfoProvider, NodeState, String) Multiplexers.java:69","","8"
> "org.apache.jackrabbit.oak.plugins.index.reference.ReferenceIndex.getStrategies(NodeState, MountInfoProvider, String) ReferenceIndex.java:160","","9"
> "org.apache.jackrabbit.oak.plugins.index.reference.ReferenceIndex.lookup(NodeState, String, String, String, Filter) ReferenceIndex.java:135","","10"
> "org.apache.jackrabbit.oak.plugins.index.reference.ReferenceIndex.query(Filter, NodeState) ReferenceIndex.java:121","","11"
> "org.apache.jackrabbit.oak.query.ast.SelectorImpl.execute(NodeState) SelectorImpl.java:323","","12"
> {noformat}
> the reasoning being the current code builds a HashSet of one item. This can be greatly optimized by using {{ImmutableSet.of(element)}}.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)