-
Notifications
You must be signed in to change notification settings - Fork 153
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
feat(plan): generalize attributes in planner #4982
Conversation
return true | ||
} | ||
return false | ||
} |
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.
This is slick! ⬆️
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.
Looks good. Tried this out with a new parallel pivot experiment I have and it works great.
ts []execute.Transformation | ||
a execute.Administration | ||
id execute.DatasetID | ||
factor int |
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.
Nice
9ad6c4d
to
4cf67b0
Compare
This set of changes creates a framework whereby plan nodes can model characteristics of the data they consume and produce. These characteristics are called
attributes
in the code and currently there are three different kinds:collation
to indicate data that is collated (sorted) by particular columnsparallel-run
to indicate that operations are run in parallelparallel-merge
to indicate a plan node that represents a merging of parallel data streamsThe parallel attributes were previously existing, but with this set of changes it is the procedure specs themselves that describe whether run in parallel or if they merge parallel streams.
Different attributes being produced or required by a particular operation is expressed by implementing interfaces. The comment at the top of
attributes.go
describes this in more detail.This change set is mostly the same as the POC that was in #4902. There is a more comprehensive description over there, which is also valid for this PR. The main differences from this PR are changes that were required to allow the tests in
parallel_test.go
to pass.This work is part of (but does not complete) #4628.