diff --git a/README.rst b/README.rst index 414901b2..21f0392a 100644 --- a/README.rst +++ b/README.rst @@ -58,8 +58,13 @@ Main features authenticity is verified using HMAC-SHA256. Data is encrypted clientside. **Compression** - All data can be compressed by lz4 (super fast, low compression), zlib - (medium speed and compression) or lzma (low speed, high compression). + All data can be optionally compressed: + + * lz4 (super fast, low compression) + * zstd (wide range from high speed and low compression to high compression + and lower speed) + * zlib (medium speed and compression) + * lzma (low speed, high compression) **Off-site backups** Borg can store data on any remote host accessible over SSH. If Borg is diff --git a/docs/faq.rst b/docs/faq.rst index 7832d5da..0bbb0957 100644 --- a/docs/faq.rst +++ b/docs/faq.rst @@ -788,7 +788,7 @@ Here's a (incomplete) list of some major changes: * more open, faster paced development (see `issue #1 `_) * less chunk management overhead (less memory and disk usage for chunks index) * faster remote cache resync (useful when backing up multiple machines into same repo) -* compression: no, lz4, zlib or lzma compression, adjustable compression levels +* compression: no, lz4, zstd, zlib or lzma compression, adjustable compression levels * repokey replaces problematic passphrase mode (you can't change the passphrase nor the pbkdf2 iteration count in "passphrase" mode) * simple sparse file support, great for virtual machine disk files * can read special files (e.g. block devices) or from stdin, write to stdout @@ -840,8 +840,7 @@ The default in Borg is lz4, which is fast enough to not use significant CPU time in most cases, but can only achieve modest compression. It still compresses easily compressed data fairly well. -zlib compression with all levels (1-9) as well as LZMA (1-6) are available -as well, for cases where they are worth it. +Borg also offers zstd, zlib and lzma compression, choose wisely. Which choice is the best option depends on a number of factors, like bandwidth to the repository, how well the data compresses, available CPU diff --git a/docs/internals/data-structures.rst b/docs/internals/data-structures.rst index d9d42302..7d7e06f0 100644 --- a/docs/internals/data-structures.rst +++ b/docs/internals/data-structures.rst @@ -913,15 +913,16 @@ Borg supports the following compression methods: - none (no compression, pass through data 1:1) - lz4 (low compression, but super fast) +- zstd (level 1-22 offering a wide range: level 1 is lower compression and high + speed, level 22 is higher compression and lower speed) - since borg 1.1.4 - zlib (level 0-9, level 0 is no compression [but still adding zlib overhead], level 1 is low, level 9 is high compression) - lzma (level 0-9, level 0 is low, level 9 is high compression). -Speed: none > lz4 > zlib > lzma -Compression: lzma > zlib > lz4 > none +Speed: none > lz4 > zlib > lzma, lz4 > zstd +Compression: lzma > zlib > lz4 > none, zstd > lz4 -Be careful, higher zlib and especially lzma compression levels might take a -lot of resources (CPU and memory). +Be careful, higher compression levels might use a lot of resources (CPU/memory). The overall speed of course also depends on the speed of your target storage. If that is slow, using a higher compression level might yield better overall diff --git a/docs/quickstart.rst b/docs/quickstart.rst index 3c197aee..cdc976ea 100644 --- a/docs/quickstart.rst +++ b/docs/quickstart.rst @@ -186,6 +186,17 @@ Backup compression The default is lz4 (very fast, but low compression ratio), but other methods are supported for different situations. +You can use zstd for a wide range from high speed (and relatively low +compression) using N=1 to high compression (and lower speed) using N=22. + +zstd is a modern compression algorithm and might be preferable over zlib and +lzma, except if you need compatibility to older borg versions (< 1.1.4) that +did not yet offer zstd. + + $ borg create --compression zstd,N /path/to/repo::arch ~ + +Other options are: + If you have a fast repo storage and you want minimum CPU usage, no compression:: $ borg create --compression none /path/to/repo::arch ~