[ https://issues.apache.org/jira/browse/S2GRAPH-16?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15101146#comment-15101146 ]
ASF GitHub Bot commented on S2GRAPH-16: --------------------------------------- Github user hsleep commented on the pull request: https://github.com/apache/incubator-s2graph/pull/6#issuecomment-171863628 I have tested this PR using below command. ``` sbt test ``` But following errors are occurred at the compile time. ``` ... [error] /Users/hsleep/git/incubator-s2graph/s2core/src/test/scala/com/kakao/s2graph/core/parsers/WhereParserTest.scala:34: type mismatch; [error] found : Map[String,com.kakao.s2graph.core.mysqls.Label] [error] required: com.kakao.s2graph.core.mysqls.Label [error] val whereOpt = WhereParser(labelMap).parse(sql) [error] ^ [error] one error found ... ``` > 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)