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

[RFC] Separated Manifests | Addition of Tree Object #1066

Open
rydrman opened this issue Jul 4, 2024 · 0 comments
Open

[RFC] Separated Manifests | Addition of Tree Object #1066

rydrman opened this issue Jul 4, 2024 · 0 comments
Labels
agenda item Items to be brought up at the next dev meeting

Comments

@rydrman
Copy link
Collaborator

rydrman commented Jul 4, 2024

Background and Problem Space

In some cases, we are seeing manifests reach into the hundreds of megabytes in size. Additionally, there is duplicated data between manifests of spk packages when minor changes happen in one or two sub directories in a large package with thousands of files.

Proposal

SPFS already has an object kind that holds trees. These represent a single directory and are combined together in a manifest to create a full filesystem hierarchy.

Instead of always storing the reference to this complete manifest in layers, we would allow the reference of the root tree object. This means that trees could/would be stored individually as objects in the repo, and that the manifest would/could be loaded incrementally as all trees are accessed.

Other Considerations

  • What about a single file with deep structure? This case would create many trees and slow down the loading process because of back-and-forth with the repository. Maybe it's atypical and we don't care, or we have smarter ways to request the entire manifest via gRPC to reduce round-trips when networked.
@rydrman rydrman added the agenda item Items to be brought up at the next dev meeting label Jul 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
agenda item Items to be brought up at the next dev meeting
Projects
None yet
Development

No branches or pull requests

1 participant