Portage snapshot takes too much inode count once untarred, we could add an option named SNAPSQUASH to be used instead of SNAPCACHE which would do the following:
1 - build a squashfs portage snapshot instead of a tar.bz2
2 - mount this squashfs on $chroot_path/usr/portage instead of untarring portage snapshot then bind mount
Created attachment 194876 [details, diff]
patch to add the snapsquash feature
This patch adds the snapsquash feature. It works well for snapshot, stage[1-3] targets.
1 - Mutual exclusion of snapcache and snapsquash catalyst options (where's the best place to implement it?)
2 - Failure recovery (umount of squashfs)
3 - Checks for loop and squashfs support
4 - peer review :)
It's certainly an interesting idea. I'd never use it myself, since it gets rid of one of the cool unintended features of snapcache, the ability to monkey around with the snapshot without rebuilding the snapshot tarball.
I'm not going to apply this patch now. However, I'll keep this one in mind while I'm playing around with the catalyst_3 branch.
New catalyst has support for .tar.bz2 and .tar.xz as well as a few other formats. The question is, why would we want to support squashfs? what does this give us that the others do not?
with squashfs we do not untar the portage, we simply mount it
when we ar done we do not rm-rf the place we untarred it, we simply unmount it
This is coming later this spring along with the new compress/decompress routines.
In fact you will be able to select which format you want as well as specify a custom format.
Whether catalyst will mount a sqaushfs image is another matter, but should be doable with the new mount system in place now.
I forgot that we had a bug open for this. Implemented with https://gitweb.gentoo.org/proj/catalyst.git/commit/?id=5b29d4a88f492f6890d0574d0addefb9e6a13271