-
Notifications
You must be signed in to change notification settings - Fork 551
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
transforms: fix offset at deploy time #17590
transforms: fix offset at deploy time #17590
Conversation
ducktape was retried in https://buildkite.com/redpanda/redpanda/builds/47327#018ea56e-9cf7-425c-ad19-479d8516c26f ducktape was retried in https://buildkite.com/redpanda/redpanda/builds/47327#018ea56e-9cef-431a-8745-40b70b6caa62 ducktape was retried in https://buildkite.com/redpanda/redpanda/builds/47341#018ea5f4-8e12-4889-9705-7b19261b2e3e ducktape was retried in https://buildkite.com/redpanda/redpanda/builds/47341#018ea5f4-8e10-43ac-9a90-b311a7ea97f5 ducktape was retried in https://buildkite.com/redpanda/redpanda/builds/47390#018eac69-e9b2-4591-a81e-9138bba96f36 |
626c86d
to
2df072a
Compare
2df072a
to
01e1586
Compare
c2879df
to
53fd207
Compare
Force push: rebase to fix conflicts |
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.
nice, lgtm!
return _cond_var | ||
.wait( | ||
1s, | ||
[this, index, o] { | ||
auto it = _committed.find(index); | ||
return it != _committed.end() && it->second >= o; | ||
}) |
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.
clang-format
really
went for
it
here!
I rather like it
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.
seriously. Not how I would have formatted it, but meh
53fd207
to
3278bd0
Compare
Force push: drop the serde commit |
In order to support starting from specific points in time during deploys, we add a variant that allows starting from the end of the log or a specific point in time, at which we will resolve to an offset using a timequery. Adding a new field to the end of the struct is backwards compatible, so we are tree to add this new field - the default value will be latest_offset, which is consistent with existing behavior. Signed-off-by: Tyler Rockwood <rockwood@redpanda.com>
Signed-off-by: Tyler Rockwood <rockwood@redpanda.com>
Require that Wasm transform sources can perform time queries to resolve a timestamp to an offset. Signed-off-by: Tyler Rockwood <rockwood@redpanda.com>
A new change in clang-tidy-17 complains when exceptions are ignored. Signed-off-by: Tyler Rockwood <rockwood@redpanda.com>
This commits respects the initial position in the metadata, and means that when we start processing records we'll start from the deploy time for newly deployed transforms, while old transforms we will still start at the end of the log. This will remove the need for the song and dance around waiting for transforms to commit before producing records in tests and matches the expectations and papercuts customers have ran into when trying transforms. Signed-off-by: Tyler Rockwood <rockwood@redpanda.com>
This makes debugging test failures a little easier, as you can narrow down which cond_var timed out. Signed-off-by: Tyler Rockwood <rockwood@redpanda.com>
Add a ducktape test proving that we no longer need to wait after a deploy to produce records to a data transform. Signed-off-by: Tyler Rockwood <rockwood@redpanda.com>
3278bd0
to
b0d4393
Compare
Force push rebase against dev |
This makes testing transforms easier as the offset that we start from is relative to the deploy and not when the VM starts. This means you can do:
Without dropping records (there is a 3 second injected delay between deploy and processor start, so today everything in the first 3 seconds is dropped).
Ducktape tests will be written in a followup.
Fixes: CORE-1927, #17370
Backports Required
Release Notes
Improvements
This allows for easier testing of transforms, as one does not have to wait for the VM to boot before producing.