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

Open
wants to merge 39 commits into
base: main
Choose a base branch
from

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 27.40964% with 964 lines in your changes missing coverage. Please review.

Project coverage is 70.97%. Comparing base (5131850) to head (ceed6f7).
Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
crates/lakefs/src/logstore.rs 0.00% 260 Missing ⚠️
crates/lakefs/src/client.rs 0.00% 200 Missing ⚠️
python/src/lib.rs 0.00% 117 Missing ⚠️
crates/lakefs/src/storage.rs 0.00% 61 Missing ⚠️
crates/core/src/storage/mod.rs 41.02% 21 Missing and 2 partials ⚠️
crates/core/src/operations/transaction/mod.rs 68.57% 20 Missing and 2 partials ⚠️
crates/lakefs/src/lib.rs 0.00% 20 Missing ⚠️
crates/core/src/operations/set_tbl_properties.rs 0.00% 19 Missing ⚠️
crates/lakefs/src/errors.rs 0.00% 19 Missing ⚠️
crates/core/src/operations/add_column.rs 0.00% 18 Missing ⚠️
... and 22 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3103      +/-   ##
==========================================
- Coverage   72.34%   70.97%   -1.38%     
==========================================
  Files         128      133       +5     
  Lines       41296    42454    +1158     
  Branches    41296    42454    +1158     
==========================================
+ Hits        29875    30130     +255     
- Misses       9504    10388     +884     
- Partials     1917     1936      +19     

☔ 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 from 02ea60a to 7834241 Compare January 6, 2025 09:26
@ion-elgreco ion-elgreco force-pushed the feat/lakefs_integration branch from 7f751f7 to a87b617 Compare January 6, 2025 21:45
@ion-elgreco ion-elgreco force-pushed the feat/lakefs_integration branch from b77f751 to 37358f9 Compare January 7, 2025 16:01
@ion-elgreco ion-elgreco force-pushed the feat/lakefs_integration branch 2 times, most recently from 9150bfe to b368f41 Compare January 7, 2025 16:56
@ion-elgreco ion-elgreco force-pushed the feat/lakefs_integration branch 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 3 times, most recently from fc82c1f to 7d10625 Compare January 8, 2025 16:56
@ion-elgreco ion-elgreco force-pushed the feat/lakefs_integration branch 2 times, most recently from 6e7821e to ed5a790 Compare January 8, 2025 17:15
@ion-elgreco ion-elgreco force-pushed the feat/lakefs_integration branch 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
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