1.5Kпросмотров
29 сентября 2024 г.
Score: 1.7K
ZPAQ - консольный append-only архиватор, способный эффективно снапшотить целые директории с тысячами файлов и/или BLOBы в десятки ГБ (хоть с целыми ФС внутри) в один единственный файл. В процессе архивирования используется дедупликация на уровне фрагментов данных, сохраняющая только уникальные последовательности, а сжатие осуществляется адаптивным алгоритмом, который подстраивается под характер самих данных. Поддержка шифрования тоже имеется. Внутри архива могут содержаться тысячи снапшотов, любой из них может быть извлечен, новые - всегда дописываются только в конец, а удалять из такого архива ничего нельзя. Можно сказать, что zpaq это такой своеобразный single-file git репозиторий для бинарных данных, стремящийся к максимальной эффективности компрессии. Пример (не мой):
> Real-speed updating (on QNAP NAS) of a small server (300GB); ~7GB of Thunderbird mbox become ~6MB (!) in ~4 minutes.
Просто отвал башки. Теорему Шеннона, конечно, обойти не получится, но эта штука позволяет еще больше приблизиться к теоретическому пределу эффективности сжатия на реальных задачах резервного копирования, по сравнению с использованием классических архиваторов. Почитать еще: https://en.wikipedia.org/wiki/ZPAQ
Разработка не новая, оригинальный проект zpaq более не развивается, но присутствует в некоторых дистрах, а также существует вполне живой форк: https://github.com/fcorbelli/zpaqfranz
#TIL @lomalkin_log