[devel] comprehensive rsyncability test

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Вс Июн 1 01:32:39 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 для этих двух групп пакетов.

Что касается rsyncable deflate vs common deflate, то ответ простой:
коэффициент сжатия в среднем не изменяется.

Я прицепил таблицу deflate.txt:

файл-2   gzip-9-размер   rsyncable-gzdio-размер
------   -------------   ----------------------

$ cut -f2 deflate.txt |sum 
2434968
$ cut -f3 deflate.txt |sum
2437193
$ perl -le 'print 2437193/2434968*100'
100.091376970868
$ 

Разница в сжатии менее одной десятой процента, что при 1360 файлах
можно в значительной степени списать на статистическую погрешность.

Сжатие дело тонкое!


#!/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 "$2/$f2" |gzip -9 >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
        echo $f2$'\t'$s1$'\t'$s2
done <pkg12
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : deflate.txt.gz
Тип     : application/x-gzip
Размер  : 17087 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20080601/cb8b37e7/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/cb8b37e7/attachment-0005.bin>


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