From: "Alexander Myltsev" <avm@altlinux.ru> To: "ALT Linux Team development discussions" <devel@lists.altlinux.org> Subject: Re: [devel] rsync_roll Date: Mon, 26 May 2008 00:11:46 +0400 Message-ID: <ffae7d540805251311n208e869nfbf2f70924f7e1b2@mail.gmail.com> (raw) In-Reply-To: <20080525183039.GH7996@solemn.turbinal> 2008/5/25 Alexey Tourbin <at@altlinux.ru>: >> http://ozlabs.org/~rusty/gzip.rsync.patch2, на который ссылаются как >> Джефф, так и Эгмонт. > Что делает этот патч? Почему "это работает"? > > Когда сумма принимает определённое значение (а именно, когда > sum % RSYNC_WIN == 0) то в конце окна принимается решение > "сборосить блок" и заново инициализировать процедуру сжатия. > > Это означает, что в этой точке как бы начинается "новый файл", > который gzip будет жать отдельно; если в двух разных входных > потоках в точке обнуления суммы несжатые данные идут одинаковые, > то и сжатые данные пойдут одинаковые. Ну да, это и требуется. Благодаря этому точечное изменение в несжатых данных влияет только на конечное число блоков. Можно попробовать рассматривать функцию сжатия блока как чёрный ящик. Тогда очевидно, что для rsyncability важно правильным (стабильным) образом разбивать входные данные на блоки. Предлагаемый патч задаёт локально стабильный способ разбиения на блоки. > а размер окна 4K. Поскольку любое значение суммы по модулю 4096 > можно считать равновероятным, то, выходит, что вместо блока 32K > gzip будет делать блоки в среднем по 4K. Или нет? 4K исходных данных съедается сразу после обнуления суммы, см. комментарий "not enough elements" в rsyncable.c. То есть 4K — это минимальный размер блока. Только после этого мы начинаем искать нуль, а находим его ещё примерно через 4K. Вот вам и экспериментальные 8K.
next prev parent reply other threads:[~2008-05-25 20:11 UTC|newest] Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top 2008-05-24 14:21 [devel] rpm: LZMA payload compression Alexey Tourbin 2008-05-24 14:20 ` Andrey Rahmatullin 2008-05-24 14:32 ` Alexey Tourbin 2008-05-25 0:01 ` Dmitry V. Levin 2008-05-24 14:51 ` Alexander Bokovoy 2008-05-24 15:35 ` Alexey Tourbin 2008-05-24 15:45 ` Alexey Tourbin 2008-05-24 15:53 ` Alexander Bokovoy 2008-05-24 15:58 ` Andrey Rahmatullin 2008-05-24 16:09 ` Alexander Bokovoy 2008-05-24 16:02 ` Alexander Bokovoy 2008-05-24 16:37 ` Alexey Tourbin 2008-05-24 17:55 ` Alexander Bokovoy 2008-05-24 19:16 ` Alexey Tourbin 2008-05-25 6:55 ` [devel] [JT] " Alexey Tourbin 2008-05-25 7:10 ` Alexander Bokovoy 2008-05-25 7:24 ` Alexey Tourbin 2008-05-25 7:27 ` Alexander Bokovoy 2008-05-25 0:11 ` [devel] rsync mirrors Dmitry V. Levin 2008-05-25 6:03 ` Alexey Tourbin 2008-05-25 7:54 ` [devel] gzip --rsyncable Alexey Tourbin 2008-05-25 8:08 ` Alexander Bokovoy 2008-05-25 8:18 ` Alexey Tourbin 2008-05-25 8:31 ` Alexander Bokovoy 2008-05-25 8:48 ` Alexander Bokovoy 2008-05-25 11:35 ` Alexey Tourbin 2008-05-25 18:30 ` [devel] rsync_roll Alexey Tourbin 2008-05-25 18:38 ` Alexander Bokovoy 2008-05-25 20:11 ` Alexander Myltsev [this message] 2008-05-26 7:15 ` Alexey Tourbin 2008-05-26 8:38 ` Alexey Tourbin 2008-05-25 8:09 ` [devel] gzip --rsyncable Led 2008-05-25 8:27 ` Alexey Tourbin
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=ffae7d540805251311n208e869nfbf2f70924f7e1b2@mail.gmail.com \ --to=avm@altlinux.ru \ --cc=devel@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Team development discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \ devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru public-inbox-index devel Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git