-
Notifications
You must be signed in to change notification settings - Fork 304
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
HPCC-30606 Fix "significant skew in records warning" #17961
Conversation
https://track.hpccsystems.com/browse/HPCC-30606 |
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.
@shamser looks good. A couple of comments.
common/wuanalysis/anarule.cpp
Outdated
else | ||
{ | ||
bool fileSkew = false; | ||
if (stat == StTimeDiskWriteIO) |
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 think there are 3 cases worth separating.
i) No skew in size written => Significant skew in IO performance
ii) skew in size written but no skew in record counts => Significant skew in record sizes
iii) skew in size written and record counts => Significant skew in number of record
Skew in size
common/wuanalysis/anarule.cpp
Outdated
{ | ||
IWuEdge *inputEdge; | ||
unsigned i=0; | ||
while (!fileSkew && (inputEdge=activity.queryInput(i++))) |
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.
There will only ever be one input, so this could be simplified.
common/wuanalysis/anarule.cpp
Outdated
} | ||
if (stat == StTimeDiskReadIO) | ||
{ | ||
IWuEdge *outputEdge; |
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.
There will only ever be one output, so this could be simplified.
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.
@shamser one issue, otherwise looks good.
common/wuanalysis/anarule.cpp
Outdated
IWuEdge *wuEdge = nullptr; | ||
if ((stat==StTimeDiskWriteIO) || (actkind==TAKspillwrite)) | ||
{ | ||
if (activity.getStatRaw(StSizeDiskWrite)>options.queryOption(watOptSkewThreshold)) |
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.
testing the wrong stat. Needs to be getStatRaw(StSizeDiskWrite, StSkewMax). Same for the code below.
IWuEdge *wuEdge = activity.queryOutput(0); | ||
} | ||
if (wuEdge && wuEdge->getStatRaw(StNumRowsProcessed, StSkewMax)>options.queryOption(watOptSkewThreshold)) | ||
numRowsSkew = true; |
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.
This is slightly tricky for a disk read, because it may be filtered, but probably better than not taking it into account.
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.
@shamser looks good, please squash
Signed-off-by: Shamser Ahmed <[email protected]>
6f5e9a8
into
hpcc-systems:candidate-9.4.x
Type of change:
Checklist:
Smoketest:
Testing: