8000 Automatically make chunks immutable once all Insert operators finish by dey4ss · Pull Request #2609 · hyrise/hyrise · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

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

Merged
merged 28 commits into from
Jan 31, 2024

Conversation

dey4ss
Copy link
Member
@dey4ss dey4ss commented Aug 22, 2023

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() to set_immutable() (and added try_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, the ChangeMetaTable 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.

@dey4ss dey4ss added the FullCI Run all CI tests (slow, but required for merge) label Aug 22, 2023
@dey4ss dey4ss requested a review from Bouncner August 22, 2023 18:25
@dey4ss dey4ss changed the title Automatically finalize chunks in data tables Automatically finalize chunks once all Insert operators finish Aug 22, 2023
Copy link
Collaborator
@Bouncner Bouncner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First batch.

@dey4ss dey4ss requested a review from Bouncner January 11, 2024 12:24
@dey4ss
Copy link
Member Author
dey4ss commented Jan 17, 2024

@Bouncner as discussed offline, I renamed finalize() to set_immutable(), try_finalize() to try_set_immutable(), and mark_as_finalizable() to reached_target_size() to make clear what the semantics of the methods are

@dey4ss dey4ss changed the title Automatically finalize chunks once all Insert operators finish Automatically make chunks immutable once all Insert operators finish Jan 17, 2024
@dey4ss dey4ss requested a review from Bouncner January 18, 2024 08:21
@Bouncner
Copy link
Collaborator
Bouncner commented Jan 18, 2024

Can you add a note to the description what changed to the change tables operators?

And the changes to finalize() etc.

@dey4ss
Copy link
Member Author
dey4ss commented Jan 18, 2024

Can you add a note to the description what changed to the change tables operators?

And the changes to finalize() etc.

Anything missing?

Copy link
Collaborator
@Bouncner Bouncner left a 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
FullCI Run all CI tests (slow, but required for merge)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants
0