-
Notifications
You must be signed in to change notification settings - Fork 4.2k
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
Implement Debezium heartbeats for source-postgres #19004
Implement Debezium heartbeats for source-postgres #19004
Conversation
Affected Connector ReportNOTE
|
Connector | Version | Changelog | Publish |
---|---|---|---|
source-alloydb |
1.0.17 |
✅ | ✅ |
source-alloydb-strict-encrypt |
1.0.17 |
✅ | ⚠ (not in seed) |
source-mssql |
0.4.25 |
✅ | ✅ |
source-mysql |
1.0.13 |
✅ | ✅ |
source-mysql-strict-encrypt |
1.0.13 |
✅ | ⚠ (not in seed) |
source-postgres |
1.0.25 |
✅ | ✅ |
source-postgres-strict-encrypt |
1.0.25 |
✅ | ⚠ (not in seed) |
- See "Actionable Items" below for how to resolve warnings and errors.
✅ Destinations (0)
Connector | Version | Changelog | Publish |
---|
- See "Actionable Items" below for how to resolve warnings and errors.
Actionable Items
(click to expand)
Category | Status | Actionable Item |
---|---|---|
Version | ❌ mismatch |
The version of the connector is different from its normal variant. Please bump the version of the connector. |
⚠ doc not found |
The connector does not seem to have a documentation file. This can be normal (e.g. basic connector like source-jdbc is not published or documented). Please double-check to make sure that it is not a bug. |
|
Changelog | ⚠ doc not found |
The connector does not seem to have a documentation file. This can be normal (e.g. basic connector like source-jdbc is not published or documented). Please double-check to make sure that it is not a bug. |
❌ changelog missing |
There is no chnagelog for the current version of the connector. If you are the author of the current version, please add a changelog. | |
Publish | ⚠ not in seed |
The connector is not in the seed file (e.g. source_definitions.yaml ), so its publication status cannot be checked. This can be normal (e.g. some connectors are cloud-specific, and only listed in the cloud seed file). Please double-check to make sure that it is not a bug. |
❌ diff seed version |
The connector exists in the seed file, but the latest version is not listed there. This usually means that the latest version is not published. Please use the /publish command to publish the latest version. |
/test connector=connectors/source-postgres
Build PassedTest summary info:
|
/test connector=connectors/source-postgres
Build PassedTest summary info:
|
/test connector=connectors/source-mysql
Build PassedTest summary info:
|
/test connector=connectors/source-mssql
Build PassedTest summary info:
|
/test connector=connectors/source-postgres
Build PassedTest summary info:
|
/test connector=connectors/source-postgres
Build FailedTest summary info:
|
@rodireich the |
I'm under the impression that the preivous /test failed before SAT . Re-running in case it's flaky. |
/test connector=connectors/source-postgres
Build FailedTest summary info:
|
/test connector=connectors/source-postgres
Build PassedTest summary info:
|
/publish connector=connectors/source-postgres
if you have connectors that successfully published but failed definition generation, follow step 4 here |
/publish connector=connectors/source-postgres-strict-encrypt auto-bump-version=false if you have connectors that successfully published but failed definition generation, follow step 4 here |
@rodireich I'm under the impression the cause of this failure is not the config format change but rather a flaky behavior on backward compatibility checks. The test strictness level does not change the behavior of spec testing and the same tests were run in your latest successful attempt. |
* Initial working commit * Code sanity. Provide no-on implementation to mysql, MSSql to allow compilation. * Update test * sanity * sanity * sanity * sanity * sanity * changes per review comments * Make heartbeat change waittime configurable. * Trying to bypass test strictness test * Trying to bypass test strictness test * Trying to bypass test strictness test * fix acceptance test config format * add missing SAT test in config * revert back changes in acceptance-test-config.yml * Version and notes * auto-bump connector version Co-authored-by: alafanechere <augustin.lafanechere@gmail.com> Co-authored-by: Octavia Squidington III <octavia-squidington-iii@users.noreply.github.com>
What
This is adding heartbeat functionality to Debezium and implements it for source postgres CDC.
How
Processing incoming heartbeat events which add more predictability to our sync and prevent us from wrapping up too soon in some cases. See discussion in #15040.
This while keeping existing functionality for other CDC connectors - MySQL and MSSql which will have heartbeat added later on.
Recommended reading order
DebeziumRecordIterator.java
PostgresCdcTargetPosition.java
🚨 User Impact 🚨
New logic should improve our syncing in some of the harder cases. e.g large and busy database out of which we only sync a small amount of tables.