Skip to content

Support customizable ways of launching Presto queries in Verifier#14823

Merged
caithagoras merged 10 commits intoprestodb:masterfrom
caithagoras:s1
Jul 30, 2020
Merged

Support customizable ways of launching Presto queries in Verifier#14823
caithagoras merged 10 commits intoprestodb:masterfrom
caithagoras:s1

Conversation

@caithagoras
Copy link
Contributor

@caithagoras caithagoras commented Jul 10, 2020

Depended by https://github.com/facebookexternal/presto-facebook/pull/1081

== RELEASE NOTES ==

Verifier Changes
* Fix an issue where Verifier fails to start when failure resolver is disabled.
* Add support to implement customized way of launching Presto queries.
* Add support to run helper queries on a separate cluster other than the control cluster.

@caithagoras caithagoras force-pushed the s1 branch 3 times, most recently from 3f61b1d to be26ad5 Compare July 10, 2020 08:26
@caithagoras caithagoras changed the title Allow the launching of Presto queries to be customizable in Verifier Support customizable ways of launching Presto queries in Verifier Jul 10, 2020
@caithagoras caithagoras force-pushed the s1 branch 4 times, most recently from c150bde to 899498a Compare July 10, 2020 09:48
Copy link
Member

@arhimondr arhimondr left a comment

Choose a reason for hiding this comment

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

Style improvments in DeterminismAnalyzer

LGTM

@arhimondr
Copy link
Member

improvments -> improvements

Copy link
Member

@arhimondr arhimondr left a comment

Choose a reason for hiding this comment

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

Make control.http-port optional

LGTM

Copy link
Member

@arhimondr arhimondr left a comment

Choose a reason for hiding this comment

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

Make the entire JDBC QueryStats available in verification results

LGTM

Copy link
Member

@arhimondr arhimondr left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Member

Choose a reason for hiding this comment

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

Should it be called JdbcPrestoActionConfig?

@caithagoras caithagoras force-pushed the s1 branch 6 times, most recently from 0a84b58 to dabde7b Compare July 17, 2020 23:41
@caithagoras
Copy link
Contributor Author

[test facebook]

@caithagoras caithagoras force-pushed the s1 branch 2 times, most recently from 8345cf3 to 55727ca Compare July 23, 2020 18:42
Copy link
Contributor

@wenleix wenleix left a comment

Choose a reason for hiding this comment

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

"Make control.http-port optional " . LGTM
"Make the entire JDBC QueryStats available in verification results". LGTM. curious what's the motivation here?

Copy link
Contributor

Choose a reason for hiding this comment

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

wow. why not using OptionalLong/OptionalDouble? -- this is irrelevant to this PR though

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Since we have everything in the QueryStatsEvent, we'll eventually deprecate those fields.

Copy link
Contributor

Choose a reason for hiding this comment

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

what's this? ;)

Copy link
Contributor

@wenleix wenleix left a comment

Choose a reason for hiding this comment

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

LGTM. Is there any document about how to mangling session properties in verifier run? (e.g. tweak some session properties, etc).

@caithagoras caithagoras force-pushed the s1 branch 10 times, most recently from 985d029 to 753c4f7 Compare July 29, 2020 20:34
Make fields final and remove unused fields.
http-port is used for fetching cluster size via /v1/node.
We only need it when TooManyOpenPartitionsFailureResolver
requires the test cluster size. Hence:
- Make control.http-port optional
- Make test.http-port required if the specific failure
  resolver is enabled, else optional.

Changes also needed in this commit:
- Convert NodeResourceClient to ClusterSizeSupplier.
- Convert HttpNodeResourceClient to ClusterSizeFetcher.
There are use cases to launch control and test Presto queries through a
different way other than JDBC. This commit provides a way to write
customized QueryAction and plug it into the Verifer.

- Introduce QueryAction-related interfaces.
- Support specifying a "helper" cluster, a cluster to run helper
  queries (describe, checksum, etc.). By default, help cluster is
  the control cluster. If the control QueryAction does not support
  data fetching, a separate helper cluster must be specified.
- Replace RoutingPrestoAction with QueryActions.
- Add an option to specify whether to run setup/teardown queries on
  the control/test clusters or on the helper cluster.
@caithagoras caithagoras force-pushed the s1 branch 2 times, most recently from 043832a to 3f99da3 Compare July 29, 2020 21:25
metadata-timeout and checksum-timeout can be defined for control
cluster and test cluster separately. Now that we have 3 different
cluster types, this could be confusing.

Move both config to QueryActionsConfig so that there is only one
top level config for metadata-timeout and checksum-timeout.
Also, add a constructor in QueryException to take message
@caithagoras
Copy link
Contributor Author

[test facebook]

@caithagoras caithagoras merged commit 52a7529 into prestodb:master Jul 30, 2020
@caithagoras caithagoras deleted the s1 branch July 30, 2020 20:58
@caithagoras caithagoras mentioned this pull request Aug 14, 2020
7 tasks
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