Hi,

I have started optimizing Sqlg to do a bulk/barrier for its VertexStep
optimizations.

Sqlg has two optimization strategies.

GraphStepStrategy and VertexStepStrategy. GraphStepStrategy executes
first and then VertexStepStrategy.

GraphStepStrategy starts at the beginning of the traversal optimizing
from left to right till it reaches a step that it can not optimize and
terminates.

After that VertexStepStrategy tries to optimize what remains.
It ultimately replaces optimizable sequential steps with a
SqlgVertexStep.

Thus far the SqlgVertexStep always has one incoming traverser from
where it continues the traversal. Basically it translated to a sql
where clause with the incoming traversal element's id.

The current optimization is to bulk the incoming traversers and execute
the traversal for all incoming traversers in one go. This reduces
latency and has a drastic performance improvement.

I do the same as the existing BarrierSteps and iterate the `starts` to
collect all the left incoming traversers and from there I continue and
all is well.

However for local traversals there is only one start on the traversal
so the barrier idea is not working.

Is there a way barrier all incoming left traversers on local
traversals?

I have looked but can not see a way to accomplish this. Before I start
hacking away do you have ideas as how to accomplish this.

Does Tinkerpop already barrier/bulk incoming traversers on local
traversals?


Thanks
Pieter

Reply via email to