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

enable parallelism on bigquery tests #32580

Merged
merged 1 commit into from
Nov 16, 2023

Conversation

edgao
Copy link
Contributor

@edgao edgao commented Nov 15, 2023

Make destination-bigquery tests fast again by reenabling parallelism.

I'm still not sure why destination-snowflake tests are also slower. It already has a gradle.properties file with parallelism set to 4. Metabase says destination-snowflake tests got slower around the same time, so presumably https://github.com/airbytehq/airbyte/pull/32108/files#diff-a3dd6be9c3819c1fcfd593b0f11c29663912e686e0dd74cae14610ac9c282480 did something? But I'm not sure what exactly.

Would it break things to set testExecutionConcurrency=-1 by default? My understanding is that tests need to opt into concurrent execution (with @Execution(ExecutionMode.CONCURRENT)).

@edgao edgao requested a review from postamar November 15, 2023 23:57
@edgao edgao requested a review from a team as a code owner November 15, 2023 23:57
Copy link

vercel bot commented Nov 15, 2023

The latest updates on your projects. Learn more about Vercel for Git ↗︎

1 Ignored Deployment
Name Status Preview Updated (UTC)
airbyte-docs ⬜️ Ignored (Inspect) Nov 15, 2023 11:57pm

@octavia-squidington-iii octavia-squidington-iii added the area/connectors Connector related issues label Nov 15, 2023
Copy link
Contributor

Before Merging a Connector Pull Request

Wow! What a great pull request you have here! 🎉

To merge this PR, ensure the following has been done/considered for each connector added or updated:

  • PR name follows PR naming conventions
  • Breaking changes are considered. If a Breaking Change is being introduced, ensure an Airbyte engineer has created a Breaking Change Plan.
  • Connector version has been incremented in the Dockerfile and metadata.yaml according to our Semantic Versioning for Connectors guidelines
  • You've updated the connector's metadata.yaml file any other relevant changes, including a breakingChanges entry for major version bumps. See metadata.yaml docs
  • Secrets in the connector's spec are annotated with airbyte_secret
  • All documentation files are up to date. (README.md, bootstrap.md, docs.md, etc...)
  • Changelog updated in docs/integrations/<source or destination>/<name>.md with an entry for the new version. See changelog example
  • Migration guide updated in docs/integrations/<source or destination>/<name>-migrations.md with an entry for the new version, if the version is a breaking change. See migration guide example
  • If set, you've ensured the icon is present in the platform-internal repo. (Docs)

If the checklist is complete, but the CI check is failing,

  1. Check for hidden checklists in your PR description

  2. Toggle the github label checklist-action-run on/off to re-run the checklist CI.

Copy link
Contributor

@gisripa gisripa left a comment

Choose a reason for hiding this comment

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

lgtm.
Its confusing so
systemProperty 'junit.jupiter.execution.parallel.enabled', 'true' is already set but this systemProperty 'junit.jupiter.execution.parallel.config.fixed.parallelism', concurrency can take precedence and limit it ?

Copy link
Contributor

@postamar postamar left a comment

Choose a reason for hiding this comment

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

I'm happy if the CI is happy! Presumably, this fix can be applied to other destinations whose tests are thread-safe.

@gisripa there are two layers of concurrency: gradle will happily spawn an arbitrary number of workers and partition the test set into each of their JVMs, however JUnit offers in-JVM concurrency. The former is safer because you don't have to worry about thread-safety, and it remains the default. The junit properties are a bit confusing but they enable developers to opt out of the gradle concurrency and into the junit concurrency by setting just one property.

@edgao
Copy link
Contributor Author

edgao commented Nov 16, 2023

confirmed that test runtime is back down to 8 minutes
image

CI failures:

  • I didn't bump the connector version
  • AvroSerializedBufferTest > testSnappyAvroWriter() FAILED
        org.opentest4j.AssertionFailedError: Expected size between 964 and 985, but actual size was 991 ==> expected: <true> but was: <false>
    

neither is relevant. approve-and-merging.

@edgao
Copy link
Contributor Author

edgao commented Nov 16, 2023

/approve-and-merge reason="irrelevant CI failures #32580 (comment)"

@octavia-approvington
Copy link
Contributor

Send it!
rocket socks

@octavia-approvington octavia-approvington merged commit 7dc53c2 into master Nov 16, 2023
22 of 28 checks passed
@octavia-approvington octavia-approvington deleted the edgao/bigquery/parallel_tests branch November 16, 2023 15:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants