Right now for each OCI image we end up with N layer symlinks in the streams/ dir, plus 3 other symlinks: manifest, config and ref. ostree also uses a lot of little files.
Git can use split files, but more commonly has "packed" representations. See https://lwn.net/Articles/1057561/
My inclination here to start let's at least shard the streams based on digest prefix (just like objects).
But past that we may need to debate an actual indexed format; we could easily do something custom like git reftables or just use sqlite.
Right now for each OCI image we end up with N layer symlinks in the
streams/dir, plus 3 other symlinks: manifest, config and ref. ostree also uses a lot of little files.Git can use split files, but more commonly has "packed" representations. See https://lwn.net/Articles/1057561/
My inclination here to start let's at least shard the streams based on digest prefix (just like objects).
But past that we may need to debate an actual indexed format; we could easily do something custom like git reftables or just use sqlite.