[devel] comprehensive rsyncability test

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Пн Июн 2 14:06:56 MSD 2008


On Sat, May 31, 2008 at 10:58:47PM +0400, Alexey Tourbin wrote:
> Предлагаю протестировать rsyncability двух каталогов:
> /ALT/archive/Sisyphus/2008/03/01/files/x86_64/RPMS
> /ALT/archive/Sisyphus/2008/04/01/files/x86_64/RPMS
> 
> Методика тестирования следующая:
> 1) Из каталогов парами выбираются файлы, у которых совпадает
> имя пакета %{NAME}, но при этом не совпадает имя файла
> %name-%version-%release.x86_64.rpm.
> 2) Для каждой пары пакетов извлекается cpio архив и перепаковывается
> с помощью rsyncable gzdio из нового rpmio.
> 3) Отсекаются маленькие пакеты: оба перепакованных архива должны быть
> больше 32K.
> 4) Запускается rsync, который диагностирует степень "совпадения" двух
> перепакованных архивов.
> 
> Полный результат приведён в таблице, которую я прицепил к письму.
> Таблица подразумевает следующий заголовок.
> 
> файл-1   размер-1   файл-2   размер-2   послано   скочено   speedup
> ------   --------   ------   --------   -------   -------   -------

> $ sum() { perl -MList::Util=sum -ln0 -e 'print sum split'; }
> $ cut -f4 rsyncability.txt |sum
> 2433627
> $
> 
> Общий размер новых пакетов 2.32G.
> 
> $ cut -f6 rsyncability.txt |sum
> 1643033
> $
> 
> При этом rsync скачал 1.57G.

Из интереса я запустил почти такой же тест, но для РАЗЖАТЫХ cpio.
Результаты получились следующие.

$ cut -f4 cpio.txt |sum
7091196
$

Общий объем новых пакетов в разжатов виде 6.76G.

$ cut -f6 cpio.txt |sum
3330604
$

При этом rsync скачал 3.18G, то есть 47% от расжатого объема.
Напомню, что для сжатых данных rsync скачал 67%.

О чём это говорт?  Это говорит о том, что rsync даже в идеале
не является радикальным решением проблемы синхронизации пакетов.
ДАННЫЕ В ПАКЕТАХ РЕАЛЬНО МЕНЯЮТСЯ (в репрезентативной выборке --
примерно наполовину по объему), так что rsync заведомо имеет некоторый
эмпирический предел.  Нельзя найти ещё больше совпадающих кусков там,
где их нет.

Это также говорит о том, что rsyncable deflate значительно уменьшает
максимально возможное значение rsyncability (отношение скаченного
rsync'ом к общему объему).  Это наводит на мысль, что rsyncable
compression по сути является компромиссом между compression и
rsyncability.  Ultimate compression получается при большой размере
словаря и исключает rsyncability.  А ultimate rsyncability получается
на несжатых данных.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?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/20080602/1de90186/attachment-0002.bin>


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