4 ms·
Thank you. This answers multipart uploads question. Another one, if I may. Can a large object be uploaded to Ambry using chunking? Like s3, gcs, and azure blob
by rad_gruchalski 4y ago
Thank you. This answers multipart uploads question.
Another one, if I may. Can a large object be uploaded to Ambry using chunking? Like s3, gcs, and azure blob storage do? The upload client splits an object into 8KB chunks (configurable) and uploads them in parallel using byte ranges. Each chunk upload has its own retry policy. This prevents a situation where bad egress would interrupt large upload as a whole. Essentially how sftp put operation works. This is different from the multipart upload discussed earlier.
Can this be done with Ambry? I don’t see any immediate mention of byte ranges in the source you linked.
- ambry 4y agoShort answer: Yes. However, Ambry doesn't use byte-ranges for the upload. Each chunk can be uploaded separately and the client then requests a _stitch_ operation[1]. In that operation, the client specifies the list of blob IDs for each chunk (in order) and asks Ambry to create a metadata blob listing those IDs. Ambry then returns the blob ID for the metadata blob. [1]: https://github.com/linkedin/ambry/blob/9b7a49ac79b1678fd7fd7a1871ef8f8c0d60c29b/ambry-frontend/src/main/java/com/github/ambry/frontend/PostBlobHandler.java#L58 https://github.com/linkedin/ambry/blob/9b7a49ac79b1678fd7fd7...