Conversation
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request introduces a significant performance optimization by conditionally skipping the construction of path-related data structures and metadata when a pathAlias is not specified in a query. This change primarily targets queries like IS2, which do not declare a pathAlias, leading to a substantial reduction in ArrayList allocations and copies. The modification is controlled by a simple null check, ensuring low risk while delivering high impact on memory efficiency. Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request introduces performance optimizations to the MatchEdgeTraverser by conditionally creating path-related objects and metadata only when a path alias is explicitly declared in the query. This change aims to reduce memory allocation and processing for queries that do not require path information. A new test case, testWhileWithoutPathAliasSkipsPathConstruction, has been added to validate this optimization, ensuring that traversals without path aliases still correctly identify reachable vertices and depths while confirming that path construction is skipped. There is no feedback to provide.
Coverage Gate ResultsThresholds: 85% line, 70% branch Line Coverage: ✅ 100.0% (6/6 lines)
Branch Coverage: ✅ 100.0% (10/10 branches)
|
Test Count Gate Results✅ No baseline available yet — gate skipped (first run). |
40fb83f to
5e89ac0
Compare
edac01d to
5453cb1
Compare
5e89ac0 to
910deee
Compare
5453cb1 to
6a61953
Compare
JMH LDBC Benchmark ComparisonBase: Single-Thread Results
Multi-Thread Results
Scalability (MT/ST ratio)
|
|
Hi @sandrawar, please profile regressions using asyncprofiler on Hetzner CCX 33 node and find out what caused the regressions. It should be quite the opposite as I see it. |
910deee to
60af410
Compare
6a61953 to
f1f81cc
Compare
PR Title:
YTDB-630: skip path construction
Motivation:
The IS2 query does not declare a pathAlias. The pathToHere parameter is only needed when the user requests $matchPath metadata. When no pathAlias exists, pass null and skip all path construction
Expected impact: For IS2, this eliminates all path ArrayList allocations and copies. Combined with R4a, this is the most impactful allocation reduction.
Risk: Low — controlled by a simple null check. The pathToHere is already nullable.