Hello, > I have started optimizing Sqlg to do a bulk/barrier for its VertexStep > optimizations.
Cool. > 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. Makes sense. > After that VertexStepStrategy tries to optimize what remains. > It ultimately replaces optimizable sequential steps with a > SqlgVertexStep. Okay... > 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. Smart. You got chops. > 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? Eeeeeeeeeeeeeeee…… huuuuuuuhhhhhhhh……………. There is a “easy” and there is a “hard.” Give me an example traversal and lets discuss from a more specific standpoint before generalizing... Thanks, Marko. http://markorodriguez.com
