Skip to content

roachtest: adjust tpchvec and tpcdsvec#49966

Merged
craig[bot] merged 2 commits intocockroachdb:masterfrom
yuzefovich:tpchvec
Jun 10, 2020
Merged

roachtest: adjust tpchvec and tpcdsvec#49966
craig[bot] merged 2 commits intocockroachdb:masterfrom
yuzefovich:tpchvec

Conversation

@yuzefovich
Copy link
Copy Markdown
Member

@yuzefovich yuzefovich commented Jun 8, 2020

roachtest: add new tpchvec config

This commit adds a new tpchvec/perf_no_stats config that is the same
as tpchvec/perf except for the fact that stats creation is disabled.
The plans without stats are likely to be different, so it gives us an
easy way to get more test coverage. One caveat here is that query
9 without stats takes insanely long to run, so some new plumbing has
been added to skip that query.

Additionally, tpcdsvec has been adjusted. The test runs all queries
with and without stats present with on and off vectorize options.
However, when stats are not present, on config will be reduced to
off because of vectorize_row_count_threshold heuristic. This commit
disables that heuristic.

Release note: None

roachtest: switch the config order in tpchvec/perf

Let's see whether it makes difference to occasional failures of
tpchvec/perf which are very hard to explain.

This commit also changes the workload command for perf config to run
only against node 1, thus, eliminating one possible source of
"randomness" for the failures.

Addresses: #49955.

Release note: None

@yuzefovich yuzefovich requested a review from asubiotto June 8, 2020 17:00
@cockroach-teamcity
Copy link
Copy Markdown
Member

This change is Reviewable

Copy link
Copy Markdown
Contributor

@asubiotto asubiotto left a comment

Choose a reason for hiding this comment

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

Reviewed 1 of 1 files at r1, 2 of 2 files at r2, 1 of 1 files at r3.
Reviewable status: :shipit: complete! 0 of 0 LGTMs obtained (waiting on @yuzefovich)


pkg/cmd/roachtest/tpchvec.go, line 171 at r1 (raw file):

	// Since this is a performance test, each query should be run with both
	// vectorize modes.
	return []bool{false, true}

As usual with these changes, could you do a quick local run to make sure nothing breaks?


pkg/cmd/roachtest/tpchvec.go, line 425 at r2 (raw file):

	testCase tpchVecTestCase,
	testRun func(ctx context.Context, t *test, c *cluster, version crdbVersion, tc tpchVecTestCase),
	disableStatsCreation bool,

Can you make the stats creation part of the base test and override that in tpchVecPerfTest instead of introducing a flag to this general function? It seems wrong to introduce an argument for all test cases when it is only used for one.

Copy link
Copy Markdown
Member Author

@yuzefovich yuzefovich left a comment

Choose a reason for hiding this comment

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

Reviewable status: :shipit: complete! 0 of 0 LGTMs obtained (waiting on @asubiotto)


pkg/cmd/roachtest/tpchvec.go, line 171 at r1 (raw file):

Previously, asubiotto (Alfonso Subiotto Marqués) wrote…

As usual with these changes, could you do a quick local run to make sure nothing breaks?

Sure, kicked off the run of old perf and new perf_no_stats configs.


pkg/cmd/roachtest/tpchvec.go, line 425 at r2 (raw file):

Previously, asubiotto (Alfonso Subiotto Marqués) wrote…

Can you make the stats creation part of the base test and override that in tpchVecPerfTest instead of introducing a flag to this general function? It seems wrong to introduce an argument for all test cases when it is only used for one.

Done.

However, we can't easily move the stats creation into the base case because tpchVecPerfTest reuses that logic. I looked into whether we could create stats in the base and then delete them (when stats creation is disabled), but our docs say that you need to restart the nodes for the statistics cache to be cleared. I think it's ok that every test config will be determining whether it needs the stats or not.

This commit adds a new `tpchvec/perf_no_stats` config that is the same
as `tpchvec/perf` except for the fact that stats creation is disabled.
The plans without stats are likely to be different, so it gives us an
easy way to get more test coverage. One caveat here is that query
9 without stats takes insanely long to run, so some new plumbing has
been added to skip that query.

Additionally, `tpcdsvec` has been adjusted. The test runs all queries
with and without stats present with `on` and `off` vectorize options.
However, when stats are not present, `on` config will be reduced to
`off` because of `vectorize_row_count_threshold` heuristic. This commit
disables that heuristic.

Release note: None
Let's see whether it makes difference to occasional failures of
`tpchvec/perf` which are very hard to explain.

This commit also changes the workload command for `perf` config to run
only against node 1, thus, eliminating one possible source of
"randomness" for the failures.

Release note: None
Copy link
Copy Markdown
Member Author

@yuzefovich yuzefovich left a comment

Choose a reason for hiding this comment

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

Reviewable status: :shipit: complete! 0 of 0 LGTMs obtained (waiting on @asubiotto)


pkg/cmd/roachtest/tpchvec.go, line 171 at r1 (raw file):

Previously, yuzefovich wrote…

Sure, kicked off the run of old perf and new perf_no_stats configs.

I added a skip of query 9 for "no stats" case (because it was taking forever), and then rerun both perf and perf_no_stats configs, and the tests passed.

Copy link
Copy Markdown
Contributor

@asubiotto asubiotto 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 r4, 1 of 1 files at r5.
Reviewable status: :shipit: complete! 1 of 0 LGTMs obtained (waiting on @asubiotto)

@yuzefovich
Copy link
Copy Markdown
Member Author

yuzefovich commented Jun 10, 2020

TFTR!

bors r+

@craig
Copy link
Copy Markdown
Contributor

craig bot commented Jun 10, 2020

Build succeeded

@craig craig bot merged commit 2ae3d3c into cockroachdb:master Jun 10, 2020
@yuzefovich yuzefovich deleted the tpchvec branch June 10, 2020 16:22
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.

3 participants