Как синхронизировать файл 100Гб ?

1 234
Z
На сайте с 06.09.2012
Offline
129
#21

В старом протоколе было MD4, его можно выбрать через --protocol 29 , будут считать быстрее одинаковые блоки (MD4 быстрее MD5). Небольшая разница будет, но не думаю, что существенная.

(удалено некорретное)

Черный список врунов и обманщиков: ua-hosting.company, riaas.ru, takewyn.ru, yahoster/cadedic, Andreylab
P
На сайте с 08.03.2007
Offline
250
#22
zzzit:
Там написано, что оба и sender и recipient используют только Adler32 пока блоки разные, а MD5 только sender если блоки одинаковые.
В старом протоколе было MD4, его можно выбрать через --protocol 29 , sender будет считать быстрее одинаковые блоки (MD4 быстрее MD5). Небольшая разница будет, но не думаю, что существенная.

The recipient splits its copy of the file into chunks and computes two checksums for each chunk: the MD5 hash, and a weaker but easier to compute 'rolling checksum'.[18] It sends these checksums to the sender.

то есть всё же вычисляет обе суммы.

Z
На сайте с 06.09.2012
Offline
129
#23

Короче, там мутно написано, Adler32 первым делом считается на обоих сторонах и только если обе Adler32 суммы совпали, то обе стороны считают MD5 для блока.

Хотя если я ошибаюсь и там и правда зачем-то обе чексуммы считаются, то алгоритм глупый конечно :)

Кстати, MD5 тоже 500 МБ/с при 100% загрузке ядра ;)

P
На сайте с 08.03.2007
Offline
250
#24
zzzit:
Короче, там мутно написано, Adler32 первым делом считается на обоих сторонах и только если обе Adler32 суммы совпали, то обе стороны считают MD5 для блока.
Хотя если я ошибаюсь и там и правда зачем-то обе чексуммы считаются, то алгоритм глупый конечно :)

Кстати, MD5 тоже 500 МБ/с при 100% загрузке ядра ;)

Я рекомендую прочитать исходное описание, Википедия всё постаралась упростить, но сильно запутала.

Z
На сайте с 06.09.2012
Offline
129
#25

Уже посмотрел, там глупый алгоритм: одна сторона считает обе суммы сразу, другая одну и только если совпала, то и вторую.

 713                 sum1 = get_checksum1(map, n1); // <-- эта Adler32

714 get_checksum2(map, n1, sum2); // <-- эта md4/md5

Значит у одной стороны на чексуммы уходит, как на Adler32 и md4/md5, в зависимости от протокола, а у другой, как на Adler32 и если совпало то и на md4/md5. Все равно это очень быстро, 80% производительности md4/md5 где-то.

N
На сайте с 06.05.2007
Offline
419
#26
zzzit:
Уже посмотрел, там глупый алгоритм: одна сторона считает обе суммы сразу, другая одну и только если совпала, то и вторую.

Отличный алгоритм. Просто работа с этими блоками не распараллелена.

А как надо ? На источнике по два раза что-ли файл перечитывать ?

Очевидно, если файл достаточно большого объема, то и простой алгоритм будет заметно долго работать.

Кнопка вызова админа ()
Z
На сайте с 06.09.2012
Offline
129
#27
netwind:
Просто работа с этими блоками не распараллелена.

openssl speed md5

80% от этого производительность работы с блоками, мало?

Тормоза из-за другого.

P
На сайте с 08.03.2007
Offline
250
#28
zzzit:
openssl speed md5
80% от этого производительность работы с блоками, мало?
Тормоза из-за другого.

Да мне всё равно из-за чего тормоза. Мне интересен способ быстрой синхронизации , с старой версией на приёмном конце.

Z
На сайте с 06.09.2012
Offline
129
#29

Быстро будет с DRBD, там вообще все блоки не нужно сканировать, а только измененные.

kxk
На сайте с 30.01.2005
Offline
990
kxk
#30

zzzit, А если DRBD развалиться то что делать?

У нас был такой случай, если бы не инкрементальный бекап в ДропБоксе потеряли бы файлов на 10к$.

Ваш DEVOPS
1 234

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий