For background, I have been working on a pet project that involves building a single-file archive containing the directory structure used by a BorgBackup repository. The reason isn’t that important here (I’ll post about it later, maybe), but I have been evaluating a couple of things to get an idea of performance tradeoffs:
- Build a
tar
archive withzstd
compression of the original files that Borg would be backing up. - Build a
tar
archive withzstd
compression of the Borg repository itself. - Build a SquashFS archive with
zstd
compression of the original files that Borg would be backing up. - Build a SquashFS archive with
zstd
compression of the Borg repository itself.
And then I decided to add DwarFS to the list of options, so also these:
- Build a DwarFS archive with default compression of the original files that Borg would be backing up.
- Build a DwarFS archive with default compression of the Borg repository itself.
The reason that I wanted to look at DwarFS is that it seems to compare favorably to SquashFS and tar+zstd in terms of both space and time (See the comparison.).
But, I found that for some reason on my testing data with my (old) laptop, it is taking an order of magnitude longer to create the DwarFS archive. The plots below show the time to create the archive for each of the three methods on the raw files (~13GiB) and the Borg repo of the same information (~8.3GiB).
Figure 1: Creation time in seconds.
The final size is a little better than the others (See Figure 2 below.), but the time it takes to get there is unacceptable. I’m sure this is a “me” problem, but I’m not sure what is causing it. I will have to dig a little deeper on this one.