-
Notifications
You must be signed in to change notification settings - Fork 604
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
dl/coordinator: add tag to redpanda commits #25038
Conversation
Retry command for Build#61608please wait until all jobs are finished before running the slash command
|
CI test resultstest results on build#61608
test results on build#61628
test results on build#61697
|
1bde4d8
to
1958111
Compare
Is this part of the Iceberg spec? Cursory check didn't turn anything up, but I may not be searching for the right thing. EDIT: ah, i see, tags & branches have separate expiration policies. so in principle we could still get in a funky situation w/ customized table maintenance, but the default behavior is what we want? |
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.
few question but generally lgtm
Generally it's not part of the spec, but it is in the Java implementation of snapshot expiry -- the default is set per table. Though you raise a good point that there is a mechanism per snapshot that we can set to not expire. Will update. |
1958111
to
491e6d1
Compare
Adds the capability to tag a snapshot when appended. This will be useful for pinning a snapshot to the table, since tagged snapshots don't expire by default. We'd like to keep some metadata around in Redpanda-generated snapshots for exactly once delivery, and this helps ensure that metadata don't get wiped out.
491e6d1
to
d3f1710
Compare
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.
lgtm. thanks for various clarifications
Adds a tag to snapshots created by Redpanda. This ensures that the latest Redpanda snapshot won't be removed by snapshot expiry, since tags don't expire by default. This assurance helps us guarantee exactly once delivery even in the face of external table updates.
d3f1710
to
e2e7ff2
Compare
{{commit_meta_prop, to_json_str(commit_meta)}}); | ||
{{commit_meta_prop, to_json_str(commit_meta)}}, | ||
commit_tag_name, | ||
/*tag_expiration_ms=*/std::numeric_limits<long>::max()); |
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.
nit: this should be std::numeric_limits<long long>::max()
std::numeric_limits<int64_t>::max()
(together with the underlying type def). We never compile for a platform where this would result in 32 bit integer afaik but being explicit doesn't hurt.
long is defined as "at least" 32 bit by the C++ standard, on unix x86/arm 64bit it is actually a 64 bit number so all good, windows is 32 bit (who cares)
32 bit max as ms is ~24 days
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.
Actually, this should be int64_t in case the definition of long long
changes... (i.e. it becomes 128 bit) long
in iceberg spec is defined as a 64 bit wide integer.
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.
Good call, #25118
Longs in Iceberg are 64-bit, so we should be explicit about that. Review follow-up from redpanda-data#25038
Nessie dislikes this:
|
Backports Required
Release Notes