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

jobs, sql, ui: Create AutoCreateStats job type #35651

Merged
merged 1 commit into from
Mar 12, 2019

Conversation

celiala
Copy link
Collaborator

@celiala celiala commented Mar 12, 2019

With #34279, enabling the cluster setting
sql.stats.experimental_automatic_collection.enabled has the potential
to create many CreateStats jobs, which can cause the Jobs view on the
AdminUI to become cluttered.

This commit creates a new AutoCreateStats job type for these auto-created
CreateStats jobs, so that users are able to still see their own manual runs
of CREATE STATISTICS, via the pre-existing CreateStats type.

cc @danhhz, @piyush-singh, @rolandcrosby

jobs-auto-create-stats

Release note (admin ui change): AutoCreateStats type added to
Jobs page to filter automatic statistics jobs.

Fixes #34377.

@celiala celiala requested review from rytaft, tbg, RaduBerinde and a team March 12, 2019 16:26
@cockroach-teamcity
Copy link
Member

This change is Reviewable

Copy link
Member

@RaduBerinde RaduBerinde left a comment

Choose a reason for hiding this comment

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

Nice, thanks!

@awoods187
Copy link
Contributor

this is awesome!

@rolandcrosby
Copy link

This is great! Do currently-running auto-stats jobs still show up in the default view or have they all been moved to this subview?

With cockroachdb#34279, enabling the cluster setting
`sql.stats.experimental_automatic_collection.enabled` has the potential
to create many CreateStats jobs, which can cause the Jobs view on the
AdminUI to become cluttered.

This commit creates a new `AutoCreateStats` job type for these auto-created
CreateStats jobs, so that users are able to still see their own manual runs
of CREATE STATISTICS, via the pre-existing `CreateStats` type.

![jobs-auto-create-stats](https://user-images.githubusercontent.com/3051672/54212467-5cea2c80-44b9-11e9-9c11-db749814f019.gif)

Release note (admin ui change): AutoCreateStats type added to
Jobs page to filter automatic statistics jobs.

Fixes cockroachdb#34377.
@celiala
Copy link
Collaborator Author

celiala commented Mar 12, 2019

Yep! In the default view (All types, All statuses), you'll still see currently-running auto-stats jobs.

@celiala
Copy link
Collaborator Author

celiala commented Mar 12, 2019

TFTR!

bors r+

@rytaft
Copy link
Collaborator

rytaft commented Mar 12, 2019

:lgtm: thanks!

@craig
Copy link
Contributor

craig bot commented Mar 12, 2019

Build failed (retrying...)

@vilterp
Copy link
Contributor

vilterp commented Mar 12, 2019

Nice :) Maybe someday auto-stats jobs should be filtered out by default (i.e. you should see everything but them). Not sure what the UI would be tho. Maybe instead of a simple selector dropdown for job type, it's a checkbox dropdown, where by default everything but "auto stats job" is checked? 🤔

Anyway, this is a good step forward 👍

@piyush-singh
Copy link

Agreed with Pete, eventually we should filter out the automated create stats jobs on the default view since the sheer number of them makes it hard to find much without filtering.

@craig
Copy link
Contributor

craig bot commented Mar 12, 2019

Canceled (will resume)

craig bot pushed a commit that referenced this pull request Mar 12, 2019
35321: opt: propagate set operation output types to input columns r=rytaft a=rytaft

This commit updates the `optbuilder` logic for set operations in which
the types of the input columns do not match the types of the output
columns. This can happen if a column on one side has type Unknown,
but the corresponding column on the other side has a known type such
as Int. The known type must be propagated to the side with the unknown
type to prevent errors in the execution engine related to decoding
types.

If there are any column types on either side that don't match the output,
then the `optbuilder` propagates the output types of the set operation down
to the input columns by wrapping the side with mismatched types in a
Project operation. The Project operation passes through columns that
already have the correct type, and creates cast expressions for those
that don't.

Fixes #34524

Release note (bug fix): Fixed an error that happened when executing
some set operations containing only nulls in one of the input columns.

35587: opt: add more cost for lookup joins with more ON conditions r=RaduBerinde a=RaduBerinde

This is a very limited fix for #34810.

The core problem is that we don't take into account that if we have an
ON condition, not only there's a cost to evaluate it on each row, but
we are generating more internal rows to get a given number of output
rows.

I attempted to do a more general fix (for all join types), where I
tried to estimate the "internal" number of rows using
`unknownFilterSelectivity` for each ON condition. There were two
problems:
 - in some cases (especially with lookup joins) we have an extra ON
   condition that doesn't actually do anything:
     `ab JOIN xy ON a=x AND a=10` becomes
     `ab JOIN xy ON a=x AND a=10 AND x=10` becomes
   and `a=10` could remain as an ON condition. This results in bad
   query plans in important cases (e.g. TPCC) where it prefers to do
   an extra lookup join (due to a non-covering index) just because of
   that condition.

 - we don't have the equality columns readily available for hash join
   (and didn't want to extract them each time we cost). In the future
   we may split the planning into a logical and physical stage, and we
   should then separate the logical joins from hash join.

For 19.1, we simply simply add a cost for lookup joins that is
proportional to the number of remaining ON conditions. This is the
least disruptive method that still fixes the case observed in #34810.
I will leave the issue open to address this properly in the next
release.

Note that although hash joins and merge joins have the same issue in
principle, in practice we always generate these expressions with
equality on all possible columns.

Release note: None

35630: storage/tscache: Pick up andy-kimball/arenaskl fix r=nvanbenschoten a=nvanbenschoten

Fixes #31624.
Fixes #35557.

This commit picks up andy-kimball/arenaskl#4.

I strongly suspect that the uint32 overflow fixed in that PR was the
cause of the two index out of bounds panics. See that commit for more
details.

The PR also fixes a bug in memory recylcling within the tscache. I confirmed
on adriatic that over 900 64MB arenas had been allocated since it was last
wiped.

35644: opt: use correct ordering for insert input in execbuilder r=RaduBerinde a=RaduBerinde

We were setting up a projection on the Insert's input but we were
accidentally using the parent Insert's ordering instead of that of the
input.

Fixes #35564.

Release note (bug fix): Fixed a "column not in input" crash when
`INSERT ... RETURNING` is used inside a clause that requires an
ordering.

35651: jobs, sql, ui: Create `AutoCreateStats` job type r=celiala a=celiala

With #34279, enabling the cluster setting
`sql.stats.experimental_automatic_collection.enabled` has the potential
to create many CreateStats jobs, which can cause the Jobs view on the
AdminUI to become cluttered.

This commit creates a new `AutoCreateStats` job type for these auto-created
CreateStats jobs, so that users are able to still see their own manual runs
of CREATE STATISTICS, via the pre-existing `CreateStats` type.

cc @danhhz, @piyush-singh, @rolandcrosby 

![jobs-auto-create-stats](https://user-images.githubusercontent.com/3051672/54212467-5cea2c80-44b9-11e9-9c11-db749814f019.gif)

Release note (admin ui change): AutoCreateStats type added to
Jobs page to filter automatic statistics jobs.

Fixes #34377.

Co-authored-by: Rebecca Taft <[email protected]>
Co-authored-by: Radu Berinde <[email protected]>
Co-authored-by: Nathan VanBenschoten <[email protected]>
Co-authored-by: Celia La <[email protected]>
@craig
Copy link
Contributor

craig bot commented Mar 12, 2019

Build succeeded

@craig craig bot merged commit 6c1e1ac into cockroachdb:master Mar 12, 2019
celiala added a commit to celiala/cockroach that referenced this pull request Mar 15, 2019
- Fixed spacing for tooltip copy
- Fixed styling bug that was introduced in cockroachdb#35651: Job description
  previously truncated long job descriptions in collapsed view.

Tooltip copy - before:

<img width="300" alt="jobs before" src="https://user-images.githubusercontent.com/3051672/54454081-0be36e00-472f-11e9-8fc2-7e59b4565d51.png">

Tooltip copy - after:

<img width="300" alt="fix tooltip-spacing" src="https://user-images.githubusercontent.com/3051672/54454082-0be36e00-472f-11e9-9683-3b63490fbfe1.png">

Job description - before:

<img width="400" alt="broken text-wrapping" src="https://user-images.githubusercontent.com/3051672/54454213-58c74480-472f-11e9-81fd-7e075510d96f.png">

Job description - after:

<img width="400" alt="fix text-overflow" src="https://user-images.githubusercontent.com/3051672/54454227-5e248f00-472f-11e9-96b3-2f38a7b6dd6e.png">

Release note: None

Fixes: cockroachdb#35604
celiala added a commit to celiala/cockroach that referenced this pull request Mar 15, 2019
- Fixed spacing for tooltip copy
- Fixed styling bug that was introduced in cockroachdb#35651: Job description
  previously truncated long job descriptions in collapsed view.

Tooltip copy - before:

<img width="300" alt="jobs before" src="https://user-images.githubusercontent.com/3051672/54454081-0be36e00-472f-11e9-8fc2-7e59b4565d51.png">

Tooltip copy - after:

<img width="300" alt="fix tooltip-spacing" src="https://user-images.githubusercontent.com/3051672/54454082-0be36e00-472f-11e9-9683-3b63490fbfe1.png">

Job description - before:

<img width="400" alt="broken text-wrapping" src="https://user-images.githubusercontent.com/3051672/54454213-58c74480-472f-11e9-81fd-7e075510d96f.png">

Job description - after:

<img width="400" alt="fix text-overflow" src="https://user-images.githubusercontent.com/3051672/54455816-16076b80-4733-11e9-94e5-f24312ac6ff1.png">

Release note: None

Fixes: cockroachdb#35604
@celiala celiala deleted the AutoCreateStats branch March 15, 2019 19:21
craig bot pushed a commit that referenced this pull request Mar 17, 2019
35797: ui: fix word-wrapping and tooltip spacing on jobs page r=celiala a=celiala

- Fixed spacing for tooltip copy
- Fixed styling bug that was introduced in #35651: Job description
  previously truncated long job descriptions in collapsed view.

Tooltip copy - before:

<img width="300" alt="jobs before" src="https://user-images.githubusercontent.com/3051672/54454081-0be36e00-472f-11e9-8fc2-7e59b4565d51.png">

Tooltip copy - after:

<img width="300" alt="fix tooltip-spacing" src="https://user-images.githubusercontent.com/3051672/54454082-0be36e00-472f-11e9-9683-3b63490fbfe1.png">

Job description - before:

<img width="400" alt="broken text-wrapping" src="https://user-images.githubusercontent.com/3051672/54454213-58c74480-472f-11e9-81fd-7e075510d96f.png">

Job description - after:

<img width="400" alt="fix text-overflow" src="https://user-images.githubusercontent.com/3051672/54455816-16076b80-4733-11e9-94e5-f24312ac6ff1.png">

Release note: None

Fixes: #35604

Co-authored-by: Celia La <[email protected]>
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.

8 participants