You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@atlas.apache.org by "Jeffrey Hagelberg (JIRA)" <ji...@apache.org> on 2016/12/12 23:40:59 UTC

[jira] [Comment Edited] (ATLAS-1369) Optimize Gremlin created by DSL Translator

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

Jeffrey Hagelberg edited comment on ATLAS-1369 at 12/12/16 11:40 PM:
---------------------------------------------------------------------

It's looking like this is all I'll be able to do for this today.  Please let me know if you have any questions.  This is pretty complicated code :-(


was (Author: jnhagelb):
I'll spent a bit more time today see if I can get at least the basic and/or expansion working for TP 2.  Maybe we can disable the things that will require more investigation for now.

> Optimize Gremlin created by DSL Translator
> ------------------------------------------
>
>                 Key: ATLAS-1369
>                 URL: https://issues.apache.org/jira/browse/ATLAS-1369
>             Project: Atlas
>          Issue Type: Improvement
>            Reporter: Jeffrey Hagelberg
>            Assignee: Jeffrey Hagelberg
>         Attachments: rb54680.patch
>
>
> The way the queries are generated now, in many cases the indices are not used when executing queries.  The main problem is that gremlin cannot currently use the graph indices to optimize the lookup for "has" expressions within an "and" or an "or".  This JIRA introduces a GremlinQueryOptimizer that attempts to extract "has" expressions out of "and" expressions and turn "or" expressions into unions.
> The code being submitted has only been tested with TP 3 at this point.  There are some issues that need to be fixed before this can be used with TP 2:
>    - FunctionGenerator - generates functions that take GraphTraversal as an argument.  That should be changed to GreminPipeline when using TP 2.  The return type should probably come from a new method in GremlinExpressionFactory
>    - loop support - for TP2, we will need to add logic to make sure that the loop call is not separated from the alias it references
>   - alias handling - the alias safe/restore logic in ExpandOrsOptimization.getBaseResultExpression() may be need to adjusted for TP2
>   - possibly other issues, TBD



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