-
Notifications
You must be signed in to change notification settings - Fork 4.4k
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
fix(cdc): limit queue size to lower memory consumption #26473
Conversation
Before Merging a Connector Pull RequestWow! 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:
If the checklist is complete, but the CI check is failing,
|
/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:
|
Affected Connector ReportNOTE
|
Connector | Version | Changelog | Publish |
---|---|---|---|
source-alloydb |
2.0.28 |
✅ | ✅ |
source-alloydb-strict-encrypt |
2.0.28 |
🔵 (ignored) |
🔵 (ignored) |
source-mssql |
1.0.17 |
✅ | ❌ (diff seed version) |
source-mssql-strict-encrypt |
1.0.17 |
🔵 (ignored) |
🔵 (ignored) |
source-mysql |
2.0.24 |
✅ | ❌ (diff seed version) |
source-mysql-strict-encrypt |
2.0.24 |
🔵 (ignored) |
🔵 (ignored) |
source-postgres |
2.0.30 |
✅ | ❌ (diff seed version) |
source-postgres-strict-encrypt |
2.0.30 |
🔵 (ignored) |
🔵 (ignored) |
- 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.
✅ Other Modules (0)
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 cloud or oss registry, 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 you have added a metadata.yaml file and the expected registries are enabled. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
seems reasonable, just a couple comments to help future people
...zium/src/main/java/io/airbyte/integrations/debezium/internals/DebeziumPropertiesManager.java
Outdated
Show resolved
Hide resolved
...zium/src/main/java/io/airbyte/integrations/debezium/internals/DebeziumPropertiesManager.java
Outdated
Show resolved
Hide resolved
/test connector=connectors/source-mssql
Build PassedTest summary info:
|
/test connector=connectors/source-mysql
Build PassedTest summary info:
|
...zium/src/main/java/io/airbyte/integrations/debezium/internals/DebeziumPropertiesManager.java
Show resolved
Hide resolved
/test connector=connectors/source-postgres
Build FailedTest 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 PassedTest summary info:
|
/test connector=connectors/source-mssql
Build PassedTest summary info:
|
/test connector=connectors/source-mysql
Build PassedTest summary info:
|
* fix(cdc): limit queue size to lower memory consumption * add queue size attribute in spec * disable retries * fix log * review comments * add validation test for queue size * update expected spec * bump version + changelog * update metadata files --------- Co-authored-by: Ben Church <ben@airbyte.io>
re #28069 (comment) it appears that source-mssql may require a Debezium upgrade (2.2.0 => 2.4.0) to support this change |
Issue : https://github.com/airbytehq/oncall/issues/2080
Without a heapdump debugging OOM is very difficult but my guess is that the queue (both Airbyte's and Debezium's internal) is growing too big. We can limit debezium's internal queue by using the property (https://debezium.io/documentation/reference/2.2/connectors/postgresql.html#postgresql-property-max-queue-size-in-bytes). I am setting it to 256MB. Next to limit our own queue am introducing a parameter in the spec.I did think about making our own queue memory bound as well but it's more work and makes things complicated. I want to try this PR out as an immediate fix and see how it goes and then if needed we can make our internal queue memory bound as well for further improvements.