[devel] comprehensive rsyncability test

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Вс Июн 1 12:11:50 MSD 2008


On Sat, May 31, 2008 at 11:44:52PM +0400, Dmitry V. Levin wrote:
> On Sat, May 31, 2008 at 10:58:47PM +0400, Alexey Tourbin wrote:
> > Предварительное тестирование rsyncable gzdio показало, что эффект
> > от rsyncable deflate есть, и лучше всего он проявляется при
> > незначительном изменении пакетов; кроме того, пакет должен содержать
> > достаточно большие файлы (если пакет целиком состоит из маленьких
> > файлов, то rsyncability резко падает).
> > 
> > Но одиночные тесты не выявляют "реального положения вещей"; требуется
> > более широкое тестирование с привлечением "реальных данных" за некоторый
> > промежуток времени.
> > 
> > Предлагаю протестировать 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, который диагностирует степень "совпадения" двух
> > перепакованных архивов.
> 
> Тогда, наверное, надо сравнить ещё и размер rsyncable deflate, нынешний
> не-rsyncable deflate и lzma для этих двух групп пакетов.

Далее я прицепил таблицу

файл-2   gzdio-размер   lzdio(2)-размер   lzma-5-размер
------   ------------   ---------------   -------------

$ cut -f2 lzma.txt |sum                                     
2433627
$

Общий размер новых файлов, перепакованных с помощью rsyncable deflate,
прежний -- 2.32G.

$ cut -f3 lzma.txt |sum
1960275
$ cut -f4 lzma.txt |sum
1819361
$ 

Если те же самые файлы сжать с помощью 'lzma -2' или 'lzma -5',
то получим 1.87G и 1.73G соответственно.  Напомню, что при
синхронизации rsync скачал 1.57G.  Несколько точнее, разница
между 1.57G и 1.73G в данном случае 172M.


#!/bin/sh -efu
packages "$1" >pkg1
packages "$2" >pkg2
join -t$'\t' -j 1 -o '0 1.3 2.3' pkg1 pkg2 |awk -F'\t' '$2!=$3' >pkg12
while read -r pkg f1 f2; do
        rpm2cpio "$1/$f1" |./gzdio >cpio1.gz
        rpm2cpio "$2/$f2" |./gzdio >cpio2.gz
        s1=$(du -b cpio1.gz |awk '{print int($1/1024+0.5)}')
        s2=$(du -b cpio2.gz |awk '{print int($1/1024+0.5)}')
        [ "$s1" -gt 32 ] && [ "$s2" -gt 32 ] || continue
        rpm2cpio "$2/$f2" |./lzdio >cpio2.lz-2
        rpm2cpio "$2/$f2" |./lzma -5 >cpio2.lz-5
        s3=$(du -b cpio2.lz-2 |awk '{print int($1/1024+0.5)}')
        s4=$(du -b cpio2.lz-5 |awk '{print int($1/1024+0.5)}')
        echo $f2$'\t'$s2$'\t'$s3$'\t'$s4
done <pkg12

Здесь программа lzdio.c такая же, как gzdio.c, только в ней вместо
"w9.gzdio" написано "w2.lzdio".
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : lzma.txt.gz
Тип     : application/x-gzip
Размер  : 19681 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20080601/9a4d038c/attachment-0004.bin>
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?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/9a4d038c/attachment-0005.bin>


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