JanusGraph / JanusGraph/janusgraph
Stream g.V(v).outE() results
- 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
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