-
Notifications
You must be signed in to change notification settings - Fork 488
feat: during LakeFS file operations, skip merge when 0 changes #3346
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
feat: during LakeFS file operations, skip merge when 0 changes #3346
Conversation
ACTION NEEDED delta-rs follows the Conventional Commits specification for release automation. The PR title and description are used as the merge commit message. Please update your PR title and description to match the specification. |
First time contributing here so I'll include my manual testing process here in case I missed anything! Manual TestingTesting was performed using a real LakeFS instance:
|
eae4513
to
74e2beb
Compare
74e2beb
to
f637ea0
Compare
I had a quick glance and it looks good! You should change the test though, a repair dry run doesn trigger pre execute and post execute since it returns the metrics before that. But an easier way to trigger a file operation lakefs commit is vacuum |
Ahh good to know, thanks I'll make that change! |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #3346 +/- ##
==========================================
- Coverage 72.20% 72.20% -0.01%
==========================================
Files 145 145
Lines 45890 45986 +96
Branches 45890 45986 +96
==========================================
+ Hits 33135 33202 +67
- Misses 10667 10679 +12
- Partials 2088 2105 +17 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Ok I'm realizing I missed a failing test earlier. It seems that when creating checkpoints, the checkpoint files aren't reflected by the LakeFS diff API. I can think of a couple ways to go about handling this:
Option 1 seems a little bit weird to me so I'd be more inclined to do 2 but open to feedback on this (also I could have easily missed a better option). |
What does the diff API return here? In theory it should show any change |
Apologies, I've been out of town the last week and a half. So in my manual testing it seems like the LakeFS diff API actually returns empty results when a checkpoint has been made. Is that not expected? |
Are you sure the test is correct? I remember we used the diff api before doing a merge on the python side and that worked |
c33a55b
to
023046c
Compare
023046c
to
659d288
Compare
659d288
to
509e955
Compare
Ah ok I think I fixed the issue. It seems like I had the branch parameters to the diff API call reversed which messed with the checkpoint diffs specifically. The tests are all passing now, and my manual tests worked as well. |
@smeyerre great! Can you fix the formatting? Then we're good to go 💯 |
81c5b91
to
ca4d409
Compare
ca4d409
to
8df3021
Compare
Oh oops, ok that should be fixed now, unit/formatting tests are passing locally. |
@smeyerre don't worry about the other test failures, there is a breaking change in the arrow release, I will merge it once I've addressed it in main |
Awesome thanks! |
Signed-off-by: Sam Meyer-Reed <[email protected]>
Signed-off-by: Sam Meyer-Reed <[email protected]>
Signed-off-by: Sam Meyer-Reed <[email protected]>
Signed-off-by: Sam Meyer-Reed <[email protected]>
8df3021
to
9068be4
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.
Thanks for adding this optimization!! <3
Description
If a branch does not have any file changes, we no longer merge the branch to avoid empty commits.
Related Issue(s)
Documentation
N/A