Skip to content
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

release-22.1: sql/stats: support rowCountEq = 0 in histogram.adjustCounts #82704

Closed
wants to merge 1 commit into from

Conversation

michae2
Copy link
Collaborator

@michae2 michae2 commented Jun 10, 2022

Backport 1/1 commits from #82474.

/cc @cockroachdb/release


The predicted histograms in statistics forecasts will often have buckets
with NumEq = 0, and some predicted histograms will have all buckets
with NumEq = 0. This wasn't possible before forecasting, because the
histograms produced by EquiDepthHistogram never have any buckets with
NumEq = 0.

If adjustCounts is called on such a histogram, rowCountEq and
distinctCountEq will be zero. adjustCounts should still be able to
fix such a histogram to have sum(NumRange) = rowCountTotal and
sum(DistinctRange) = distinctCountTotal. This patch teaches
adjustCounts to handle these histograms.

(Similarly, predicted histograms could have all buckets with
NumRange = 0, but this is already possible for histograms produced by
EquiDepthHistogram, so adjustCounts already handles these.)

Also, add a few more comments to adjustCounts.

Assists: #79872

Release note: None


Release justification: Low risk, high benefit change to existing functionality.

The predicted histograms in statistics forecasts will often have buckets
with NumEq = 0, and some predicted histograms will have _all_ buckets
with NumEq = 0. This wasn't possible before forecasting, because the
histograms produced by `EquiDepthHistogram` never have any buckets with
NumEq = 0.

If `adjustCounts` is called on such a histogram, `rowCountEq` and
`distinctCountEq` will be zero. `adjustCounts` should still be able to
fix such a histogram to have sum(NumRange) = rowCountTotal and
sum(DistinctRange) = distinctCountTotal. This patch teaches
`adjustCounts` to handle these histograms.

(Similarly, predicted histograms could have all buckets with
NumRange = 0, but this is already possible for histograms produced by
`EquiDepthHistogram`, so `adjustCounts` already handles these.)

Also, add a few more comments to `adjustCounts`.

Assists: cockroachdb#79872

Release note: None
@michae2 michae2 requested review from mgartner, rytaft, msirek and a team June 10, 2022 04:17
@michae2 michae2 requested a review from a team as a code owner June 10, 2022 04:17
@blathers-crl
Copy link

blathers-crl bot commented Jun 10, 2022

Thanks for opening a backport.

Please check the backport criteria before merging:

  • Patches should only be created for serious issues or test-only changes.
  • Patches should not break backwards-compatibility.
  • Patches should change as little code as possible.
  • Patches should not change on-disk formats or node communication protocols.
  • Patches should not add new functionality.
  • Patches must not add, edit, or otherwise modify cluster versions; or add version gates.
If some of the basic criteria cannot be satisfied, ensure that the exceptional criteria are satisfied within.
  • There is a high priority need for the functionality that cannot wait until the next release and is difficult to address in another way.
  • The new functionality is additive-only and only runs for clusters which have specifically “opted in” to it (e.g. by a cluster setting).
  • New code is protected by a conditional check that is trivial to verify and ensures that it only runs for opt-in clusters.
  • The PM and TL on the team that owns the changed code have signed off that the change obeys the above rules.

Add a brief release justification to the body of your PR to justify this backport.

Some other things to consider:

  • What did we do to ensure that a user that doesn’t know & care about this backport, has no idea that it happened?
  • Will this work in a cluster of mixed patch versions? Did we test that?
  • If a user upgrades a patch version, uses this feature, and then downgrades, what happens?

@cockroach-teamcity
Copy link
Member

This change is Reviewable

Copy link
Contributor

@msirek msirek left a comment

Choose a reason for hiding this comment

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

:lgtm:

Reviewed 2 of 2 files at r1, all commit messages.
Reviewable status: :shipit: complete! 1 of 0 LGTMs obtained (waiting on @mgartner and @rytaft)

@michae2
Copy link
Collaborator Author

michae2 commented Jun 10, 2022

Thanks! I'll let this bake a little longer on master before merging.

@rytaft
Copy link
Collaborator

rytaft commented Jun 13, 2022

I know this will be needed for ultimately backporting the solution to #79872, but I'm starting to question whether backporting all the changes that will be needed is wise. Let's hold off on merging this until it's clear that we really do want to backport the comprehensive fix to #79872.

@michae2
Copy link
Collaborator Author

michae2 commented Jul 5, 2022

Closing this, will reopen later if we do decide to backport.

@michae2 michae2 closed this Jul 5, 2022
@michae2 michae2 deleted the backport22.1-82474 branch July 13, 2022 17:43
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.

4 participants