You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@s2graph.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2016/02/23 07:23:18 UTC

[jira] [Commented] (S2GRAPH-16) Performance tunning on where parser

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

ASF GitHub Bot commented on S2GRAPH-16:
---------------------------------------

Github user asfgit closed the pull request at:

    https://github.com/apache/incubator-s2graph/pull/6


> Performance tunning on where parser
> -----------------------------------
>
>                 Key: S2GRAPH-16
>                 URL: https://issues.apache.org/jira/browse/S2GRAPH-16
>             Project: S2Graph
>          Issue Type: Improvement
>            Reporter: DOYUNG YOON
>            Assignee: DOYUNG YOON
>              Labels: performance
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> Current implementation has critical performance problem on IN parser. 
> ex) where: age in(1, 2, 3, 4, 5 ...)  / where: _parent.age in (1, 2, 3, 4, 5, …)
> when the query has M edges as result with N elements in IN clause, then IN case class that create N innerVal set and check if this edge`s property value is in this N innerVal set. The most problematic part is building N innerVal set from user query is executed M times(number of result edges, usually hundreds to thousands). 
> This create lots of object which create lots of GC and waste lots of cpu resources.
> We can improve this by reducing number of calls to build values to compare on IN.
> building InnerVal set(from above example, it is build 1,2,3,4,5) for value to compare only need to be perform once per each query and never be dependent to number of result edges. only checking against built InnerVal set should be dependent to number of result edges.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)