[devel] rsyncability test: openoffice

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Сб Май 31 14:09:28 MSD 2008


On Sat, May 31, 2008 at 01:31:09AM +0400, Alexey Tourbin wrote:
> Также появились первые результаты rsyncability тестирования.
> А именно, мы тестируем rsyncability двух rpm пакетов, как если
> бы они были собраны уже с помощью rsyncable_gzwrite().
> 
> test-rsynability glibc-core-2.5.1-alt4.x86_64.rpm glibc-core-2.5.1-alt5.x86_64.rpm => "speedup is 15.99"
> test-rsynability glibc-core-2.3.5-alt7.x86_64.rpm glibc-core-2.5.1-alt5.x86_64.rpm => "speedup is 1.00"
> test-rsynability glibc-2.3.5-alt7.x86_64.rpm glibc-2.5.1-alt5.x86_64.rpm => "speedup is 1.28"
> test-rsynability firefox-2.0.0.13-alt1.x86_64.rpm firefox-2.0.0.14-alt1.x86_64.rpm => "speedup is 1.97"
> test-rsynability xorg-x11-server-1.4.0.90-alt17.x86_64.rpm xorg-x11-server-1.4.0.90-alt19.x86_64.rpm => "speedup is 1.48"
> 
> Например, "speedup is 1.97" для пакета firefox означает, что примерно
> половина кусков между этими двумя пакетами совпадают (если бы эти пакеты
> были собраны с rsyncable_gzwrite), а другая половина кусков не совпадает;
> так что по размеру придётся скачивать примерно половину фаерфокса.

Вот пример с опенофисом.

$ ./test-rsyncability /ALT/archive/Sisyphus/2008/01/01/files/x86_64/RPMS/openoffice.org-2.3.1.1-alt2.x86_64.rpm /ALT/Sisyphus/files/x86_64/RPMS/openoffice.org-2.4.0.12-alt1.x86_64.rpm
sent 776603 bytes  received 88086117 bytes  6582423.70 bytes/sec
total size is 114643659  speedup is 1.29
$ 

Тут я взял старый опенофис (по состоянию на первое число сего года)
и новый опенофис.  Размер нового опенофиса составляет 114M (беру по
первым цифрам), но при синхронизации со старым опенофисом придётся
скачать всего 88M.

Теперь посмотрим, что будет, если сжать новый опенофис с помощью LZMA.

$ rpm2cpio /ALT/Sisyphus/files/x86_64/RPMS/openoffice.org-2.4.0.12-alt1.x86_64.rpm |./lzma -2 |wc -c
92916334
$ 

Значит, если сжать опенофис с помощью LZMA, то придётся заново качать
92M вместо 114M; при этом синхронизация с помощью rsync ничего не даст.

Таким образом, эффект rsyncability в данном случае перекрывает эффект
LZMA (заново надо качать 92M, а при синхронизации -- 88M).  Правда,
не знаю, имеет ли смысл сравнивать эти эффекты напрямую.  Всё же эффект
rsyncability получается не настолько большой, как того хотелось бы (с
другой стороны, я синхронизирую достаточно разные *версии* опенофиса
2.3.x -> 2.4.x).

> test-rsynability:
> #!/bin/sh -efu
> f1="$1" f2="$2"
> shift 2
> rpm2cpio "$f1" |./gzdio >cpio1.gz
> rpm2cpio "$f2" |./gzdio >cpio2.gz
> rsync -v -e ./rsync-shell foo:cpio1.gz cpio2.gz

Этот скрипт лучше немного поправить:

test-rsyncability:
#!/bin/sh -efu
rpm2cpio "$1" |./gzdio >cpio1.gz
rpm2cpio "$2" |./gzdio >cpio2.gz
rsync --block-size 1024 -v -e ./rsync-shell foo:cpio2.gz cpio1.gz
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?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/20080531/db4039ba/attachment-0002.bin>


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