ALT Linux Team development discussions
 help / color / mirror / Atom feed
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.

  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