storj / roadmap

Storj Public Roadmap
Other
11 stars 4 forks source link

Upload Codepath Refactor #12

Closed iglesiasbrandon closed 1 year ago

iglesiasbrandon commented 2 years ago

Summary:

We want to Rewrite or refactor the code that performs uploads and downloads inside libuplink to enable a collection of new features and improve upon lessons we've learned from the existing code.

Pain Point:

Our current upload code is rigid and brittle. It has encryption and erasure coding tied too tightly together, and it has hardcoded assumptions about long-tail management and segment pipelining.

Milestone:

https://github.com/storj/uplink/milestone/2

Intended Outcome:

jtolio commented 2 years ago

Notes:

Uploads are not paid and everything about them is already encrypted and signed. We should be able to get away with having uploads be a single signed order and a byte dump without TLS. We should be able to make this way faster.

To do: evaluate what similar opportunities exist for downloads

zeebo commented 2 years ago

Some other high level ideas/goals

Stuff I already did in the past in some branch on my computer somewhere

zeebo commented 2 years ago

I made this project for this .. project: https://github.com/orgs/storj/projects/30/views/1

iglesiasbrandon commented 1 year ago

Note: We started implementing this in Sprint 8 but did some research and design in Sprint 3.

shaupt131 commented 1 year ago

Now expected to be delivered sprint 13. Competing priorities lead to delays in building test automation and finishing QA. Also have a ticket scheduled for sprint 13 to allow it to be enabled but behind a config flag.

shaupt131 commented 1 year ago

Pushing this to a sprint 15 delivery date. We are addressing performance issues related to the refactored upload codepath. Uplink will be reverted to the previous version while we implement improvements.

iglesiasbrandon commented 1 year ago

We are going to move this item to sprint 16. We are having trouble replicating the issue, so we added some monitoring, and those changes are being deployed as a part of v1.80.2 https://github.com/storj/storj/pull/5917

Once these changes are deployed, we hope the extra monitoring will help us uncover and resolve the issue.

iglesiasbrandon commented 1 year ago

The logging we need to help identify the remaining bug was deployed on 6/1. We will monitor this next week and figure out what the issue is so that we can resolve it.

iglesiasbrandon commented 1 year ago

We still dont know what the problem is with the upload code path refactor we need to move this back again.

https://github.com/storj/uplink/issues/147

iglesiasbrandon commented 1 year ago

We have discovered the fixed the issue that will make it so that the new and old upload code paths at least match in performance.

Once that PR is merged, we should consider this issue completed. We also found another limitation that could improve the upload performance even further that we can work on in the future. https://github.com/storj/storj/issues/6020

iglesiasbrandon commented 1 year ago

With the release of uplink v1.11.0, we can call this roadmap item completed!

This was the last bug we were working on in regard to this roadmap item:

https://github.com/storj/uplink/issues/147 https://review.dev.storj.io/c/storj/uplink/+/10730

https://github.com/storj/uplink/releases/tag/v1.11.0