Skip to content
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: lakefs integration #3103

Merged
merged 11 commits into from
Jan 10, 2025
Merged

Conversation

ion-elgreco
Copy link
Collaborator

@ion-elgreco ion-elgreco commented Jan 6, 2025

Description

Makes LakeFS first-class citizen in delta-rs. Operations are executed in a transaction branch, where we write into and then try to commit and merge if there is no conflict. If there is a conflict it means there was a concurrent writer, so we remove the log, and retry with the conflict checker.

Main concepts that this PR introduces through out the core crate:

  • LogStore makes distinction between reading and writing objectstore, the writing store can receive an optional operation_id
  • Every operation has customExecuteHandler which implements a pre_execute and post_execute.
    • pre-execute is executed usually right away, or after sanity checks are done in the operation
    • post-execute is executed after commitbuilder has finished
  • CommitBuilder also uses operation_id to pass it to commit_entry functions

@github-actions github-actions bot added binding/python Issues for the Python package binding/rust Issues for the Rust crate labels Jan 6, 2025
Copy link

github-actions bot commented Jan 6, 2025

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.

@ion-elgreco ion-elgreco marked this pull request as draft January 6, 2025 00:31
Copy link

codecov bot commented Jan 6, 2025

Codecov Report

Attention: Patch coverage is 66.47824% with 593 lines in your changes missing coverage. Please review.

Project coverage is 72.16%. Comparing base (fb75965) to head (c087382).
Report is 11 commits behind head on main.

Files with missing lines Patch % Lines
crates/lakefs/src/logstore.rs 44.49% 105 Missing and 16 partials ⚠️
python/src/lib.rs 0.00% 119 Missing ⚠️
crates/lakefs/src/client.rs 85.87% 43 Missing and 6 partials ⚠️
crates/core/src/storage/mod.rs 41.02% 21 Missing and 2 partials ⚠️
crates/core/src/operations/transaction/mod.rs 68.57% 18 Missing and 4 partials ⚠️
crates/lakefs/src/execute.rs 93.56% 4 Missing and 16 partials ⚠️
crates/core/src/operations/set_tbl_properties.rs 0.00% 19 Missing ⚠️
crates/core/src/operations/add_column.rs 0.00% 18 Missing ⚠️
crates/core/src/operations/create.rs 50.00% 12 Missing and 5 partials ⚠️
crates/lakefs/src/errors.rs 31.57% 13 Missing ⚠️
... and 23 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3103      +/-   ##
==========================================
- Coverage   72.43%   72.16%   -0.27%     
==========================================
  Files         128      134       +6     
  Lines       41366    42962    +1596     
  Branches    41366    42962    +1596     
==========================================
+ Hits        29962    31004    +1042     
- Misses       9498     9958     +460     
- Partials     1906     2000      +94     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@ion-elgreco ion-elgreco changed the title feat: LakeFS integration feat: lakefs integration Jan 6, 2025
@ion-elgreco ion-elgreco force-pushed the feat/lakefs_integration branch 6 times, most recently from cc0073b to 4e31b6a Compare January 7, 2025 18:06
@rtyler rtyler self-assigned this Jan 8, 2025
@rtyler rtyler added this to the v0.24 milestone Jan 8, 2025
@ion-elgreco ion-elgreco force-pushed the feat/lakefs_integration branch 6 times, most recently from ed5a790 to 62f86ea Compare January 8, 2025 17:20
@ion-elgreco ion-elgreco marked this pull request as ready for review January 8, 2025 17:48
crates/aws/src/logstore/default_logstore.rs Outdated Show resolved Hide resolved
crates/core/src/logstore/mod.rs Outdated Show resolved Hide resolved
crates/core/src/operations/mod.rs Outdated Show resolved Hide resolved
crates/core/src/operations/mod.rs Outdated Show resolved Hide resolved
crates/core/src/operations/transaction/mod.rs Outdated Show resolved Hide resolved
@rtyler rtyler enabled auto-merge January 10, 2025 17:10
rtyler
rtyler previously approved these changes Jan 10, 2025
@rtyler rtyler added this pull request to the merge queue Jan 10, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to a conflict with the base branch Jan 10, 2025
@ion-elgreco ion-elgreco force-pushed the feat/lakefs_integration branch from dd15932 to 528fbc9 Compare January 10, 2025 21:33
Signed-off-by: Ion Koutsouris <[email protected]>
Signed-off-by: Ion Koutsouris <[email protected]>
Signed-off-by: Ion Koutsouris <[email protected]>
Signed-off-by: Ion Koutsouris <[email protected]>
Signed-off-by: Ion Koutsouris <[email protected]>
Signed-off-by: Ion Koutsouris <[email protected]>
Signed-off-by: Ion Koutsouris <[email protected]>
@ion-elgreco ion-elgreco force-pushed the feat/lakefs_integration branch from 528fbc9 to 45ef280 Compare January 10, 2025 21:41
@ion-elgreco ion-elgreco force-pushed the feat/lakefs_integration branch from 0fc2f7f to f5a9dc6 Compare January 10, 2025 21:54
Signed-off-by: Ion Koutsouris <[email protected]>
@ion-elgreco ion-elgreco force-pushed the feat/lakefs_integration branch from 7685a33 to c087382 Compare January 10, 2025 22:08
@ion-elgreco ion-elgreco enabled auto-merge January 10, 2025 22:24
@ion-elgreco ion-elgreco added this pull request to the merge queue Jan 10, 2025
Merged via the queue into delta-io:main with commit b831543 Jan 10, 2025
26 checks passed
@ion-elgreco ion-elgreco deleted the feat/lakefs_integration branch January 10, 2025 22:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
binding/python Issues for the Python package binding/rust Issues for the Rust crate
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants