Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enhance property pruning rule #4385

Closed
czpmango opened this issue Jul 7, 2022 · 1 comment · Fixed by #4523
Closed

Enhance property pruning rule #4385

czpmango opened this issue Jul 7, 2022 · 1 comment · Fixed by #4523
Labels
type/enhancement Type: make the code neat or more efficient

Comments

@czpmango
Copy link
Contributor

czpmango commented Jul 7, 2022

At present, our property pruning optimization only considers the symbols between operators without analyzing specific expressions, so some statements that can be optimized may be ignored. The following statement can prune all properties.

MATCH (v1)-[e:like*1..5]->(v2)
WHERE id(v1) == "Tim Duncan"
RETURN count(v2)

This optimization can not only reduce rpc overhead but also reduce memory pressure during graphd computation.

@czpmango czpmango added the type/enhancement Type: make the code neat or more efficient label Jul 7, 2022
@czpmango
Copy link
Contributor Author

czpmango commented Jul 7, 2022

Fwiw, some simple aggregations like count(*) can be considered pushed down to the storage layer(Scan or Traverse operator).
This may greatly improve the performance of statements like the above.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/enhancement Type: make the code neat or more efficient
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant