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)

Reply via email to