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

Implement multi-part S3 upload in iota-data-ingestion #4983

Closed
kodemartin opened this issue Jan 23, 2025 · 0 comments · Fixed by #5026
Closed

Implement multi-part S3 upload in iota-data-ingestion #4983

kodemartin opened this issue Jan 23, 2025 · 0 comments · Fixed by #5026
Assignees
Labels
infrastructure Issues related to the Infrastructure Team

Comments

@kodemartin
Copy link
Contributor

kodemartin commented Jan 23, 2025

The current implementation uses a single PUT operation to sore a checkpoint blob into S3 bucket. During initial testing with DEVNET data an issue was encountered when storing the checkpoint 0. Its size is around 12GB.

Upload an object in a single operation by using the AWS SDKs, REST API, or AWS CLI – With a single PUT operation, you can upload a single object up to 5 GB in size.

https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html

To mitigate this limitation we could use a multipart upload, it involves splitting the checkpoint blob into separate chunks and send them to the S3 bucket.

The following AWS SDK example explores this solution: https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/rustv1/examples/s3/src/bin/s3-multipart-upload.rs

since the current implementation uses the object-store crate as a unified interface there's an alternative put operation which uses multipart upload: https://docs.rs/object_store/latest/object_store/multipart/trait.MultipartStore.html#tymethod.put_part

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
infrastructure Issues related to the Infrastructure Team
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants