Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
bup-margin(1)		    General Commands Manual		 bup-margin(1)

NAME
       bup-margin - figure out your deduplication safety margin

SYNOPSIS
       bup margin [options...]

DESCRIPTION
       bup  margin iterates through all	objects	in your	bup repository,	calcu-
       lating the largest number of prefix bits	shared	between	 any  two  en-
       tries.	This  number,  n,  identifies  the longest subset of SHA-1 you
       could use and still encounter a collision between your object ids.

       For example, one	system that was	tested had a collection	of 11  million
       objects	(70 GB), and bup margin	returned 45.  That means a 46-bit hash
       would be	sufficient to avoid all	collisions among that set of  objects;
       each  object  in	 that  repository  could be uniquely identified	by its
       first 46	bits.

       The number of bits needed seems to increase by about 1 or 2  for	 every
       doubling	 of  the number	of objects.  Since SHA-1 hashes	have 160 bits,
       that leaves 115 bits of margin.	Of course, because  SHA-1  hashes  are
       essentially  random,  it's theoretically	possible to use	many more bits
       with far	fewer objects.

       If you're paranoid about	the possibility	of SHA-1 collisions,  you  can
       monitor	your  repository  by running bup margin	occasionally to	see if
       you're getting dangerously close	to 160 bits.

OPTIONS
       --predict
	      Guess the	offset into each index file where a particular	object
	      will appear, and report the maximum deviation of the correct an-
	      swer  from  the guess.  This is potentially useful for tuning an
	      interpolation search algorithm.

       --ignore-midx
	      don't use	.midx files, use only .idx files.  This	is only	really
	      useful when used with --predict.

EXAMPLES
	      $	bup margin
	      Reading indexes: 100.00% (1612581/1612581), done.
	      40
	      40 matching prefix bits
	      1.94 bits	per doubling
	      120 bits (61.86 doublings) remaining
	      4.19338e+18 times	larger is possible

	      Everyone on earth	could have 625878182 data sets
	      like yours, all in one repository, and we	would
	      expect 1 object collision.

	      $	bup margin --predict
	      PackIdxList: using 1 index.
	      Reading indexes: 100.00% (1612581/1612581), done.
	      915 of 1612581 (0.057%)

SEE ALSO
       bup-midx(1), bup-save(1)

BUP
       Part of the bup(1) suite.

AUTHORS
       Avery Pennarun <apenwarr@gmail.com>

Bup 0.32			  2021-01-09			 bup-margin(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=bup-margin&sektion=1&manpath=FreeBSD+Ports+15.0>

home | help