-
Notifications
You must be signed in to change notification settings - Fork 61
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
SNOW-1950183 Resolve Iceberg ingestion filename mismatch between upload and registration #958
SNOW-1950183 Resolve Iceberg ingestion filename mismatch between upload and registration #958
Conversation
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.
Looks great, but I have some comments, PTAL
src/test/java/net/snowflake/ingest/streaming/internal/it/SubscopedTokenRefreshIT.java
Outdated
Show resolved
Hide resolved
src/main/java/net/snowflake/ingest/streaming/internal/SnowflakeFileTransferMetadataWithAge.java
Outdated
Show resolved
Hide resolved
src/main/java/net/snowflake/ingest/streaming/internal/SnowflakeFileTransferMetadataWithAge.java
Outdated
Show resolved
Hide resolved
src/main/java/net/snowflake/ingest/streaming/internal/InternalStage.java
Outdated
Show resolved
Hide resolved
src/main/java/net/snowflake/ingest/streaming/internal/IcebergPostUploadMetadata.java
Outdated
Show resolved
Hide resolved
src/main/java/net/snowflake/ingest/streaming/internal/InternalStage.java
Outdated
Show resolved
Hide resolved
src/main/java/net/snowflake/ingest/streaming/internal/InternalStage.java
Outdated
Show resolved
Hide resolved
src/main/java/net/snowflake/ingest/streaming/internal/InternalStage.java
Outdated
Show resolved
Hide resolved
src/main/java/net/snowflake/ingest/streaming/internal/InternalStage.java
Outdated
Show resolved
Hide resolved
src/main/java/net/snowflake/ingest/streaming/internal/InternalStage.java
Outdated
Show resolved
Hide resolved
15b60c3
to
7ac7194
Compare
@@ -17,8 +17,8 @@ interface IStorage { | |||
* | |||
* @param blobPath | |||
* @param blob | |||
* @return The String ETag returned by the upload. Can be null in situations where the underlying | |||
* layer does not have an ETag to return. | |||
* @return The IcebergPostUploadMetadata returned by the upload. Empty if and only if it is a |
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.
Nit: change to positive 'Present iff and only if the implementation is creating Iceberg blobs'.
Note that I prefer not to mention iceberg tables as long as we can abstract the storage interface away from them.
The SDK has a bug when uploading Iceberg Parquet files at the moment of token expiration. It correctly uploads the file to S3 using a new token and file name but mistakenly registers it with the old file name. This PR ensure the SDK registers the file with the refreshed file name.
Server side fix for previous SDK versions.