bup-margin - выяснить запас прочности дедупликации
bup margin [options...]
bup margin перебирает все объекты в вашем репозитории bup, вычисляя наибольшее количество префиксных битов, разделяемых между любыми двумя записями. Это число, n, идентифицирует самое длинное подмножество SHA-1, которое вы могли бы использовать и при этом столкнуться с коллизией между вашими идентификаторами объектов.
Например, в одной протестированной системе была коллекция из 11 миллионов объектов (70 ГБ), а bup margin вернул 45. Это означает, что 46-битного хэша будет достаточно, чтобы избежать всех коллизий между этим набором объектов; каждый объект в этом репозитории может быть однозначно идентифицирован его первыми 46 битами.
Количество необходимых битов увеличивается примерно на 1 или 2 при каждом удвоении количества объектов. Поскольку хэши SHA-1 имеют 160 бит, остается запас в 115 бит. Конечно, поскольку хэши SHA-1 по существу случайны, теоретически возможно использовать намного больше битов с гораздо меньшим количеством объектов.
Если вы параноидально относитесь к возможности коллизий SHA-1, вы можете контролировать свой репозиторий, время от времени запуская bup margin, чтобы увидеть, не приближаетесь ли вы к 160 битам.
Угадайте смещение в каждом индексном файле, где появится конкретный объект, и сообщите максимальное отклонение правильного ответа от предположения. Это потенциально полезно для настройки алгоритма поиска интерполяции.
не используйте файлы .midx, используйте только файлы .idx. Это действительно полезно только при использовании с --predict.
$ 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%)
bup-midx(1), bup-save(1)
Часть набора bup(1).
Эйвери Пеннарун apenwarr@gmail.com.