Merge pull request #2220 from ThomasWaldmann/compression-default-lz4

use lz4 compression by default, fixes #2179
This commit is contained in:
TW 2017-02-27 00:31:43 +01:00 committed by GitHub
commit 1a67b82726
5 changed files with 22 additions and 18 deletions

View File

@ -108,19 +108,23 @@ Are there other known limitations?
An easy workaround is to create multiple archives with less items each.
See also the :ref:`archive_limitation` and :issue:`1452`.
Why is my backup bigger than with attic? Why doesn't |project_name| do compression by default?
----------------------------------------------------------------------------------------------
Why is my backup bigger than with attic?
----------------------------------------
Attic was rather unflexible when it comes to compression, it always
compressed using zlib level 6 (no way to switch compression off or
adjust the level or algorithm).
|project_name| offers a lot of different compression algorithms and
levels. Which of them is the best for you pretty much depends on your
use case, your data, your hardware -- so you need to do an informed
decision about whether you want to use compression, which algorithm
and which level you want to use. This is why compression defaults to
none.
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.
Which choice is the best option depends on a number of factors, like
bandwidth to the repository, how well the data compresses, available CPU
power and so on.
If a backup stops mid-way, does the already-backed-up data stay there?
----------------------------------------------------------------------

View File

@ -118,12 +118,12 @@ sudoers(5), or try ``sudo BORG_PASSPHRASE='yourphrase' borg`` syntax.
Backup compression
------------------
Default is no compression, but we support different methods with high speed
or high compression:
The default is lz4 (very fast, but low compression ratio), but other methods are
supported for different situations.
If you have a fast repo storage and you want some compression: ::
If you have a fast repo storage and you want minimum CPU usage, no compression::
$ borg create --compression lz4 /path/to/repo::arch ~
$ borg create --compression none /path/to/repo::arch ~
If you have a less fast repo storage and you want a bit more compression (N=0..9,
0 means no compression, 9 means high compression): ::

View File

@ -70,7 +70,7 @@ Examples
--exclude 'sh:/home/*/.thumbnails'
# Backup the root filesystem into an archive named "root-YYYY-MM-DD"
# use zlib compression (good, but slow) - default is no compression
# use zlib compression (good, but slow) - default is lz4 (fast, low compression ratio)
$ borg create -C zlib,6 /path/to/repo::root-{now:%Y-%m-%d} / --one-file-system
# Backup a remote host locally ("pull" style) using sshfs

View File

@ -1649,17 +1649,17 @@ class Archiver:
borg create /path/to/repo::{hostname}-{now:%Y-%m-%d_%H:%M:%S} ...
borg prune --prefix '{hostname}-' ...\n\n''')
helptext['compression'] = textwrap.dedent('''
Compression is off by default, if you want some, you have to specify what you want.
Compression is lz4 by default. If you want something else, you have to specify what you want.
Valid compression specifiers are:
none
Do not compress. (default)
Do not compress.
lz4
Use lz4 compression. High speed, low compression.
Use lz4 compression. High speed, low compression. (default)
zlib[,L]
@ -2299,7 +2299,7 @@ class Archiver:
help='specify the chunker parameters (CHUNK_MIN_EXP, CHUNK_MAX_EXP, '
'HASH_MASK_BITS, HASH_WINDOW_SIZE). default: %d,%d,%d,%d' % CHUNKER_PARAMS)
archive_group.add_argument('-C', '--compression', dest='compression',
type=CompressionSpec, default=dict(name='none'), metavar='COMPRESSION',
type=CompressionSpec, default=dict(name='lz4'), metavar='COMPRESSION',
help='select compression algorithm, see the output of the '
'"borg help compression" command for details.')
archive_group.add_argument('--compression-from', dest='compression_files',

View File

@ -262,7 +262,7 @@ class ArchiverTestCaseBase(BaseTestCase):
return output
def create_src_archive(self, name):
self.cmd('create', self.repository_location + '::' + name, src_dir)
self.cmd('create', '--compression=none', self.repository_location + '::' + name, src_dir)
def open_archive(self, name):
repository = Repository(self.repository_path, exclusive=True)