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

crvd fails with TotalPartsExceeded on very large S3 objects #15

Open
dmolesUC opened this issue Feb 12, 2019 · 1 comment
Open

crvd fails with TotalPartsExceeded on very large S3 objects #15

dmolesUC opened this issue Feb 12, 2019 · 1 comment

Comments

@dmolesUC
Copy link
Owner

Steps to reproduce:

Execute the command below:

cos crvd -v s3://<BUCKET>/ --endpoint https://s3.us-west-2.amazonaws.com/ --size 1T

Expected:

Upload completes in about 4 hours (assuming a fast client network)

Actual

Upload fails at 50G with:

Error: MultipartUpload: upload multipart failed
	upload id: iuCCRxEvNJGjfH_ZoA30A1JyUqUxrZkyGJpymOIb8VWq1Yb.ysFPqMaGZQgvRDR4PjFdgsoKn8TvH.ZfoKTdyRMTkx442X9_gD8N5oMiHyLtoVSlPm_nfxY1o3Km.42le_ZTxp_1ZYwpOoqb4SbWcQ--
caused by: TotalPartsExceeded: exceeded total allowed configured MaxUploadParts (10000). Adjust PartSize to fit in this limit
@dmolesUC
Copy link
Owner Author

dmolesUC commented Feb 13, 2019

I put in a fix to set PartSize to make sure MaxUploadParts isn't exceeded. It looks, though, like the S3 SDK wants to keep the entire part in memory, which means the maximum object size we can upload is still limited by available RAM.

On a smallish EC2 instance with 2 GB RAM, it seems like a 128 MiB PartSize is OK, but 1 GiB leads to OOM errors after uploading a few gigabytes. (With the 128 MiB PartSize, resident memory peaks at about 1.6 GiB, according to top.)

At 128 MiB and a maximum of 10K parts, we'd be limited to about 1.22 TiB or 1.34 TB. It would be good to keep digging in the API and see what facilities there are for explicit multipart uploads.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant