]> Sergey Matveev's repositories - stargrave-blog.git/commit
zstd --patch-from
authorSergey Matveev <stargrave@stargrave.org>
Thu, 20 Feb 2025 10:48:44 +0000 (13:48 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Thu, 20 Feb 2025 11:19:25 +0000 (14:19 +0300)
commita124b85eb06d53ef7e45018c573b895241a0a6b0
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904
parent3cd3d587c3909ae8da1f6bdde9ecaaf3bbcf87b9
zstd --patch-from

https://www.linux.org.ru/news/opensource/17890558
https://github.com/facebook/zstd/releases/tag/v1.5.7
Только что вышел новый zstd. Узнал о существовании --patch-from штуки,
которая и прежде был (но кто ж читает документацию!?). Попробовал --
действительно, делает прям патч, который можно применить относительно
уже существующих данных.

Я применяю bsdiff для обновления (bf0b7e0357b8bf41a874a85ab55f920a0fba7d59)
своих web-серверов, ведь у них нет явного конфига и любые изменения это
пересборка самого демона, который весит несколько мегабайт. Тогда как
bsdiff патчи занимают десятки килобайт (если не прыжок с мажорной Go
версии на мажорную произошёл). zstd делает патчи в разы большего
размера, но это всё равно сильно лучше чем передавать полностью все эти
бинарники. Думаю, что буду zstd использовать теперь для этих целей,
просто чтобы иметь меньший зоопарк инструментов. Впрочем, под FreeBSD
bsdiff идёт из коробки.

Попробовал и новую --max опцию. Памяти она жрёт уйму: для двух потоков
более 30GiB. Поэтому я не могу утилизировать все свои ядра на компьютере
(мало памяти). Ну и медленно оно конечно работает. Для больших файлов
вряд ли вариант -- уж очень долго.