You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "pieter martin (JIRA)" <ji...@apache.org> on 2015/08/30 14:45:45 UTC

[jira] [Created] (TINKERPOP3-820) Change steps after the strategy phase.

pieter martin created TINKERPOP3-820:
----------------------------------------

             Summary: Change steps after the strategy phase.
                 Key: TINKERPOP3-820
                 URL: https://issues.apache.org/jira/browse/TINKERPOP3-820
             Project: TinkerPop 3
          Issue Type: Improvement
          Components: process
    Affects Versions: 3.1.0-incubating
            Reporter: pieter martin
            Assignee: Marko A. Rodriguez


Hi,

I am working on optimizing the order() step for sqlg (generating the order by clause in the sql).

So far I have been collapsing steps in the strategy phase. However to optimize the order() clause I need to pre-parse the (so-far) collapsed step to know whether a OrderGlobalStep step can be optimized or not.

For a traversal starting from a GraphStep this is ok as the traversal starts from a label which is available and thus the pre-parser has all the information it needs available to it at the strategy phase.

For a traversal that starts from a VertexStep the start vertex is only known runtime (after iterating) so the pre-parser can only execute at runtime to gather the information needed to optimize the OrderGlobalStep. This means in order to optimize a the traversal I need to change the steps after starting the iteration.

Unfortunately the traversal is locked and I am unable to optimize steps whilst iterating.

I removed the lock code and my optimizations are working fine. All tests pass except for the lock specific test {{CoreTraversalTest.shouldNotAlterTraversalAfterTraversalBecomesLocked}}.

Is removing or disabling the lock something that will be considered.
Bit like a JIT compiler, we can change the execution strategy/step/path after having started the iteration.

Thanks
Pieter



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