You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There were multiple unfinished attempts to add DFS traversal into TinkerPop (issue, attempt 1, attempt 2). Unfortunately, that work didn't go through that time.
Usually TinkerPop steps are processed using DFS except the Repeat step which is using BFS.
With BFS in place it might be too memory costly for some traversals touching too many levels. In case DFS option is available for Repeat step then it might be much more efficient to run some algorithms which are space or time optimized for DFS instead of BFS.
We could use some similar approach to the one implemented in Amazon Neptune but I guess instead of specifying repeat mode with withSideEffect we could use just with.
We already can chunk any query using query.batch (i.e. multi-query optimization), thus I believe we don't need a separate mode CHUNKED_DFS to run that optimization over a normal DFS.
Instead, it looks to me that one 2 modes are needed: DFS, BFS.
I guess, what we could do is something like: g.with("hint.repeat-mode", "DFS").V()... which will enable DFS for any repeat after.
I'm not 100% sure if this feature should be implemented on TinkerPop side or Graph Providers side, but knowing that some graph providers already have these repeat step modes, it makes sense to add a similar option into JanusGraph.
Another approach would be to add something into TinkerPop itself (maybe just extending repeat step interface to accept traversing mode via a second argument?).
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
There were multiple unfinished attempts to add DFS traversal into TinkerPop (issue, attempt 1, attempt 2). Unfortunately, that work didn't go through that time.
Usually TinkerPop steps are processed using DFS except the Repeat step which is using BFS.
With BFS in place it might be too memory costly for some traversals touching too many levels. In case DFS option is available for Repeat step then it might be much more efficient to run some algorithms which are space or time optimized for DFS instead of BFS.
We could use some similar approach to the one implemented in Amazon Neptune but I guess instead of specifying repeat mode with
withSideEffect
we could use justwith
.We already can chunk any query using
query.batch
(i.e. multi-query optimization), thus I believe we don't need a separate modeCHUNKED_DFS
to run that optimization over a normal DFS.Instead, it looks to me that one 2 modes are needed:
DFS
,BFS
.I guess, what we could do is something like:
g.with("hint.repeat-mode", "DFS").V()...
which will enable DFS for any repeat after.I'm not 100% sure if this feature should be implemented on TinkerPop side or Graph Providers side, but knowing that some graph providers already have these
repeat step
modes, it makes sense to add a similar option into JanusGraph.Another approach would be to add something into TinkerPop itself (maybe just extending
repeat
step interface to accept traversing mode via a second argument?).Beta Was this translation helpful? Give feedback.
All reactions