-
Notifications
You must be signed in to change notification settings - Fork 3k
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
Delta lake S3 exclusive write reconciliation #23145
Conversation
e07d221
to
8f47254
Compare
lib/trino-filesystem-s3/src/test/java/io/trino/filesystem/s3/TestS3FileSystemS3Mock.java
Outdated
Show resolved
Hide resolved
ac81ecf
to
4570177
Compare
lib/trino-filesystem-s3/src/main/java/io/trino/filesystem/s3/S3OutputFile.java
Outdated
Show resolved
Hide resolved
lib/trino-filesystem-s3/src/main/java/io/trino/filesystem/s3/S3OutputStream.java
Outdated
Show resolved
Hide resolved
...java/io/trino/plugin/deltalake/transactionlog/writer/S3NativeTransactionLogSynchronizer.java
Outdated
Show resolved
Hide resolved
lib/trino-filesystem-s3/src/main/java/io/trino/filesystem/s3/S3FileSystemConfig.java
Outdated
Show resolved
Hide resolved
...java/io/trino/plugin/deltalake/transactionlog/writer/S3NativeTransactionLogSynchronizer.java
Outdated
Show resolved
Hide resolved
...java/io/trino/plugin/deltalake/transactionlog/writer/S3NativeTransactionLogSynchronizer.java
Outdated
Show resolved
Hide resolved
...io/trino/plugin/deltalake/TestDeltaLakeMinioWithExclusiveWritesAndHmsConnectorSmokeTest.java
Outdated
Show resolved
Hide resolved
...io/trino/plugin/deltalake/TestDeltaLakeMinioWithExclusiveWritesAndHmsConnectorSmokeTest.java
Outdated
Show resolved
Hide resolved
lib/trino-filesystem-s3/src/main/java/io/trino/filesystem/s3/S3FileSystemConfig.java
Outdated
Show resolved
Hide resolved
lib/trino-filesystem-s3/src/test/java/io/trino/filesystem/s3/TestS3FileSystemAwsS3.java
Outdated
Show resolved
Hide resolved
The PR is quite important for Delta Lake users on top of AWS S3. Pls add a more lengthy description of what it does and add also release notes to it. 🙏 Maybe we should point out that the hypothesis |
4570177
to
f730742
Compare
.../main/java/io/trino/plugin/deltalake/transactionlog/writer/S3TransactionLogSynchronizer.java
Outdated
Show resolved
Hide resolved
f730742
to
36a5c90
Compare
@electrum should we enable S3 exclusive write support by default if it's supported by both Minio and AWS? |
36a5c90
to
99635c4
Compare
Seems to be working :) |
lib/trino-filesystem-s3/src/main/java/io/trino/filesystem/s3/S3OutputStream.java
Outdated
Show resolved
Hide resolved
lib/trino-filesystem-s3/src/main/java/io/trino/filesystem/s3/S3OutputStream.java
Outdated
Show resolved
Hide resolved
|
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.
Can you extract renames to separate commit.
I cannot see what changes are made to test file
.../main/java/io/trino/plugin/deltalake/transactionlog/writer/S3TransactionLogSynchronizer.java
Outdated
Show resolved
Hide resolved
d9d7d3e
to
3ef770b
Compare
@losipiuk PTAL |
...in/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaLakeSynchronizerModule.java
Outdated
Show resolved
Hide resolved
97a0c83
to
faab545
Compare
...in/trino-delta-lake/src/main/java/io/trino/plugin/deltalake/DeltaLakeSynchronizerModule.java
Show resolved
Hide resolved
plugin/trino-delta-lake/src/test/java/io/trino/plugin/deltalake/DeltaLakeQueryRunner.java
Outdated
Show resolved
Hide resolved
...java/io/trino/plugin/deltalake/transactionlog/writer/S3NativeTransactionLogSynchronizer.java
Outdated
Show resolved
Hide resolved
.../trino/plugin/deltalake/TestDeltaLakeMinioAndHmsWithoutExclusiveWriteConnectorSmokeTest.java
Outdated
Show resolved
Hide resolved
.../trino/plugin/deltalake/TestDeltaLakeMinioAndHmsWithoutExclusiveWriteConnectorSmokeTest.java
Outdated
Show resolved
Hide resolved
This allows for the faster, concurrent write reconciliation without the custom locking mechanism that was implemented for S3 when it lacked exclusive write support. Since this is now supported, we should use faster path if possible.
faab545
to
a4109bb
Compare
...a/io/trino/plugin/deltalake/transactionlog/writer/S3LockBasedTransactionLogSynchronizer.java
Outdated
Show resolved
Hide resolved
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.
Great.
Very much looking forward to this addition.
Please give the news on #delta-lake Slack channel :)
@findinpath I'll remove TODOs before merging this change |
https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html#conditional-writes
This allows for the faster, concurrent write reconciliation without the custom locking mechanism
that was implemented for S3 when it lacked exclusive write support. Since this is now supported,
we should use faster path if possible.
Enabled in tests for S3 and Minio tests. Doesn't work in s3mock and
local-stack(support added 29/08/2024).Release notes: Add support for lock-less Delta Lake write reconciliation on S3