-
Notifications
You must be signed in to change notification settings - Fork 28.5k
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
[SPARK-21603][SQL][FOLLOW-UP] Change the default value of maxLinesPerFunction into 4000 #19021
Conversation
I'll check performance changes in TPC-DS. |
Got the numbers and see them here. The numbers seems to be the almost same with the master just before #18810 merged. @gatorsmile @viirya |
Also, I talked with @viirya here and |
Test build #80976 has finished for PR 19021 at commit
|
.intConf | ||
.createWithDefault(2667) |
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.
Could you also try 2731 and 2049? and see the perf difference?
8K = 8192
8192 / 3 + 1 = 2731
8192 / 2 + 1 = 4097
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.
I've already checked 2800
; this value activated too-long-function optimization in Q17/Q66 and Q66 had regression. So, I think 2731
and 2049
possibly have the same regression (I've also checked 2900
that disabled this in Q17/Q66).
btw, why the computation is based on 8K
? It seems the threshold of DontCompileHugeMethods
is 8000?
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.
YES.... Just double check it. The default of HugeMethodLimit
is 8000... Thanks!
LGTM |
cc @rednaxelafx |
Thanks! Merging to master. |
Just for your info, again, I looked into this issue in TPC-DS quries; I added some code to check the actual bytecode size of these quries and I found the gen'd function in Q17/Q66 only had too-long bytecode over
BTW, why we don't check if gen'd bytecode size is over |
@maropu Should be a good idea. Especially the number of lines of code may not be intuitive to set for this purpose. |
What changes were proposed in this pull request?
This pr changed the default value of
maxLinesPerFunction
into4000
. In #18810, we had this new option to disable code generation for too long functions and I found this option only affectedQ17
andQ66
in TPC-DS. But,Q66
had some performance regression:To keep the previous performance in TPC-DS, we better set higher value at
maxLinesPerFunction
by default.How was this patch tested?
Existing tests.