-
Notifications
You must be signed in to change notification settings - Fork 4
feat: expose parallelizable execution plan #285
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
base: main
Are you sure you want to change the base?
Conversation
2454f50
to
b4aa71a
Compare
TODO: add some benchmark(able) sequential vs. parallel examples with Java driver |
core/src/test/java/org/neo4j/importer/v1/pipeline/ImportExecutionPlanIT.java
Show resolved
Hide resolved
assertThat(stages.get(0)) | ||
.isEqualTo(new ImportStepStage(Set.of(categorySource, productInCategorySource, productSource))); | ||
var productNodeStep = new NodeTargetStep( | ||
new NodeTarget( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: I know we have constructors here primarily for deserialization. Do you think it is worth adding an optional builder support (though a constructor or as new NodeTarget.Builder().build()
to make this more readable in other cases.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💯 I have only taken care of deserialization as you guessed, so the available APIs are pretty verbose at the moment.
Builders would make a lot of sense indeed.
The `ImportPipeline` exposes a new API, that returns an `ImportExecutionPlan`. An execution plan is made of independent groups. Each group can be processed in parallel and is made of sequential stages. Each next stage, within the group, depends on the completion of the previous stage. Finally, each stage is made of independent steps, they can be processed in parallel.
0a53701
to
062f07b
Compare
No description provided.