8000 [DYOD] Only use valid UCCs in optimization and limit cacheability of plans optimized using UCCs by j-hellenberg · Pull Request #2600 · hyrise/hyrise · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

[DYOD] Only use valid UCCs in optimization and limit cacheability of plans optimized using UCCs #2600

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

Draft
want 8000 s to merge 26 commits into
base: robert/add-cacheability-information-for-optimization-rules
Choose a base branch
from

Conversation

j-hellenberg
Copy link
Contributor
@j-hellenberg j-hellenberg commented Aug 2, 2023

Make sure to only use UCCs in optimization that are guaranteed_to_be_valid.

Also, we want to ensure that Hyrise only caches logical and physical query plans that cannot become invalid, because executing an invalid query plan might produce incorrect results. Query plans could become invalid if they have been optimized using UCCs that are not permanent, e.g., incidental UCCs discovered by the UccDiscoveryPlugin. The same can happen if a Functional Dependency (FD) was used that was derived from a non-permanent UCC. We ensure correct caching by having each optimization rule return whether the resulting Logical Query Plan can be cached.

Note that this PR currently targets our first PR branch, in order to not include the changes from there again here :) Please review the other PR before this one. We will change the PR to target master before merging.

@j-hellenberg j-hellenberg added the FullCI Run all CI tests (slow, but required for merge) label Aug 2, 2023
@j-hellenberg j-hellenberg force-pushed the j-hellenberg/only_use_valid_uccs_in_optimization branch from 8016545 to 1ef774f Compare August 2, 2023 16:16
@SanJSp SanJSp self-requested a review August 4, 2023 16:36
Copy link
Contributor
@SanJSp SanJSp left a comment

Choose a reason for hiding this comment

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

A looooot of changes, but good job!

Again only minor comments and all in all great changes! Feel free to consider my comments and if they're not relevant, skip them.

For the future: Maybe, when touching so many files, it makes sense to specify an order in which the reviewer can work through the files.

Happy coding!

@j-hellenberg j-hellenberg force-pushed the j-hellenberg/maintain_data_dependencies branch from d214251 to b3b721c Compare August 22, 2023 09:21
j-hellenberg and others added 8 commits August 22, 2023 11:46
…uaranteed to be currently valid

Co-authored-by: kalathen <kalathen@jyu.fi>
Co-authored-by: Margarete <margarete.dippel@student.hpi.de>
…y be false if they were derived from a table key constraint which can become invalid

Co-authored-by: kalathen <kalathen@jyu.fi>
Co-authored-by: Margarete <margarete.dippel@student.hpi.de>
…e resulting query plan is cacheable

Co-authored-by: kalathen <kalathen@jyu.fi>
Co-authored-by: Margarete <margarete.dippel@student.hpi.de>
… we need to be able to call is_permanent on it

Co-authored-by: kalathen <kalathen@jyu.fi>
Co-authored-by: Margarete <margarete.dippel@student.hpi.de>
…query plan and only cache cacheable query plans

Co-authored-by: kalathen <kalathen@jyu.fi>
Co-authored-by: Margarete <margarete.dippel@student.hpi.de>
Co-authored-by: kalathen <kalathen@jyu.fi>
Co-authored-by: Margarete <margarete.dippel@student.hpi.de>
Co-authored-by: kalathen <kalathen@jyu.fi>
Co-authored-by: Margarete <margarete.dippel@student.hpi.de>
Co-authored-by: kalathen <kalathen@jyu.fi>
Co-authored-by: Margarete <margarete.dippel@student.hpi.de>
@j-hellenberg j-hellenberg force-pushed the j-hellenberg/only_use_valid_uccs_in_optimization branch from a5382c1 to be582b7 Compare August 22, 2023 12:52
Copy link
Member
@dey4ss dey4ss left a comment

Choose a reason for hiding this comment

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

I really like your code and most comments are just minor remarks or ideas on design choices (and some code guidelines though). Did not really find functionality issues or bugs, nice work.

@dey4ss
Copy link
Member
dey4ss commented Apr 30, 2024

Put this on hold until end of August. We plan to incorporate this feature, but there is currently no capacity for it. Will work on it when back from the internship.

@dey4ss dey4ss closed this Apr 30, 2024
@dey4ss dey4ss reopened this Apr 30, 2024
@dey4ss dey4ss marked this pull request as draft April 30, 2024 17:10
@Rob2U Rob2U force-pushed the j-hellenberg/only_use_valid_uccs_in_optimization branch from a9edd5a to be582b7 Compare March 9, 2025 21:38
Rob2U added 3 commits March 19, 2025 14:37
… and independent FDs. add tests for correct handling of cacheability of LQPs using FDs for optimization.
…,add integration test of ucc discovery plugin, switch to invalidation instead of deletion for invalidated key constraints
@Rob2U Rob2U force-pushed the j-hellenberg/only_use_valid_uccs_in_optimization branch 3 times, most recently from 3c808d7 to b919c53 Compare April 14, 2025 08:53
@Rob2U Rob2U force-pushed the j-hellenberg/only_use_valid_uccs_in_optimization branch from b919c53 to d0614ae Compare April 14, 2025 20:14
@Rob2U Rob2U removed the FullCI Run all CI tests (slow, but required for merge) label Apr 30, 2025
@Rob2U Rob2U changed the base branch from j-hellenberg/maintain_data_dependencies to robert/add-cacheability-information-for-optimization-rules April 30, 2025 14:14
…les' into j-hellenberg/only_use_valid_uccs_in_optimization
Rob2U added a commit that referenced this pull request Apr 30, 2025
… depending on it (this functionality is now part #2600)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants
0