> === New process ===
> # Resolve packaging request into a list of packages and operations
> # Download and '''decompress''' packages into a
'''locally optimized''' rpm file
> # Install and/or upgrade packages sequentially using RPM files, using
''reference linking''' (reflinking) to reuse data already on
disk.
This sound great because free space requirements can be reduced,
specially when installing new packages.
I need to re-word this: the "reuse" of data is between the locally downloaded
rpm and the installed destination. I do have a plan to investigate making rpm2extents
enumerate the dnf/rpm cache (if you enable it) and reflink any shared data between rpms,
saving writes.
Today this proposal explains that disk space requirements during updates are expected to
be higher. See
https://fedoraproject.org/wiki/Changes/RPMCoW#Notes item 3.
I have experimented building very small appliances using btrfs
compression on things like /usr/share. So I think this could disrupt
this because if I am correct the extends will be first downloaded to a
temporary directory without compression enabled.
There is also some confusion between compressed data in the rpm and the transcoded one,
and filesystem level compression. This proposal affects the former, but not the latter.
I'd caution against using btrfs specific attributes to disable compression the dnf/rpm
cache directory tree, because then the extents written/shared to the installed file
locations will also not be compressed. (this is my interpretation of what I expect to see
with FICLONERANGE ioctl etc: it'd be slower if it honored filesystem level compression
because it'd need to re-write the data.)
I am happy with an option to disable this behavior.
I'm unclear on which behavior you're referring to. This proposal is add support
for Copy on Write in Fedora, but not make it default at this time.
Thanks, Matthew.