JanusGraph / JanusGraph/janusgraph

Stream g.V(v).outE() results

Open
#2,966 6 comments 0 reactions 0 assignees View on GitHub
area/core kind/performance
Dominant language
Java
Stars
5.8k
Forks
1.2k
Avg merge
13h 53m
Merged PRs (30d)
6

Description

See https://lists.lfaidata.foundation/g/janusgraph-users/topic/88677270#6380

g.E().hasNext() is fast, and that’s because the results are streamed. On the other hand, g.V(v0).outE().hasNext() is slow if vertex v0 has a huge amount of incident edges, and that’s because the results, in this case, are not streamed. It definitely needs some investigation, but usually, it’s not a big problem because people don’t expect a large number of incident edges attached to a node.

Contributor guide

Open the contributing guide

Research direction

Start with the linked janusgraph-users discussion, then compare the g.E().hasNext() and g.V(v).outE().hasNext() traversal paths. Investigate why incident-edge results are not streamed; done means g.V(v).outE() can begin returning results without waiting for all incident edges to be processed.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
databases
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.