Hi,

I would suggest to prepare a Maven profile to perform nexmark runs. Then, I can setup a job (seed/manual) in Jenkins to run this.

Regards
JB

On 15/03/2018 22:13, Etienne Chauchot wrote:

So what next? Shall we schedule nexmark runs and add a Bigquery sink to nexmark output?

Le lundi 12 mars 2018 à 10:30 +0100, Etienne Chauchot a écrit :
Thanks everyone for your comments and support.

Le vendredi 09 mars 2018 à 21:28 +0000, Alan Myrvold a écrit :
Great ideas. I want to see a daily signal for anything that could prevent a release from happening, and precommits that are fast and reliable for areas that are commonly broken by code changes.

We are now running the java quickstarts daily on a cron schedule, using direct, dataflow, and local spark and flink in the beam_PostRelease_NightlySnapshot job, see https://github.com/apache/beam/blob/master/release/build.gradle This should provide a good signal for the examples integration tests against these runners.

As Kenn noted, the java_maveninstall also runs lots of tests. It would be good to be more clear and intentional about which tests run when, and to consider implementing additional "always up" environments for use by the tests.

Having the nexmark smoke tests run regularly and stored in a database would really enhance our efforts, perhaps starting with directrunner for the performance tests.

Yes


What area would have the most immediate impact? Nexmark smoke tests?

Yes IMHO I think that Nexmark smoke tests would have a great return on investment. By just scheduling some of them (at first),  we enable deep confidence in the runners on real user pipelines. In the past Nexmark has allowed to discover regressions in performance before a release and also to discover some bugs in some runners. But, please note that, for this last ability, Nexmark is limited currently: it only detects failures if an exception is thrown, there is no check of the correctness of the output PCollection because the aim was performance tests and there is no point adding a slow test for correctness. Nevertheless, if we store the output size (as I suggested in this thread), we can get a hint on a failure if the output size is different from the last stored output sizes.

Etienne





On Fri, Mar 9, 2018 at 12:57 PM Kenneth Knowles <k...@google.com <mailto:k...@google.com>> wrote:
On Fri, Mar 9, 2018 at 3:08 AM Etienne Chauchot <echauc...@apache.org <mailto:echauc...@apache.org>> wrote:
Hi guys,

I was looking at the various jenkins jobs and I wanted to submit a proposition:

- Validates runner tests: currently run at PostCommit for all the runners. I think it is the quickest way to see
regressions. So keep it that way

We've also toyed with precommit for runners where it is fast.
- Integration tests: AFAIK we only run the ones in examples module and only on demand. What about running all the IT (in particular IO IT) as a cron job on a daily basis with direct runner? Please note that it will require some always up
backend infrastructure.

I like this idea. We actually run more, but in postcommit. You can see the goal here: https://github.com/apache/beam/blob/master/.test-infra/jenkins/job_beam_PostCommit_Java_MavenInstall.groovy#L47

There's no infrastructure set up that I see. It is only DirectRunner and DataflowRunner currently, as they are "always up". But so could be local Flink and Spark. Do the ITs spin up local versions of what they are connecting to?

If we have adequate resources, I also think ValidatesRunner on a real cluster would add value, once we have the cluster set up / tear down or "always up".

- Performance tests: what about running Nexmark SMOKE test suite in batch and streaming modes with all the runners on a daily basis and store the running times in a RRD database (to see performance regressions)?

I like this idea, too. I think we could do DirectRunner (and probably local Flink) as postcommit without being too expensive.

Kenn

Please note that not all the
queries run in all the runners in all the modes right now. Also, we have some streaming pipelines termination issues
(see https://issues.apache.org/jira/browse/BEAM-2847)

I know that Stephen Sisk use to work on these topics. I also talked to guys from Polidea. But As I understood, they
launch mainly integration tests on Dataflow runner.

WDYT?

Etienne




Reply via email to