[devel] comprehensive rsyncability test

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Вс Июн 1 02:14:23 MSD 2008


On Sun, Jun 01, 2008 at 01:57:22AM +0400, Dmitry V. Levin wrote:
> On Sun, Jun 01, 2008 at 01:32:39AM +0400, Alexey Tourbin wrote:
> [...]
> > Что касается rsyncable deflate vs common deflate, то ответ простой:
> > коэффициент сжатия в среднем не изменяется.
> 
> Я ожидал, что rsyncable deflate не может показать лучший коэффициент
> сжатия, чем обычный deflate.  Однако в приложенном файле довольно много
> случаев, когда rsyncable deflate сильнее...

Это связано с cpio hints -- дело в том, что мы пытаемся начинать новый
deflate блок на границе файлов, когда начинается новый файл.

Рассмотрим пример.  В cpio подряд идут ELF файл размером 8K и дальше
текстовый файл размером 8K.  "Слепое" разбиение на блоки в deflate этого
не понимает, в результате ELF и текстовый файл попадут в один и тот же
deflate блок.

Дальше надо знать, что такое частотное кодирование и Huffman tree.
В ELF файле встречаются все поряд символы с достаточно равномерными
вероятностями; а в текстовом файле встречаются только ASCII буквы,
и вероятности появления букв (в английском тексте) хорошо известны
(они неодинаковые).  В начале каждого deflate блока идёт Huffman tree,
и если мы делаем sync на границе binary file/text file, то последующий
текстовый кусок сожмётся гораздо более эффективно.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?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/20080601/b981a370/attachment-0002.bin>


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