-
Notifications
You must be signed in to change notification settings - Fork 377
feat(catalog): Implement update_table for Hive metastore catalog #1894
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
base: main
Are you sure you want to change the base?
Conversation
3ffd73b to
b5c3d53
Compare
b5c3d53 to
bc562b7
Compare
|
Hi team, I would appreciate it if anyone could take a look at the PR, it's my first in iceberg-rust, but I hope it is in the spirit of the project. |
liurenjie1024
left a comment
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 @vladson for this pr, just finished first round of review.
crates/catalog/hms/Cargo.toml
Outdated
| metainfo = { workspace = true } | ||
| motore-macros = { workspace = true } | ||
| volo = { workspace = true } | ||
| whoami = "1.6.1" |
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.
We manage dependencies in workspace's root cargo.tom.
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.
Hey, thank you @liurenjie1024 moved whoami to the main Cargo.
| let db_name = validate_namespace(ident.namespace())?; | ||
| let tbl_name = ident.name.clone(); | ||
|
|
||
| if self.config.props.contains_key(HMS_HIVE_LOCKS_DISABLED) { |
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.
I'm not a hive expert, but I would suggest to start with pessimistic version only first.
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.
Hey, I had some experience with Hive metastore, both in setting up and using it. The thing is that many are using optimistic locking, and the problem is that in a system with multiple clients, all must use no hive locks flow, as otherwise there is a risk of data loss.
My implementation of the environment context is in line with Trino and others.
Partial implementation of HMS traditional commit stabilising fix issues with hms lock flow refactoring for optimistic locks address format
e30fa08 to
f4072a0
Compare
|
Thank you for the review; I appreciate your effort! |
Which issue does this PR close?
What changes are included in this PR?
update_table for HMS catalog.
The implementation is based on other iceberg implementations, Trino and Hive code bases.
Are these changes tested?
The existing tests were modified, and extensive manual tests were performed.