-
Notifications
You must be signed in to change notification settings - Fork 161
Automatically make chunks immutable once all Insert operators finish #2609
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
Conversation
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.
First batch.
@Bouncner as discussed offline, I renamed |
Can you add a note to the description what changed to the change tables operators? And the changes to |
Anything missing? |
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.
Just a few comments and one renaming discussion. Nothing that would block this PR.
This PR automatically finalizes chunks in tables if they are filled up to the desired target size and all inserting transactions are either committed or rolled back. Though not yet part of this PR, this could trigger background statistics generation or data encoding in the future.
In the light of the discussions, we decided to rename
Chunk::finalize()
toset_immutable()
(and addedtry_set_immutable()
) to make the semantics clear. While the first one always marks a chunk as immutable, the second only does this if the chunk was marked to have reached its target size (done by the Insert operator that notices that and adds a new chunk) and all Insert operators writing to the chunk finished.Alongside, this PR makes slight changes to meta tables. First, we do not build
TableStatistics
(histograms and NULL value ratio) for them whenever we create them anymore. Second, theChangeMetaTable
LQP node/operator was adapted to only require a second input for updates.Furthermore, the
third_party/tpcds-kit
submodule is updated (again) after it was accidentally downgraded by #2618.