[devel] rpm: rsyncable deflate vs LZMA

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Пт Май 30 01:31:14 MSD 2008


On Thu, May 29, 2008 at 10:37:44PM +0400, Dmitry V. Levin wrote:
> On Thu, May 29, 2008 at 05:28:39PM +0400, Alexander Bokovoy wrote:
> [...]
> > Я в этом деле лицо скорее заинтересованное, но я бы выбрал rsyncable
> > против lzma, потому что это дает следующие преимущества:
> > 1. Позволяет более полно использовать состояние зеркала на стороне пользователя.
> 
> Несмотря на неизменность большинства файлов, и постоянные переименования
> большинства из оставшихся файлов?

Также следует понимать, что rsyncable deflate работает только для
достаточно больших (порядка 32K) полностью совпадающих кусков.
На практике это значит, что в *.rpm пакетах из синхронизации исключаются
маленькие файлы.  Например, для пакета man-pages rsyncable оптимизация
почти ничего не даёт (speedup 1.09 после _простой_ повторной
пересборки).  Это связано с тем, что в cpio хедере (перед содержимым
файла) есть mtime, и он получается всё время разный.  А различие в mtime
"надолго" сбивает синхронизацию (то есть весь "маленький" файл
выпадает).

У меня есть идея.  Для выбора точек синхронизации (gzflush) можно
использовать не только "слепой" rsync hint, но и cpio hint -- как
только мы видим cpio magic "070707", мы знаем, что через несколько
байтов будет mtime и потом пойдёт имя и содержимое файла.  То есть
sync можно делать в месте окончания очередного cpio header.

Правда, я не знаю, даст это что-нибудь в случае с маленькими файлами
или нет.  Это может ничего не дать из-за того, что первые совпавшие
блоки в сжатом виде всё равно могут отличаться (из-за backreferences
в предыдущий блок).
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 197 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20080530/264527b3/attachment-0002.bin>


Подробная информация о списке рассылки Devel