-
Notifications
You must be signed in to change notification settings - Fork 5.9k
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
statistics: correct behavior of non-lite InitStats and stats sync load of no stats column #57803
Conversation
296b172
to
d201740
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #57803 +/- ##
================================================
+ Coverage 73.1616% 73.9413% +0.7796%
================================================
Files 1671 1701 +30
Lines 460714 469452 +8738
================================================
+ Hits 337066 347119 +10053
+ Misses 102898 100952 -1946
- Partials 20750 21381 +631
Flags with carried forward coverage won't be shown. Click here to find out more.
|
d201740
to
16936a5
Compare
07b9bcf
to
4434c2a
Compare
4434c2a
to
0494095
Compare
fca25f1
to
f9f7ac1
Compare
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 please summarize the changes made in your PR description? It's a bit difficult to understand what is happening in the PR.
Co-authored-by: Rustin <tech@rustin.me>
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.
rest LGTM
Thank you!
require.True(t, statsTbl.GetCol(tblInfo.Columns[3].ID).IsFullLoad()) | ||
require.Nil(t, statsTbl.GetCol(tblInfo.Columns[2].ID)) | ||
_, loadNeeded, analyzed := statsTbl.ColumnIsLoadNeeded(tblInfo.Columns[2].ID, false) | ||
// After the sync load. The column without any thing in storage should not be marked as loadNeeded any more. |
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.
If we analyze column c
next time, I assume we can load it correctly? Could you please also add a test step to include it?
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, if we analyze it. After the sync load. It should return loadNeeded=false, analyzed=true
86b446d
to
2ecd406
Compare
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.
Thanks!
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: hawkingrei, Rustin170506 The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
[LGTM Timeline notifier]Timeline:
|
/retest |
Signed-off-by: ti-chi-bot <ti-community-prow-bot@tidb.io>
In response to a cherrypick label: new pull request created to branch |
What problem does this PR solve?
Issue Number: close #57804
Problem Summary:
What changed and how does it work?
You can regard this pull request as a totally rewrite of #53399 and #53298
This pull reduced the possible stats state after the stats initialization finished. Now we'll get the same memory objects after a non-concurrent or current non-lite load.
Then use the unified status to make the
ColumnIsLoadNeeded
correct when one column even has no record in mysql.stats_histograms.Check List
Tests
Side effects
Documentation
Release note
Please refer to Release Notes Language Style Guide to write a quality release note.