-
-
Notifications
You must be signed in to change notification settings - Fork 3k
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
Tracking issue for UnixFS automatic sharding #8106
Comments
Scoped issue with technical details in ipfs/go-mfs#87 regarding the MFS/UnixFS enhancement to support this. Once that is done |
Now that auto-sharding is implemented, let's try implement auto-unsharding. As far as I can tell, this shouldn't be too difficult and shouldn't be a massive performance problem (TBD). The tricky parts are:
Potential solution:
Additional notes (possible future extensions):
|
We still need to integrate this into |
2021-05-10 discussion:
|
More details in the TODO list of the ongoing PR #8114. |
Update 8/13 (@schomatis): I'm leading this effort currently in progress. Not blocked.
|
Update 8/17 (@schomatis, DRI): Brief: |
Update 8/17 (corrected) (@schomatis, DRI): Brief:
|
Update 8/23 (@schomatis, DRI): Brief:
(See full status in the OP.) |
Update 8/27 (@schomatis, DRI): Brief:
(See full status in PR description.) |
Update 9/3 (@schomatis, DRI): Brief:
(See full status in PR description.) |
Update 10/21: All major work has been finished. Full review pending. The sharding PR has landed and we're working on the reverse transition of "unsharding". We haven't merged it in go-ipfs (#8114) until we finish with the unsharding to have the whole functionality together (and ensure deterministic CIDs for any directory size). Main unsharding work happening in ipfs/go-unixfs#94. Test for this are in a separate PR: ipfs/go-unixfs#99 Minor issues left for last compiled in ipfs/go-unixfs#105 can be addressed after main PRs land. Potential issue with |
Closed by #8563 |
Update 10/21: All major work has been finished. Full review pending.
The sharding PR has landed and we're working on the reverse transition of "unsharding". We haven't merged it in go-ipfs (#8114) until we finish with the unsharding to have the whole functionality together (and ensure deterministic CIDs for any directory size).
Main unsharding work happening in ipfs/go-unixfs#94.
Minor issues left for last compiled in ipfs/go-unixfs#105 can be addressed after main PRs land.
Potential issue with
merkledag.Walk
function doing a BFS in ipfs/boxo#392, but this can be address after landing the major work as it's only an optimization.Tracking implementation of #7022
Per the linked issue in order to enable sharded directories by default we want to shard the directories when required.
After some discussion the heuristic we are going to use for now to do determine when to use sharded vs regular directories is option three listed here. That is we will sum the sizes of all the names + CIDs in the map and if they are >256KiB we will use sharded directories and if they are <=256KiB we will use regular directories.
Places where we'll likely have to look at changes include:
Hopefully if we keep the interfaces the same here we won't have to make any changes in go-ipfs itself. We may need to do a scan to see if we do any type casting to a UnixFS basic or sharded directory though just in case.
Once this is done we should be able to drop the global boolean that enables "use sharded directories" from both go-unixfs, go-ipfs, and go-ipfs-config.
The text was updated successfully, but these errors were encountered: