Skip to content

🎉 MySQL Source : Make initial cdc timeout configurable for MySQL source #17170

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

Merged
merged 35 commits into from
Oct 3, 2022

Conversation

akashkulk
Copy link
Contributor

@akashkulk akashkulk commented Sep 26, 2022

What

Debezium sometimes takes more than 5 minutes to startup, which causes it to shut down for MySQL connector. This is essentially a port of the existing fix for Postgres, which makes the debezium timeout configurable.

Postgres PRs:

This PR

  • Makes the CDC wait time configurable
  • Does not change default 5 minutes
  • Speeds up tests to use shorter time

Resolve https://github.com/airbytehq/alpha-beta-issues/issues/136
Resolve #16373

🚨 User Impact 🚨

User can now configure a CDC wait time in the UI for MySQL source connector

Pre-merge Checklist

Expand the relevant checklist and delete the others.

New Connector

Community member or Airbyter

  • Community member? Grant edit access to maintainers (instructions)
  • Secrets in the connector's spec are annotated with airbyte_secret
  • Unit & integration tests added and passing. Community members, please provide proof of success locally e.g: screenshot or copy-paste unit, integration, and acceptance test output. To run acceptance tests for a Python connector, follow instructions in the README. For java connectors run ./gradlew :airbyte-integrations:connectors:<name>:integrationTest.
  • Code reviews completed
  • Documentation updated
    • Connector's README.md
    • Connector's bootstrap.md. See description and examples
    • docs/integrations/<source or destination>/<name>.md including changelog. See changelog example
    • docs/integrations/README.md
    • airbyte-integrations/builds.md
  • PR name follows PR naming conventions

Airbyter

If this is a community PR, the Airbyte engineer reviewing this PR is responsible for the below items.

  • Create a non-forked branch based on this PR and test the below items on it
  • Build is successful
  • If new credentials are required for use in CI, add them to GSM. Instructions.
  • /test connector=connectors/<name> command is passing
  • New Connector version released on Dockerhub by running the /publish command described here
  • After the connector is published, connector added to connector index as described here
  • Seed specs have been re-generated by building the platform and committing the changes to the seed spec files, as described here
Updating a connector

Community member or Airbyter

  • Grant edit access to maintainers (instructions)
  • Secrets in the connector's spec are annotated with airbyte_secret
  • Unit & integration tests added and passing. Community members, please provide proof of success locally e.g: screenshot or copy-paste unit, integration, and acceptance test output. To run acceptance tests for a Python connector, follow instructions in the README. For java connectors run ./gradlew :airbyte-integrations:connectors:<name>:integrationTest.
  • Code reviews completed
  • Documentation updated
    • Connector's README.md
    • Connector's bootstrap.md. See description and examples
    • Changelog updated in docs/integrations/<source or destination>/<name>.md including changelog. See changelog example
  • PR name follows PR naming conventions

Airbyter

If this is a community PR, the Airbyte engineer reviewing this PR is responsible for the below items.

  • Create a non-forked branch based on this PR and test the below items on it
  • Build is successful
  • If new credentials are required for use in CI, add them to GSM. Instructions.
  • /test connector=connectors/<name> command is passing
  • New Connector version released on Dockerhub and connector version bumped by running the /publish command described here
Connector Generator
  • Issue acceptance criteria met
  • PR name follows PR naming conventions
  • If adding a new generator, add it to the list of scaffold modules being tested
  • The generator test modules (all connectors with -scaffold in their name) have been updated with the latest scaffold by running ./gradlew :airbyte-integrations:connector-templates:generator:testScaffoldTemplates then checking in your changes
  • Documentation which references the generator is updated as needed

Tests

Unit

Put your unit tests output here.

Integration

Put your integration tests output here.

Acceptance

Put your acceptance tests output here.

@github-actions
Copy link
Contributor

NOTE ⚠️ Changes in this PR affect the following connectors. Make sure to run corresponding integration tests:

  • source-alloydb-strict-encrypt
  • source-postgres
  • source-bigquery
  • source-postgres-strict-encrypt
  • source-mssql-strict-encrypt
  • source-redshift
  • source-scaffold-java-jdbc
  • source-db2
  • source-db2-strict-encrypt
  • source-tidb
  • source-mssql
  • source-cockroachdb-strict-encrypt
  • source-mysql-strict-encrypt
  • source-clickhouse
  • source-snowflake
  • source-oracle-strict-encrypt
  • source-alloydb
  • source-cockroachdb
  • source-oracle
  • source-clickhouse-strict-encrypt
  • source-mysql

@github-actions
Copy link
Contributor

NOTE ⚠️ Changes in this PR affect the following connectors. Make sure to run corresponding integration tests:

  • source-mysql-strict-encrypt
  • source-mysql

@github-actions
Copy link
Contributor

NOTE ⚠️ Changes in this PR affect the following connectors. Make sure to run corresponding integration tests:

  • source-mysql-strict-encrypt
  • source-mysql

@github-actions github-actions bot added the area/documentation Improvements or additions to documentation label Sep 26, 2022
@github-actions
Copy link
Contributor

NOTE ⚠️ Changes in this PR affect the following connectors. Make sure to run corresponding integration tests:

  • source-mysql
  • source-mysql-strict-encrypt

@github-actions
Copy link
Contributor

NOTE ⚠️ Changes in this PR affect the following connectors. Make sure to run corresponding integration tests:

  • source-mysql
  • source-mysql-strict-encrypt

@github-actions
Copy link
Contributor

NOTE ⚠️ Changes in this PR affect the following connectors. Make sure to run corresponding integration tests:

  • source-mysql-strict-encrypt
  • source-mysql

@akashkulk
Copy link
Contributor Author

akashkulk commented Sep 27, 2022

/test connector=connectors/source-mysql

🕑 connectors/source-mysql https://github.com/airbytehq/airbyte/actions/runs/3138868705
✅ connectors/source-mysql https://github.com/airbytehq/airbyte/actions/runs/3138868705
No Python unittests run

Build Passed

Test summary info:

All Passed

@akashkulk
Copy link
Contributor Author

akashkulk commented Sep 27, 2022

/test connector=connectors/source-mysql-strict-encrypt

🕑 connectors/source-mysql-strict-encrypt https://github.com/airbytehq/airbyte/actions/runs/3138871709
❌ connectors/source-mysql-strict-encrypt https://github.com/airbytehq/airbyte/actions/runs/3138871709
🐛 https://gradle.com/s/kzije5vgx5d64

Build Failed

Test summary info:

Could not find result summary

@akashkulk
Copy link
Contributor Author

akashkulk commented Sep 27, 2022

/test connector=connectors/source-mysql-strict-encrypt

🕑 connectors/source-mysql-strict-encrypt https://github.com/airbytehq/airbyte/actions/runs/3139163906
✅ connectors/source-mysql-strict-encrypt https://github.com/airbytehq/airbyte/actions/runs/3139163906
No Python unittests run

Build Passed

Test summary info:

All Passed

@github-actions
Copy link
Contributor

NOTE ⚠️ Changes in this PR affect the following connectors. Make sure to run corresponding integration tests:

  • source-mysql-strict-encrypt
  • source-mysql

@github-actions
Copy link
Contributor

NOTE ⚠️ Changes in this PR affect the following connectors. Make sure to run corresponding integration tests:

  • source-mysql
  • source-mysql-strict-encrypt

@akashkulk
Copy link
Contributor Author

akashkulk commented Sep 30, 2022

/test connector=connectors/source-mysql-strict-encrypt

🕑 connectors/source-mysql-strict-encrypt https://github.com/airbytehq/airbyte/actions/runs/3161704819
✅ connectors/source-mysql-strict-encrypt https://github.com/airbytehq/airbyte/actions/runs/3161704819
No Python unittests run

Build Passed

Test summary info:

All Passed

@github-actions
Copy link
Contributor

NOTE ⚠️ Changes in this PR affect the following connectors. Make sure to run corresponding integration tests:

  • source-mysql-strict-encrypt
  • source-mysql

Copy link
Contributor

@subodh1810 subodh1810 left a comment

Choose a reason for hiding this comment

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

Looks good. Just pull in the latest changes from master cause I made a 1.0.1 release

@@ -226,6 +241,7 @@ WHERE actor_definition_id ='435bb9a5-7887-4809-aa58-28c27df0d7ad' AND (configura

| Version | Date | Pull Request | Subject |
|:--------|:-----------|:-----------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------|
| 1.0.1 | 2022-09-30 | [17170](https://github.com/airbytehq/airbyte/pull/17170) | Make initial CDC waiting time configurable |
Copy link
Contributor

Choose a reason for hiding this comment

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

This would needed to be changed as well

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Bumped to 1.0.2

@github-actions
Copy link
Contributor

github-actions bot commented Oct 3, 2022

NOTE ⚠️ Changes in this PR affect the following connectors. Make sure to run corresponding integration tests:

  • source-mysql-strict-encrypt
  • source-mysql

@github-actions
Copy link
Contributor

github-actions bot commented Oct 3, 2022

NOTE ⚠️ Changes in this PR affect the following connectors. Make sure to run corresponding integration tests:

  • source-mysql-strict-encrypt
  • source-mysql

@akashkulk
Copy link
Contributor Author

akashkulk commented Oct 3, 2022

/test connector=connectors/source-mysql-strict-encrypt

🕑 connectors/source-mysql-strict-encrypt https://github.com/airbytehq/airbyte/actions/runs/3175690131
❌ connectors/source-mysql-strict-encrypt https://github.com/airbytehq/airbyte/actions/runs/3175690131
🐛 https://gradle.com/s/kmnth57drf6wk

Build Failed

Test summary info:

Could not find result summary

@akashkulk
Copy link
Contributor Author

akashkulk commented Oct 3, 2022

/test connector=connectors/source-mysql-strict-encrypt

🕑 connectors/source-mysql-strict-encrypt https://github.com/airbytehq/airbyte/actions/runs/3176124835
✅ connectors/source-mysql-strict-encrypt https://github.com/airbytehq/airbyte/actions/runs/3176124835
No Python unittests run

Build Passed

Test summary info:

All Passed

@github-actions
Copy link
Contributor

github-actions bot commented Oct 3, 2022

NOTE ⚠️ Changes in this PR affect the following connectors. Make sure to run corresponding integration tests:

  • source-mysql-strict-encrypt
  • source-mysql

@github-actions
Copy link
Contributor

github-actions bot commented Oct 3, 2022

NOTE ⚠️ Changes in this PR affect the following connectors. Make sure to run corresponding integration tests:

  • source-mysql
  • source-mysql-strict-encrypt

@github-actions
Copy link
Contributor

github-actions bot commented Oct 3, 2022

NOTE ⚠️ Changes in this PR affect the following connectors. Make sure to run corresponding integration tests:

  • source-mysql
  • source-mysql-strict-encrypt

@akashkulk akashkulk removed the request for review from rodireich October 3, 2022 20:06
@akashkulk
Copy link
Contributor Author

akashkulk commented Oct 3, 2022

/publish connector=connectors/source-mysql run-tests=false

🕑 Publishing the following connectors:
connectors/source-mysql
https://github.com/airbytehq/airbyte/actions/runs/3177128020


Connector Did it publish? Were definitions generated?
connectors/source-mysql

if you have connectors that successfully published but failed definition generation, follow step 4 here ▶️

@akashkulk
Copy link
Contributor Author

akashkulk commented Oct 3, 2022

/publish connector=connectors/source-mysql-strict-encrypt run-tests=false

🕑 Publishing the following connectors:
connectors/source-mysql-strict-encrypt
https://github.com/airbytehq/airbyte/actions/runs/3177129547


Connector Did it publish? Were definitions generated?
connectors/source-mysql-strict-encrypt

if you have connectors that successfully published but failed definition generation, follow step 4 here ▶️

@github-actions
Copy link
Contributor

github-actions bot commented Oct 3, 2022

NOTE ⚠️ Changes in this PR affect the following connectors. Make sure to run corresponding integration tests:

  • source-mysql
  • source-mysql-strict-encrypt

@akashkulk akashkulk temporarily deployed to more-secrets October 3, 2022 20:31 Inactive
@akashkulk akashkulk merged commit bb6dff5 into master Oct 3, 2022
@akashkulk akashkulk deleted the akashkulk/mysql_debezium_timeout branch October 3, 2022 20:49
jhammarstedt pushed a commit to jhammarstedt/airbyte that referenced this pull request Oct 31, 2022
…ce (airbytehq#17170)

- Implement logic + update spec
- Fix tests
- Bump dockerfile

Co-authored-by: Octavia Squidington III <[email protected]>
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.

Speed up integration tests for MySQL Source by customizing Debezium timeout
4 participants