-
Notifications
You must be signed in to change notification settings - Fork 285
Adding agg_spill_mem parameter. #22623
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
PR Compliance Guide 🔍Below is a summary of compliance checks for this PR:
Compliance status legend🟢 - Fully Compliant🟡 - Partial Compliant 🔴 - Not Compliant ⚪ - Requires Further Human Verification 🏷️ - Compliance label |
PR Code Suggestions ✨Explore these optional code suggestions:
|
9299bd0
to
78a2fbb
Compare
1dac665
to
78232f9
Compare
User description
What type of PR is this?
Which issue(s) this PR fixes:
issue #3433
What this PR does / why we need it:
Try to add a spill mem session var to config spill threshold. right now it is NOT auto tuned, but this can be done at
either plan time (we know global resource) or run time (we know real time resource). But later.
PR Type
Enhancement
Description
Add
agg_spill_mem
session variable to configure aggregate spill thresholdPropagate
agg_spill_mem
from query builder through plan nodes to runtime operatorsDefine memory size constants (KiB, MiB, GiB, TiB, PiB) in common package
Update protobuf definitions to include
spill_mem
field in Group and Node messagesDiagram Walkthrough
File Walkthrough
1 files
Register new `agg_spill_mem` session variable with default 1GiB
14 files
Add memory size constants (KiB through PiB)
Add `aggSpillMem` field to QueryBuilder struct
Initialize `aggSpillMem` from session variable in QueryBuilder
Set `SpillMem` on aggregate nodes in DML operations
Set `SpillMem` on aggregate nodes for distinct optimization
Set `SpillMem` on aggregate nodes during pushdown optimization
Set `SpillMem` when rewriting DISTINCT to aggregate
Set `SpillMem` on aggregate nodes in INSERT plans
Set `SpillMem` on aggregate nodes in constraint plans
Add `spill_mem` field to Node message definition
Add `spill_mem` field to Group message definition
Add `SpillMem` field to Group operator struct
Copy `SpillMem` when duplicating and constructing Group operators
Convert `SpillMem` between pipeline and VM operator representations
1 files
Fix return statement in `GetLowerCaseTableNames` method
2 files