graphfoundation / ongdb

ONgDB is an independent fork of Neo4j® Enterprise Edition version 3.4.0.rc02 licensed under AGPLv3 and/or Community Edition licensed under GPLv3
https://www.graphfoundation.org/projects/ongdb/
380 stars 57 forks source link

Improve build performance of modules #84

Open MC-JY opened 2 years ago

MC-JY commented 2 years ago

Hi, I'm now using ongdb. I found that the build time of the project is not very fast when I used  mvn -T 1C install -DskipTests command to build the project during Github Actions. So I try to speed up the build performance of the project. The goal here is to clean up dependencies between maven modules in the project in order to improve the build performance.

Thread usage before cleaning up module dependencies was this: 1

Using mvn dependency:analyze command I managed to have an overview of the unused dependencies of every module. I focused only on the dependencies between modules. The following dependencies can be cleaned up:


org.graphfoundation.ongdb:ongdb-geequel-compatibility-spec-suite(/enterprise/cypher/compatibility-spec-suite) -> org.graphfoundation.ongdb:ongdb-enterprise-geequel(enterprise/cypher/cypher)
org.graphfoundation.ongdb:ongdb-geequel-acceptance-spec-suite(enterprise/cypher/acceptance-spec-suite) -> org.graphfoundation.ongdb:ongdb-enterprise-geequel(enterprise/cypher/cypher)

After clean up, the build time has been reduced by 1min40s when I use parallel build during Github Actions. Thread usage after cleaning up module dependencies was this: 2

Could you help me review this issue? I can submit a PR to improve build performance of the project.

Thank you very much for your attention. Best regards.

bradnussbaum commented 2 years ago

Hi @MC-JY - thank you for the analysis! I think the dependency cleanup you're proposing is a good optimization. The best way to get it tested out is to make the changes you indicated and submit a PR. If there are no issues with build or tests, etc. then should be good to go.

bradnussbaum commented 2 years ago

@MC-JY Did you intend to submit a PR to cleanup unused dependencies? I'd be interested to try that out and see the improvements to the build times. Thanks.

crazyyanchao commented 1 year ago

这是来自QQ邮箱的假期自动回复邮件。你好,我最近正在休假中,无法亲自回复你的邮件。我将在假期结束后,尽快给你回复。