alibaba / alibaba/GraphScope

[GIE-QO] Towards optimizing the execution of Gremlin's subquery

Open
#1,512 0 comments 0 reactions 0 assignees View on GitHub
component:gaia summer-of-code
Dominant language
C++
Stars
3.6k
Forks
468
Avg merge
29m
Merged PRs (30d)
1

Description

**Is your feature request related to a problem? Please describe.**
Subquery is an important feature in Gremlin, in which an internal query is called by an external query for expressing certain functionality. For example,  in the query g.V().out().where(out().has(“name”, “John”)), the clause enclosed by where()-step is a subquery that is used to check whether there is an outgoing neighbor named “John”. There are some alternative ways of executing subquery, but the problem is there is not a standard for choosing the best way.

**Describe the solution you'd like**
A potential solution is required to derive some heuristics for choosing the best way of executing the subqueries via a set of benchmarking and cost analysis, specifically
- two candidate alternatives of executing  subquery will be provided;
- a proposal of benchmarking should be given in order to evaluate the performance of two alternatives under different scenarios;
- a thorough cost analysis can be conducted via the benchmarking results;
- some heuristics of choosing between the two alternatives are finally derived from the cost analysis.

Contributor guide

Open the contributing guide

Research direction

No files, tests, or entry points are named. Start by locating the two candidate Gremlin subquery execution alternatives, then define benchmark scenarios and compare their costs. Done means producing evidence-based heuristics for choosing between the alternatives.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
backend-api-design
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.