-
Notifications
You must be signed in to change notification settings - Fork 49
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
Upgrade to iceberg 1.5.2 #235
Conversation
kafka-connect/src/main/java/io/tabular/iceberg/connect/channel/Worker.java
Outdated
Show resolved
Hide resolved
kafka-connect/src/main/java/io/tabular/iceberg/connect/channel/Deduplicated.java
Show resolved
Hide resolved
Should have a branch up shortly that deals with the breaking change instead. Much better for the users --no drain mode needed. |
Iceberg 1.5.2 is the latest release |
kafka-connect/src/main/java/io/tabular/iceberg/connect/channel/CommitterImpl.java
Show resolved
Hide resolved
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.
Looks pretty good to me overall.
I have only one concern about a potential bug in the donated-to-apache-code which we can discuss more in this thread.
Updates connector to Iceberg 1.5
The
iceberg-kafka-connect-events
module has been deprecated in this repo: consider theselegacy
Events. Instead we rely oniceberg-kafka-connect-events
which has been moved into Iceberg Core. This will make it easier to move the remainder of the repository over to there this PR updates worker/coordinator/etc. to work off the (significantly) reworked event classes.The avro payloads produced by the worker/coordinator have changed in a way that is not backward compatible. This is unavoidable atm due to porting the codebase (partially) to Iceberg-core and the changes made there (see: apache/iceberg#8701 (comment)).
Encoding relies heavily on the Iceberg avro utils due to having to encode Datafiles, delete files, etc. Unfortunately changes were made upstream that break the format. This puts us in an awkward spot: we either have to port all the machinery of Avro from Iceberg to maintain the same format, or do the breaking change.
This PR ports the marchinery from Iceberg 1.4.x to have a fallback decoder if decoding fails in the event a legacy record was left behind in the control topic during the upgrade. This code should be removed in future releases.
There is no breaking change for the users because of this. Eventing now depends on donated connector code in iceberg-core, which should result in non-breaking changes for our users to migrate when the rest of the code is ported over.