* [devel] rpm: rsyncable deflate vs LZMA @ 2008-05-29 12:38 Alexey Tourbin 2008-05-29 13:28 ` Alexander Bokovoy 2008-05-30 8:21 ` Anton V. Boyarshinov 0 siblings, 2 replies; 37+ messages in thread From: Alexey Tourbin @ 2008-05-29 12:38 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 3322 bytes --] Я уже собирался включить LZMA сжатие для rpm payload (после некоторого внутреннего тестирования), но Александр Боковой напомнил нам про rsyncable патч для deflate сжатия (для gzip и zlib). Поскольку deflate и LZMA алгоритмы по сути похожи (сжатие в два этапа -- замена подстрок по "словарю", точнее, поиск совпадающих подстрок в пределах скользящего окна; и частотное кодирование "букв", когда наиболее часто встречающиеся буквы кодируются ниболее короткими битовыми последовательностями), то для LZMA в принципе возможен такой формат "контейнера", в котором идут rsyncable сжатые блоки (как в zlib). К сожалению, я убедился, что LZMA в текущем виде не может быть использован (или ограниченно модифицирован) таким образом, чтобы получить rsyncable сжатые данные. "Старый" формат контейнера LZMA_Alone вообще не предусматривание разбиение на блоки. Спецификация нового формата носит alpha status, разработчики пишут: "Do not trust the files created by the alpha versions, unless you can uncompress the files with the stable 4.32.x." Кроме того, семантика "разбиения на блоки" в новом LZMA формате отличается от семантики разбиения на блоки в deflate. В общем, если использовать новый формат LZMA контейнера с целью добиться rsyncablity, то это плохо повлияет на сжатие. Поэтому есть два варианта, как быть дальше. 1) Включить LZMA_Alone сжатие, забив на rsyncability. 2) Вернуться к идее rsyncable deflate. Экономия на трафике будет и в том, и в другом случае, но она будет проявляться по-разному. Подробности про формат контейнера. Чтобы эффективно реализовать rsyncability для алгоритмов типа deflate/LZMA, должны быть выполнены следующие условия: 1) небольшой размер окна; 2) продолжение/сохранение прежнего словаря при записи сжатого блока (то есть "восстановление" первого этапа кодирования при начале следующего сжатого блока); 3) повторная инициализация частотного кодирования "букв" (то есть "ресет" второго этапа кодирования при начале следующего сжатого блока). Семантика deflate блоков как раз состоит в том, что при переходе к новому блоку словарь остаётся прежним (возможны backreferences в предыдущие сжатые блоки в пределах окна), а частотное кодирование инициализируется заново (в начале каждого сжатого блока идёт Huffman tree). Восстановление на первом этапе несколько ухудшает rsyncability, то есть сжатые блоки могут различаться из-за несовпадающих backreferences; но за счёт небольшого размера окна (см. требование №1) после "провафленных" таким образом двух-трёх блоков backreferences будут совпадать, и все последующие блоки будут rsyncable. Зато восстановление на первом этапе очень хорошо влияет на коэффициент сжатия. А вот ресет частотного кодирования на втором этапе просто жизненно неоходим для rsyncability, т.к. частотное кодирование определяет бинарное представление сжатых данных (если частотная модель хоть чуть-чуть отличается, то получается полностью несовпадающее побитовое представление). Более частый ресет частотного кодирования (из-за rsyncable patch) отрицательно влияет на коэффициент сжатия, но это влияние огранчивается где-то 1%. В новом формате контейнера LZMA при начале нового блока ресетится как словарь, так и частотное кодирование букв. Из-за ресета словаря коэффициент сжатия заметно падает. [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] rpm: rsyncable deflate vs LZMA 2008-05-29 12:38 [devel] rpm: rsyncable deflate vs LZMA Alexey Tourbin @ 2008-05-29 13:28 ` Alexander Bokovoy 2008-05-29 16:50 ` Alexey Tourbin 2008-05-29 18:37 ` Dmitry V. Levin 2008-05-30 8:21 ` Anton V. Boyarshinov 1 sibling, 2 replies; 37+ messages in thread From: Alexander Bokovoy @ 2008-05-29 13:28 UTC (permalink / raw) To: ALT Linux Team development discussions 29 мая 2008 г. 16:38 пользователь Alexey Tourbin <at@altlinux.ru> написал: > А вот ресет частотного кодирования на втором этапе просто жизненно > неоходим для rsyncability, т.к. частотное кодирование определяет > бинарное представление сжатых данных (если частотная модель хоть > чуть-чуть отличается, то получается полностью несовпадающее побитовое > представление). > > Более частый ресет частотного кодирования (из-за rsyncable patch) > отрицательно влияет на коэффициент сжатия, но это влияние огранчивается > где-то 1%. > > В новом формате контейнера LZMA при начале нового блока ресетится > как словарь, так и частотное кодирование букв. Из-за ресета словаря > коэффициент сжатия заметно падает. Я в этом деле лицо скорее заинтересованное, но я бы выбрал rsyncable против lzma, потому что это дает следующие преимущества: 1. Позволяет более полно использовать состояние зеркала на стороне пользователя. 2. Повзоляет для популярного транспорта http включить механизм zsync, что дополнительно дает возможность разгрузить сервера (основная работа по вычислению разницы в блоках перекладывается на клиента, который и так обычно недогружен) То есть, с rsyncable мы выигрываем в долгосрочной перспективе, снижая нагрузку на зеркала. Я бы для пущей эффективности закрыл бы ftp-транспорт. -- / Alexander Bokovoy ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] rpm: rsyncable deflate vs LZMA 2008-05-29 13:28 ` Alexander Bokovoy @ 2008-05-29 16:50 ` Alexey Tourbin 2008-05-29 18:37 ` Dmitry V. Levin 1 sibling, 0 replies; 37+ messages in thread From: Alexey Tourbin @ 2008-05-29 16:50 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 965 bytes --] On Thu, May 29, 2008 at 05:28:39PM +0400, Alexander Bokovoy wrote: > Я в этом деле лицо скорее заинтересованное, но я бы выбрал rsyncable > против lzma, потому что это дает следующие преимущества: > 1. Позволяет более полно использовать состояние зеркала на стороне пользователя. > 2. Повзоляет для популярного транспорта http включить механизм zsync, > что дополнительно дает возможность разгрузить сервера (основная работа > по вычислению разницы в блоках перекладывается на клиента, который и > так обычно недогружен) > > То есть, с rsyncable мы выигрываем в долгосрочной перспективе, снижая > нагрузку на зеркала. Я бы для пущей эффективности закрыл бы > ftp-транспорт. Okay, я сделал предварительную реализацию rsyncable gzdio (вопреки тому, что думает джей-би-джей, для этого не требуется потрошить zlib; достаточно в точках синхронизации вызывать gzflush). Кто сможет проверить мой код? Дело стрёмное, в этот раз на SuSE надежды нету. [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] rpm: rsyncable deflate vs LZMA 2008-05-29 13:28 ` Alexander Bokovoy 2008-05-29 16:50 ` Alexey Tourbin @ 2008-05-29 18:37 ` Dmitry V. Levin 2008-05-29 19:50 ` Alexey Tourbin 2008-05-29 21:31 ` Alexey Tourbin 1 sibling, 2 replies; 37+ messages in thread From: Dmitry V. Levin @ 2008-05-29 18:37 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 416 bytes --] On Thu, May 29, 2008 at 05:28:39PM +0400, Alexander Bokovoy wrote: [...] > Я в этом деле лицо скорее заинтересованное, но я бы выбрал rsyncable > против lzma, потому что это дает следующие преимущества: > 1. Позволяет более полно использовать состояние зеркала на стороне пользователя. Несмотря на неизменность большинства файлов, и постоянные переименования большинства из оставшихся файлов? -- ldv [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] rpm: rsyncable deflate vs LZMA 2008-05-29 18:37 ` Dmitry V. Levin @ 2008-05-29 19:50 ` Alexey Tourbin 2008-05-29 20:13 ` Alexey Tourbin 2008-05-29 20:16 ` Alexander Bokovoy 2008-05-29 21:31 ` Alexey Tourbin 1 sibling, 2 replies; 37+ messages in thread From: Alexey Tourbin @ 2008-05-29 19:50 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 849 bytes --] On Thu, May 29, 2008 at 10:37:44PM +0400, Dmitry V. Levin wrote: > On Thu, May 29, 2008 at 05:28:39PM +0400, Alexander Bokovoy wrote: > [...] > > Я в этом деле лицо скорее заинтересованное, но я бы выбрал rsyncable > > против lzma, потому что это дает следующие преимущества: > > 1. Позволяет более полно использовать состояние зеркала на стороне пользователя. > > Несмотря на неизменность большинства файлов, и постоянные переименования > большинства из оставшихся файлов? В следующих случаях: rsync -y dir1/file dir2/ rsync -y dir1/ dir2/ при отсутствии dir2/file (destination file с таким же названием) rsync будет искать dir2/other_file с названием, "наиболее похожим на file". То есть, с опцией -y, по идее, переименование rpm пакетов вследствие увеличения релиза должно отслеживаться. Правда, я не смотрел в код rsync. [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] rpm: rsyncable deflate vs LZMA 2008-05-29 19:50 ` Alexey Tourbin @ 2008-05-29 20:13 ` Alexey Tourbin 2008-05-29 20:28 ` Led 2008-05-29 20:16 ` Alexander Bokovoy 1 sibling, 1 reply; 37+ messages in thread From: Alexey Tourbin @ 2008-05-29 20:13 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 1070 bytes --] On Thu, May 29, 2008 at 11:50:00PM +0400, Alexey Tourbin wrote: > On Thu, May 29, 2008 at 10:37:44PM +0400, Dmitry V. Levin wrote: > > On Thu, May 29, 2008 at 05:28:39PM +0400, Alexander Bokovoy wrote: > > [...] > > > Я в этом деле лицо скорее заинтересованное, но я бы выбрал rsyncable > > > против lzma, потому что это дает следующие преимущества: > > > 1. Позволяет более полно использовать состояние зеркала на стороне пользователя. > > > > Несмотря на неизменность большинства файлов, и постоянные переименования > > большинства из оставшихся файлов? > > В следующих случаях: > rsync -y dir1/file dir2/ > rsync -y dir1/ dir2/ > > при отсутствии dir2/file (destination file с таким же названием) > rsync будет искать dir2/other_file с названием, "наиболее похожим > на file". То есть, с опцией -y, по идее, переименование rpm пакетов > вследствие увеличения релиза должно отслеживаться. Правда, я не > смотрел в код rsync. В мане также написано, что надо использовать опцию --delete-after (а не --delete, которая равна --delete-before). [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] rpm: rsyncable deflate vs LZMA 2008-05-29 20:13 ` Alexey Tourbin @ 2008-05-29 20:28 ` Led 2008-05-29 20:42 ` Alexey Tourbin 0 siblings, 1 reply; 37+ messages in thread From: Led @ 2008-05-29 20:28 UTC (permalink / raw) To: ALT Linux Team development discussions Thursday, 29 May 2008 23:13:44 Alexey Tourbin написав: > On Thu, May 29, 2008 at 11:50:00PM +0400, Alexey Tourbin wrote: > > On Thu, May 29, 2008 at 10:37:44PM +0400, Dmitry V. Levin wrote: > > > On Thu, May 29, 2008 at 05:28:39PM +0400, Alexander Bokovoy wrote: > > > [...] > > > > > > > Я в этом деле лицо скорее заинтересованное, но я бы выбрал rsyncable > > > > против lzma, потому что это дает следующие преимущества: > > > > 1. Позволяет более полно использовать состояние зеркала на стороне > > > > пользователя. > > > > > > Несмотря на неизменность большинства файлов, и постоянные > > > переименования большинства из оставшихся файлов? > > > > В следующих случаях: > > rsync -y dir1/file dir2/ > > rsync -y dir1/ dir2/ > > > > при отсутствии dir2/file (destination file с таким же названием) > > rsync будет искать dir2/other_file с названием, "наиболее похожим > > на file". То есть, с опцией -y, по идее, переименование rpm пакетов > > вследствие увеличения релиза должно отслеживаться. Правда, я не > > смотрел в код rsync. > > В мане также написано, что надо использовать опцию --delete-after (а > не --delete, которая равна --delete-before). Может проще будет пропатчить rsync на предмет поддержки *.rpm (чтоб *.rpm файлы сравнивались по названиям файлов за вычетом %version-%release.%arch)? -- Led ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] rpm: rsyncable deflate vs LZMA 2008-05-29 20:28 ` Led @ 2008-05-29 20:42 ` Alexey Tourbin 0 siblings, 0 replies; 37+ messages in thread From: Alexey Tourbin @ 2008-05-29 20:42 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 822 bytes --] On Thu, May 29, 2008 at 11:28:39PM +0300, Led wrote: > > В мане также написано, что надо использовать опцию --delete-after (а > > не --delete, которая равна --delete-before). > > Может проще будет пропатчить rsync на предмет поддержки *.rpm (чтоб *.rpm > файлы сравнивались по названиям файлов за вычетом %version-%release.%arch)? Метрика Левенштейна не самая глупая вещь. Она будет лажаться только в специфических случаях, когда релиз меняется очень сильно. Например, имеем файлы: libfoo1-alt1.rpm libfoo2-alt0.cvs20080101.rpm Надо просинхронизировать новый файл libfoo2-alt1.rpm Тогда алгоритм будет синхронизировать libfoo1-alt1.rpm libfoo2-alt1.rpm тогда как по смыслу надо синхронизировать libfoo2-*. Но это относительно редкие случаи. А также не следует вносить snapshot в релиз. :) [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] rpm: rsyncable deflate vs LZMA 2008-05-29 19:50 ` Alexey Tourbin 2008-05-29 20:13 ` Alexey Tourbin @ 2008-05-29 20:16 ` Alexander Bokovoy 1 sibling, 0 replies; 37+ messages in thread From: Alexander Bokovoy @ 2008-05-29 20:16 UTC (permalink / raw) To: ALT Linux Team development discussions 29 мая 2008 г. 23:50 пользователь Alexey Tourbin <at@altlinux.ru> написал: > On Thu, May 29, 2008 at 10:37:44PM +0400, Dmitry V. Levin wrote: >> On Thu, May 29, 2008 at 05:28:39PM +0400, Alexander Bokovoy wrote: >> [...] >> > Я в этом деле лицо скорее заинтересованное, но я бы выбрал rsyncable >> > против lzma, потому что это дает следующие преимущества: >> > 1. Позволяет более полно использовать состояние зеркала на стороне пользователя. >> >> Несмотря на неизменность большинства файлов, и постоянные переименования >> большинства из оставшихся файлов? > > В следующих случаях: > rsync -y dir1/file dir2/ > rsync -y dir1/ dir2/ > > при отсутствии dir2/file (destination file с таким же названием) > rsync будет искать dir2/other_file с названием, "наиболее похожим > на file". То есть, с опцией -y, по идее, переименование rpm пакетов > вследствие увеличения релиза должно отслеживаться. Правда, я не > смотрел в код rsync. /* This is an implementation of the Levenshtein distance algorithm. It * was implemented to avoid needing a two-dimensional matrix (to save * memory). It was also tweaked to try to factor in the ASCII distance * between changed characters as a minor distance quantity. The normal * Levenshtein units of distance (each signifying a single change between * the two strings) are defined as a "UNIT". */ Так что это немного модифицированный алгоритм Левенштейна. -- / Alexander Bokovoy ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] rpm: rsyncable deflate vs LZMA 2008-05-29 18:37 ` Dmitry V. Levin 2008-05-29 19:50 ` Alexey Tourbin @ 2008-05-29 21:31 ` Alexey Tourbin 2008-05-29 21:56 ` Dmitry V. Levin 1 sibling, 1 reply; 37+ messages in thread From: Alexey Tourbin @ 2008-05-29 21:31 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 1610 bytes --] On Thu, May 29, 2008 at 10:37:44PM +0400, Dmitry V. Levin wrote: > On Thu, May 29, 2008 at 05:28:39PM +0400, Alexander Bokovoy wrote: > [...] > > Я в этом деле лицо скорее заинтересованное, но я бы выбрал rsyncable > > против lzma, потому что это дает следующие преимущества: > > 1. Позволяет более полно использовать состояние зеркала на стороне пользователя. > > Несмотря на неизменность большинства файлов, и постоянные переименования > большинства из оставшихся файлов? Также следует понимать, что rsyncable deflate работает только для достаточно больших (порядка 32K) полностью совпадающих кусков. На практике это значит, что в *.rpm пакетах из синхронизации исключаются маленькие файлы. Например, для пакета man-pages rsyncable оптимизация почти ничего не даёт (speedup 1.09 после _простой_ повторной пересборки). Это связано с тем, что в cpio хедере (перед содержимым файла) есть mtime, и он получается всё время разный. А различие в mtime "надолго" сбивает синхронизацию (то есть весь "маленький" файл выпадает). У меня есть идея. Для выбора точек синхронизации (gzflush) можно использовать не только "слепой" rsync hint, но и cpio hint -- как только мы видим cpio magic "070707", мы знаем, что через несколько байтов будет mtime и потом пойдёт имя и содержимое файла. То есть sync можно делать в месте окончания очередного cpio header. Правда, я не знаю, даст это что-нибудь в случае с маленькими файлами или нет. Это может ничего не дать из-за того, что первые совпавшие блоки в сжатом виде всё равно могут отличаться (из-за backreferences в предыдущий блок). [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] rpm: rsyncable deflate vs LZMA 2008-05-29 21:31 ` Alexey Tourbin @ 2008-05-29 21:56 ` Dmitry V. Levin 2008-05-29 23:23 ` Alexey Tourbin 2008-05-30 9:27 ` [devel] rpm: rsyncable deflate vs LZMA Alexey Tourbin 0 siblings, 2 replies; 37+ messages in thread From: Dmitry V. Levin @ 2008-05-29 21:56 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 764 bytes --] On Fri, May 30, 2008 at 01:31:14AM +0400, Alexey Tourbin wrote: [...] > У меня есть идея. Для выбора точек синхронизации (gzflush) можно > использовать не только "слепой" rsync hint, но и cpio hint -- как > только мы видим cpio magic "070707", мы знаем, что через несколько > байтов будет mtime и потом пойдёт имя и содержимое файла. То есть > sync можно делать в месте окончания очередного cpio header. Это заметно снизит степень сжатия, когда в архиве много маленьких файлов? > Правда, я не знаю, даст это что-нибудь в случае с маленькими файлами > или нет. Это может ничего не дать из-за того, что первые совпавшие > блоки в сжатом виде всё равно могут отличаться (из-за backreferences > в предыдущий блок). Могут или будут? -- ldv [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] rpm: rsyncable deflate vs LZMA 2008-05-29 21:56 ` Dmitry V. Levin @ 2008-05-29 23:23 ` Alexey Tourbin 2008-05-30 21:31 ` Alexey Tourbin 2008-05-30 9:27 ` [devel] rpm: rsyncable deflate vs LZMA Alexey Tourbin 1 sibling, 1 reply; 37+ messages in thread From: Alexey Tourbin @ 2008-05-29 23:23 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 3223 bytes --] On Fri, May 30, 2008 at 01:56:10AM +0400, Dmitry V. Levin wrote: > On Fri, May 30, 2008 at 01:31:14AM +0400, Alexey Tourbin wrote: > [...] > > У меня есть идея. Для выбора точек синхронизации (gzflush) можно > > использовать не только "слепой" rsync hint, но и cpio hint -- как > > только мы видим cpio magic "070707", мы знаем, что через несколько > > байтов будет mtime и потом пойдёт имя и содержимое файла. То есть > > sync можно делать в месте окончания очередного cpio header. > > Это заметно снизит степень сжатия, когда в архиве много маленьких файлов? Этим можно управлять, чтобы сознательно пропускать только "совсем маленькие" файлы. > > Правда, я не знаю, даст это что-нибудь в случае с маленькими файлами > > или нет. Это может ничего не дать из-за того, что первые совпавшие > > блоки в сжатом виде всё равно могут отличаться (из-за backreferences > > в предыдущий блок). > > Могут или будут? Если сделать как показано ниже, то для пакета man-pages (после повторной пересборки) 'speedup 1.09' возрастает до 'speedup 1.19'. То есть эффект от синхронизации сразу после cpio хедера есть, он заметный, но не настолько большой, чтобы всё искупать. --- rpmio.c- 2008-05-29 22:27:55 +0400 +++ rpmio.c 2008-05-30 03:08:32 +0400 @@ -2148,6 +2148,9 @@ struct rsync_state { typedef struct rpmGZFILE_s { gzFile *gz; struct rsync_state rs; + uint32_t cs; /* cpio state */ + uint32_t nb; /* bytes pending for sync */ + } rpmGZFILE; static /*@null@*/ FD_t gzdOpen(const char * path, const char * fmode) @@ -2274,6 +2277,56 @@ bool rsync_next(struct rsync_state *s, u return false; } +/* from ../lib/cpio.h */ +#define CPIO_NEWC_MAGIC "070701" +#define PHYS_HDR_SIZE 110 + +static inline +bool sync_hint(rpmGZFILE *rpmgz, unsigned char c) +{ + /* sync only if at least nb_min bytes pending */ + static const uint32_t nb_min = PHYS_HDR_SIZE + 1024; + rpmgz->nb++; + if (rpmgz->cs >= sizeof(CPIO_NEWC_MAGIC) - 1) { + /* cpio major progress, reset rsync */ + rpmgz->rs.n = rpmgz->rs.sum = 0; + rpmgz->cs++; + if (rpmgz->cs >= PHYS_HDR_SIZE) { + /* sync after cpio header */ + rpmgz->cs = 0; + if (rpmgz->nb >= nb_min) { + rpmgz->nb = 0; + fprintf(stderr, "SYNC cpio\n"); + return true; + } + else { + fprintf(stderr, "SKIP cpio\n"); + return false; + } + } + } + else if (CPIO_NEWC_MAGIC[rpmgz->cs] == c) { + /* cpio minor progress */ + rpmgz->cs++; + } + else { + rpmgz->cs = 0; + } + if (rsync_next(&rpmgz->rs, c)) { + if (rpmgz->nb >= nb_min) { + rpmgz->nb = 0; + rpmgz->cs = 0; + fprintf(stderr, "SYNC rsync\n"); + return true; + } + else { + fprintf(stderr, "SKIP rsync\n"); + return false; + } + } + return false; +} + static ssize_t rsyncable_gzwrite(rpmGZFILE *rpmgz, const unsigned char *const buf, size_t len) { @@ -2283,7 +2336,7 @@ rsyncable_gzwrite(rpmGZFILE *rpmgz, cons size_t i; for (i = 0; i < len; i++) { - if (rsync_next(&rpmgz->rs, buf[i])) { + if (sync_hint(rpmgz, buf[i])) { size_t n = i + 1 - (begin - buf); rc = gzwrite(rpmgz->gz, begin, n); if (rc < 0) [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] rpm: rsyncable deflate vs LZMA 2008-05-29 23:23 ` Alexey Tourbin @ 2008-05-30 21:31 ` Alexey Tourbin 2008-05-31 10:09 ` [devel] rsyncability test: openoffice Alexey Tourbin 0 siblings, 1 reply; 37+ messages in thread From: Alexey Tourbin @ 2008-05-30 21:31 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 3042 bytes --] On Fri, May 30, 2008 at 03:23:31AM +0400, Alexey Tourbin wrote: > On Fri, May 30, 2008 at 01:56:10AM +0400, Dmitry V. Levin wrote: > > On Fri, May 30, 2008 at 01:31:14AM +0400, Alexey Tourbin wrote: > > [...] > > > У меня есть идея. Для выбора точек синхронизации (gzflush) можно > > > использовать не только "слепой" rsync hint, но и cpio hint -- как > > > только мы видим cpio magic "070707", мы знаем, что через несколько > > > байтов будет mtime и потом пойдёт имя и содержимое файла. То есть > > > sync можно делать в месте окончания очередного cpio header. > > > > Это заметно снизит степень сжатия, когда в архиве много маленьких файлов? > > Этим можно управлять, чтобы сознательно пропускать только "совсем > маленькие" файлы. > > > > Правда, я не знаю, даст это что-нибудь в случае с маленькими файлами > > > или нет. Это может ничего не дать из-за того, что первые совпавшие > > > блоки в сжатом виде всё равно могут отличаться (из-за backreferences > > > в предыдущий блок). > > > > Могут или будут? > > Если сделать как показано ниже, то для пакета man-pages (после повторной > пересборки) 'speedup 1.09' возрастает до 'speedup 1.19'. То есть эффект > от синхронизации сразу после cpio хедера есть, он заметный, но не > настолько большой, чтобы всё искупать. Я реализовал более аккуратный cpio хинтинг для rsyncable_gzwrite(). Также появились первые результаты 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), а другая половина кусков не совпадает; так что по размеру придётся скачивать примерно половину фаерфокса. Вот код для тестирования. gzdio.c: #include <stdio.h> #include <assert.h> #include <rpmio.h> int main() { FD_t Fd = Fdopen(fdDup(fileno(stdout)), "w9.gzdio"); assert(Fd); char buf[BUFSIZ]; size_t n, m; while ((n = fread(buf, 1, sizeof(buf), stdin))) { m = Fwrite(buf, 1, n, Fd); assert(m == n); } Fclose(Fd); return 0; } (gzdio.c надо линковать с новым librpmio, в котором сидит rsyncable_gzwrite). 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 rsync-shell: shift && exec "$@" [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 37+ messages in thread
* [devel] rsyncability test: openoffice 2008-05-30 21:31 ` Alexey Tourbin @ 2008-05-31 10:09 ` Alexey Tourbin 0 siblings, 0 replies; 37+ messages in thread From: Alexey Tourbin @ 2008-05-31 10:09 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 2777 bytes --] 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 [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] rpm: rsyncable deflate vs LZMA 2008-05-29 21:56 ` Dmitry V. Levin 2008-05-29 23:23 ` Alexey Tourbin @ 2008-05-30 9:27 ` Alexey Tourbin 1 sibling, 0 replies; 37+ messages in thread From: Alexey Tourbin @ 2008-05-30 9:27 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1.1: Type: text/plain, Size: 1500 bytes --] On Fri, May 30, 2008 at 01:56:10AM +0400, Dmitry V. Levin wrote: > On Fri, May 30, 2008 at 01:31:14AM +0400, Alexey Tourbin wrote: > [...] > > У меня есть идея. Для выбора точек синхронизации (gzflush) можно > > использовать не только "слепой" rsync hint, но и cpio hint -- как > > только мы видим cpio magic "070707", мы знаем, что через несколько > > байтов будет mtime и потом пойдёт имя и содержимое файла. То есть > > sync можно делать в месте окончания очередного cpio header. > > Это заметно снизит степень сжатия, когда в архиве много маленьких файлов? Можно оценить деградацию сжатия от уменьшения deflate блока. $ rpm2cpio /ALT/Sisyphus/files/x86_64/RPMS/glibc-core-2.5.1-alt5.x86_64.rpm |gzip -9 |wc -c 1488757 $ gcc -DBUFSIZE=$((8*1024)) gztest.c -lz $ rpm2cpio /ALT/Sisyphus/files/x86_64/RPMS/glibc-core-2.5.1-alt5.x86_64.rpm |./a.out |wc -c 1488040 $ gcc -DBUFSIZE=$((4*1024)) gztest.c -lz $ rpm2cpio /ALT/Sisyphus/files/x86_64/RPMS/glibc-core-2.5.1-alt5.x86_64.rpm |./a.out |wc -c 1506758 $ gcc -DBUFSIZE=$((2*1024)) gztest.c -lz $ rpm2cpio /ALT/Sisyphus/files/x86_64/RPMS/glibc-core-2.5.1-alt5.x86_64.rpm |./a.out |wc -c 1544170 $ gcc -DBUFSIZE=$((1*1024)) gztest.c -lz $ rpm2cpio /ALT/Sisyphus/files/x86_64/RPMS/glibc-core-2.5.1-alt5.x86_64.rpm |./a.out |wc -c 1598928 $ Здесь deflate блок создаётся на каждые 8K, 4K, 2K, 1K входного потока. Потери составляют 0%, 1.2%, 3.7%, 7.4%. На данных, которые сжимаются лучше, потери могут быть выше. [-- Attachment #1.2: gztest.c --] [-- Type: text/plain, Size: 362 bytes --] #include <zlib.h> #include <stdio.h> #include <assert.h> #ifndef BUFSIZE #define BUFSIZE BUFSIZ #endif int main() { char buf[BUFSIZE]; gzFile gz = gzdopen(fileno(stdout), "w9"); assert(gz); int n; while ((n = fread(buf, 1, sizeof(buf), stdin))) { int m = gzwrite(gz, buf, n); assert(n == m); gzflush(gz, Z_SYNC_FLUSH); } gzclose(gz); return 0; } [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] rpm: rsyncable deflate vs LZMA 2008-05-29 12:38 [devel] rpm: rsyncable deflate vs LZMA Alexey Tourbin 2008-05-29 13:28 ` Alexander Bokovoy @ 2008-05-30 8:21 ` Anton V. Boyarshinov 2008-05-30 11:28 ` Alexey Tourbin 1 sibling, 1 reply; 37+ messages in thread From: Anton V. Boyarshinov @ 2008-05-30 8:21 UTC (permalink / raw) To: devel > 1) Включить LZMA_Alone сжатие, забив на rsyncability. > 2) Вернуться к идее rsyncable deflate. Мне, как человеку, собирающему болванки, на которые вечно ничего не помещается, кажется более привлекательным вариантом LZMA_Alone. Антон ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] rpm: rsyncable deflate vs LZMA 2008-05-30 8:21 ` Anton V. Boyarshinov @ 2008-05-30 11:28 ` Alexey Tourbin 2008-05-30 10:44 ` Anton Farygin 2008-05-30 11:47 ` Anton V. Boyarshinov 0 siblings, 2 replies; 37+ messages in thread From: Alexey Tourbin @ 2008-05-30 11:28 UTC (permalink / raw) To: devel [-- Attachment #1: Type: text/plain, Size: 1449 bytes --] On Fri, May 30, 2008 at 12:21:00PM +0400, Anton V. Boyarshinov wrote: > > 1) Включить LZMA_Alone сжатие, забив на rsyncability. > > 2) Вернуться к идее rsyncable deflate. > Мне, как человеку, собирающему болванки, на которые вечно ничего не помещается, кажется более привлекательным вариантом LZMA_Alone. Я помню, как собирали болванку Junior 2.2 (1 CD), и, значит, в последний день выясняли, войдёт туда WindowMaker или нет... :) http://lists.altlinux.org/pipermail/devel/2003-February/010742.html http://lists.altlinux.org/pipermail/devel/2003-February/010744.html С появлением DVD как основного media-носителя дышать стало проще. А ситуация с интернетом стала глобально выправляться только в последнее время; так что теперь экономия на трафике rpm пакетов это чаще вопрос комфорта, а не денег. В общем, увы, общая актуальность вопроса сжатия несколько снизилась. Возвращаясь к теме, дилемма как раз состоит в том, что для разовой передачи пакетов лучше подходит LZMA, а для последующей синхронизации пакетов, если в пакетах небольшие изменения, лучше подходит rsyncable deflate. И если LZMA даёт эффект сразу, то от rsyncable deflate эффект появляется только со второго или третьего раза. Но, в общем, хорошо иметь выбор, и этот выбор становится всё менее гипотетическим. Можно будет сделать какую-нибудь статистику, перекрывает ли экономия от rsyncability экономию от LZMA или нет. Пока интрига сохраняется. :) [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] rpm: rsyncable deflate vs LZMA 2008-05-30 11:28 ` Alexey Tourbin @ 2008-05-30 10:44 ` Anton Farygin 2008-05-30 12:07 ` Alexander Bokovoy 2008-05-31 10:25 ` Alexey Tourbin 2008-05-30 11:47 ` Anton V. Boyarshinov 1 sibling, 2 replies; 37+ messages in thread From: Anton Farygin @ 2008-05-30 10:44 UTC (permalink / raw) To: public-devel-XbBxUvOt3X3HsNE/8sQLYR2eb7JE58TQ Alexey Tourbin пишет: > On Fri, May 30, 2008 at 12:21:00PM +0400, Anton V. Boyarshinov wrote: >>> 1) Включить LZMA_Alone сжатие, забив на rsyncability. >>> 2) Вернуться к идее rsyncable deflate. >> Мне, как человеку, собирающему болванки, на которые вечно ничего не помещается, кажется более привлекательным вариантом LZMA_Alone. > > Я помню, как собирали болванку Junior 2.2 (1 CD), и, значит, > в последний день выясняли, войдёт туда WindowMaker или нет... :) > http://lists.altlinux.org/pipermail/devel/2003-February/010742.html > http://lists.altlinux.org/pipermail/devel/2003-February/010744.html > > С появлением DVD как основного media-носителя дышать стало проще. А > ситуация с интернетом стала глобально выправляться только в последнее > время; так что теперь экономия на трафике rpm пакетов это чаще вопрос > комфорта, а не денег. В общем, увы, общая актуальность вопроса сжатия > несколько снизилась. > > Возвращаясь к теме, дилемма как раз состоит в том, что для разовой > передачи пакетов лучше подходит LZMA, а для последующей синхронизации > пакетов, если в пакетах небольшие изменения, лучше подходит rsyncable > deflate. И если LZMA даёт эффект сразу, то от rsyncable deflate эффект > появляется только со второго или третьего раза. > > Но, в общем, хорошо иметь выбор, и этот выбор становится всё менее > гипотетическим. Можно будет сделать какую-нибудь статистику, > перекрывает ли экономия от rsyncability экономию от LZMA или нет. > Пока интрига сохраняется. :) DVD конечно, ситуацию намного облегчило.. но, к сожалению, всё ещё востребованы дистрибутивы на CD. Идеальный вариант - LZMA + rsync. ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] rpm: rsyncable deflate vs LZMA 2008-05-30 10:44 ` Anton Farygin @ 2008-05-30 12:07 ` Alexander Bokovoy 2008-05-30 15:03 ` Anton V. Boyarshinov 2008-06-01 12:06 ` Anton Farygin 2008-05-31 10:25 ` Alexey Tourbin 1 sibling, 2 replies; 37+ messages in thread From: Alexander Bokovoy @ 2008-05-30 12:07 UTC (permalink / raw) To: ALT Linux Team development discussions 30 мая 2008 г. 14:44 пользователь Anton Farygin <rider@altlinux.com> написал: >> Но, в общем, хорошо иметь выбор, и этот выбор становится всё менее >> гипотетическим. Можно будет сделать какую-нибудь статистику, >> перекрывает ли экономия от rsyncability экономию от LZMA или нет. >> Пока интрига сохраняется. :) > > DVD конечно, ситуацию намного облегчило.. но, к сожалению, всё ещё > востребованы дистрибутивы на CD. > > Идеальный вариант - LZMA + rsync. Пока по оценке Алексея в текущем контейнере LZMA это сделать не получается. Все же, я бы предложил более внимательно смотреть на формирование содержимого lite на пакетном уровне. Думаю, что там есть еще резервы. -- / Alexander Bokovoy ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] rpm: rsyncable deflate vs LZMA 2008-05-30 12:07 ` Alexander Bokovoy @ 2008-05-30 15:03 ` Anton V. Boyarshinov 2008-05-30 15:09 ` Dmitry V. Levin 2008-06-01 12:06 ` Anton Farygin 1 sibling, 1 reply; 37+ messages in thread From: Anton V. Boyarshinov @ 2008-05-30 15:03 UTC (permalink / raw) To: devel > Пока по оценке Алексея в текущем контейнере LZMA это сделать не > получается. Все же, я бы предложил более внимательно смотреть на > формирование содержимого lite на пакетном уровне. Думаю, что там есть > еще резервы. openoffice не выкинешь и даже gcc :( ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] rpm: rsyncable deflate vs LZMA 2008-05-30 15:03 ` Anton V. Boyarshinov @ 2008-05-30 15:09 ` Dmitry V. Levin 2008-05-30 15:17 ` Anton V. Boyarshinov 0 siblings, 1 reply; 37+ messages in thread From: Dmitry V. Levin @ 2008-05-30 15:09 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 437 bytes --] On Fri, May 30, 2008 at 07:03:38PM +0400, Anton V. Boyarshinov wrote: > > Пока по оценке Алексея в текущем контейнере LZMA это сделать не > > получается. Все же, я бы предложил более внимательно смотреть на > > формирование содержимого lite на пакетном уровне. Думаю, что там есть > > еще резервы. > openoffice не выкинешь > и даже gcc :( Если для lite не нужен gcc, значит, существует способ от него избавиться. -- ldv [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] rpm: rsyncable deflate vs LZMA 2008-05-30 15:09 ` Dmitry V. Levin @ 2008-05-30 15:17 ` Anton V. Boyarshinov 2008-05-30 15:25 ` Mikhail Gusarov 0 siblings, 1 reply; 37+ messages in thread From: Anton V. Boyarshinov @ 2008-05-30 15:17 UTC (permalink / raw) To: devel > > и даже gcc :( > Если для lite не нужен gcc, значит, существует способ от него избавиться. пока только вместе с Xorg :( ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] rpm: rsyncable deflate vs LZMA 2008-05-30 15:17 ` Anton V. Boyarshinov @ 2008-05-30 15:25 ` Mikhail Gusarov 2008-05-30 15:32 ` Anton V. Boyarshinov 0 siblings, 1 reply; 37+ messages in thread From: Mikhail Gusarov @ 2008-05-30 15:25 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 394 bytes --] Twas brillig at 19:17:13 30.05.2008 UTC+04 when Anton V. Boyarshinov did gyre and gimble: >> Если для lite не нужен gcc, значит, существует способ от него избавиться. AVB> пока только вместе с Xorg :( А какая там зависимость? -- JID: dottedmag@altlinux.org / dottedmag@jabber.dottedmag.net [-- Attachment #2: Type: application/pgp-signature, Size: 196 bytes --] ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] rpm: rsyncable deflate vs LZMA 2008-05-30 15:25 ` Mikhail Gusarov @ 2008-05-30 15:32 ` Anton V. Boyarshinov 2008-05-30 15:37 ` Mikhail Gusarov 0 siblings, 1 reply; 37+ messages in thread From: Anton V. Boyarshinov @ 2008-05-30 15:32 UTC (permalink / raw) To: devel > >> Если для lite не нужен gcc, значит, существует способ от него избавиться. > AVB> пока только вместе с Xorg :( > > А какая там зависимость? http://lists.altlinux.org/pipermail/devel/2008-May/074683.html ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] rpm: rsyncable deflate vs LZMA 2008-05-30 15:32 ` Anton V. Boyarshinov @ 2008-05-30 15:37 ` Mikhail Gusarov 0 siblings, 0 replies; 37+ messages in thread From: Mikhail Gusarov @ 2008-05-30 15:37 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 624 bytes --] Twas brillig at 19:32:54 30.05.2008 UTC+04 when Anton V. Boyarshinov did gyre and gimble: >> >> Если для lite не нужен gcc, значит, существует способ от него избавиться. >> AVB> пока только вместе с Xorg :( >> А какая там зависимость? AVB> http://lists.altlinux.org/pipermail/devel/2008-May/074683.html Ну, так я и думал. Значит, как Дима и писал, существует способ от него избавиться. -- JID: dottedmag@altlinux.org / dottedmag@jabber.dottedmag.net [-- Attachment #2: Type: application/pgp-signature, Size: 196 bytes --] ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] rpm: rsyncable deflate vs LZMA 2008-05-30 12:07 ` Alexander Bokovoy 2008-05-30 15:03 ` Anton V. Boyarshinov @ 2008-06-01 12:06 ` Anton Farygin 1 sibling, 0 replies; 37+ messages in thread From: Anton Farygin @ 2008-06-01 12:06 UTC (permalink / raw) To: ALT Linux Team development discussions Alexander Bokovoy пишет: > 30 мая 2008 г. 14:44 пользователь Anton Farygin <rider@altlinux.com> написал: >>> Но, в общем, хорошо иметь выбор, и этот выбор становится всё менее >>> гипотетическим. Можно будет сделать какую-нибудь статистику, >>> перекрывает ли экономия от rsyncability экономию от LZMA или нет ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] rpm: rsyncable deflate vs LZMA 2008-05-30 10:44 ` Anton Farygin 2008-05-30 12:07 ` Alexander Bokovoy @ 2008-05-31 10:25 ` Alexey Tourbin 2008-05-31 16:59 ` Kirill A. Shutemov 1 sibling, 1 reply; 37+ messages in thread From: Alexey Tourbin @ 2008-05-31 10:25 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 747 bytes --] On Fri, May 30, 2008 at 02:44:39PM +0400, Anton Farygin wrote: > Идеальный вариант - LZMA + rsync. Для rsynability нужен маленьий размер словаря. У deflate размер словаря 32K, а у 'lzma -2' -- 1M. Представь себе, что ты за раз съел десерт, первое блюдо и второе блюдо, запив всё это компотом; в выходных данных всё премешается, и уже нельзя определить, где что было. А если заглатывать понемножку, долго переваривать и какать понемножку, то можно установить связь между входными и выходными данными. А это и требуется для rsyncability. Вот таблица для сравнения. Алгоритм Размер словаря Сжатый размер опенофиса -------- -------------- ----------------------- deflate 32K 114M lzma -1 64K 100M lzma -2 1M 92M [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] rpm: rsyncable deflate vs LZMA 2008-05-31 10:25 ` Alexey Tourbin @ 2008-05-31 16:59 ` Kirill A. Shutemov 2008-06-01 0:33 ` Alexey Tourbin 0 siblings, 1 reply; 37+ messages in thread From: Kirill A. Shutemov @ 2008-05-31 16:59 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 498 bytes --] On Sat, May 31, 2008 at 02:25:23PM +0400, Alexey Tourbin wrote: > А если заглатывать понемножку, долго переваривать и какать понемножку, > то можно установить связь между входными и выходными данными. А это > и требуется для rsyncability. В фортунки! -- Regards, Kirill A. Shutemov + Belarus, Minsk + ALT Linux Team, http://www.altlinux.com/ [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] rpm: rsyncable deflate vs LZMA 2008-05-31 16:59 ` Kirill A. Shutemov @ 2008-06-01 0:33 ` Alexey Tourbin 2008-06-01 13:07 ` Mikhail Gusarov 0 siblings, 1 reply; 37+ messages in thread From: Alexey Tourbin @ 2008-06-01 0:33 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 567 bytes --] On Sat, May 31, 2008 at 07:59:30PM +0300, Kirill A. Shutemov wrote: > On Sat, May 31, 2008 at 02:25:23PM +0400, Alexey Tourbin wrote: > > А если заглатывать понемножку, долго переваривать и какать понемножку, > > то можно установить связь между входными и выходными данными. А это > > и требуется для rsyncability. > > В фортунки! $ fortune -a -m rabelaisian fortune: /usr/share/games/fortune/off: No fortune files in directory. fortune:/usr/share/games/fortune/off not a fortune file or directory zsh: segmentation fault fortune -a -m rabelaisian $ [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] rpm: rsyncable deflate vs LZMA 2008-06-01 0:33 ` Alexey Tourbin @ 2008-06-01 13:07 ` Mikhail Gusarov 2008-06-01 18:08 ` [devel] [JT] fortunezilla :) Michael Shigorin 2008-06-01 19:05 ` [devel] rpm: rsyncable deflate vs LZMA Alexey I. Froloff 0 siblings, 2 replies; 37+ messages in thread From: Mikhail Gusarov @ 2008-06-01 13:07 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 458 bytes --] Twas brillig at 04:33:31 01.06.2008 UTC+04 when Alexey Tourbin did gyre and gimble: >> В фортунки! AT> $ fortune -a -m rabelaisian AT> fortune: /usr/share/games/fortune/off: No fortune files in directory. AT> fortune:/usr/share/games/fortune/off not a fortune file or directory AT> zsh: segmentation fault fortune -a -m rabelaisian AT> $ В багзиллу! -- JID: dottedmag@altlinux.org / dottedmag@jabber.dottedmag.net [-- Attachment #2: Type: application/pgp-signature, Size: 196 bytes --] ^ permalink raw reply [flat|nested] 37+ messages in thread
* [devel] [JT] fortunezilla :) 2008-06-01 13:07 ` Mikhail Gusarov @ 2008-06-01 18:08 ` Michael Shigorin 2008-06-02 1:44 ` Sergey Balbeko 2008-06-01 19:05 ` [devel] rpm: rsyncable deflate vs LZMA Alexey I. Froloff 1 sibling, 1 reply; 37+ messages in thread From: Michael Shigorin @ 2008-06-01 18:08 UTC (permalink / raw) To: ALT Linux Team development discussions On Sun, Jun 01, 2008 at 08:07:43PM +0700, Mikhail Gusarov wrote: > >> В фортунки! > AT> $ fortune -a -m rabelaisian > AT> fortune: /usr/share/games/fortune/off: No fortune files in directory. > AT> fortune:/usr/share/games/fortune/off not a fortune file or directory > AT> zsh: segmentation fault fortune -a -m rabelaisian > AT> $ > В багзиллу! В фортунки всё вместе! -- ---- WBSegmentation fault (core dumped) ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] [JT] fortunezilla :) 2008-06-01 18:08 ` [devel] [JT] fortunezilla :) Michael Shigorin @ 2008-06-02 1:44 ` Sergey Balbeko 2008-06-02 5:06 ` Mikhail Gusarov 2008-06-02 8:21 ` Michael Shigorin 0 siblings, 2 replies; 37+ messages in thread From: Sergey Balbeko @ 2008-06-02 1:44 UTC (permalink / raw) To: ALT Linux Team development discussions А может нам действительно какой-то фортунозавр завести;) ? С регулярным копи-пастом в него, постоянным голосованием и чисткой-разбором раз в месяц;) On 6/1/08, Michael Shigorin <mike@osdn.org.ua> wrote: > On Sun, Jun 01, 2008 at 08:07:43PM +0700, Mikhail Gusarov wrote: >> >> В фортунки! >> AT> $ fortune -a -m rabelaisian >> AT> fortune: /usr/share/games/fortune/off: No fortune files in directory. >> AT> fortune:/usr/share/games/fortune/off not a fortune file or directory >> AT> zsh: segmentation fault fortune -a -m rabelaisian >> AT> $ >> В багзиллу! > > В фортунки всё вместе! > > -- > ---- WBSegmentation fault (core dumped) > _______________________________________________ > Devel mailing list > Devel@lists.altlinux.org > https://lists.altlinux.org/mailman/listinfo/devel -- Sent from Gmail for mobile | mobile.google.com wbr, Sergey Balbeko <balbeko[at]altlinux.org>. -- Ukraine, Lugansk region, Stakhanov. Donbass State Technical University. Institute of Automation and Electrotechnical Systems. Computer Systems Department. -- ICQ == "244-711" JID == "m0s.bizzy[at]gmail.com" ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] [JT] fortunezilla :) 2008-06-02 1:44 ` Sergey Balbeko @ 2008-06-02 5:06 ` Mikhail Gusarov 2008-06-02 7:54 ` Alexey I. Froloff 2008-06-02 8:21 ` Michael Shigorin 1 sibling, 1 reply; 37+ messages in thread From: Mikhail Gusarov @ 2008-06-02 5:06 UTC (permalink / raw) To: ALT Linux Team development discussions [-- Attachment #1: Type: text/plain, Size: 296 bytes --] Twas brillig at 04:44:45 02.06.2008 UTC+03 when Sergey Balbeko did gyre and gimble: SB> А может нам действительно какой-то фортунозавр завести;) Его wrar@ зовут :) -- JID: dottedmag@altlinux.org / dottedmag@jabber.dottedmag.net [-- Attachment #2: Type: application/pgp-signature, Size: 196 bytes --] ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] [JT] fortunezilla :) 2008-06-02 5:06 ` Mikhail Gusarov @ 2008-06-02 7:54 ` Alexey I. Froloff 0 siblings, 0 replies; 37+ messages in thread From: Alexey I. Froloff @ 2008-06-02 7:54 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 190 bytes --] * Mikhail Gusarov <dottedmag@> [080602 11:39]: > SB> А может нам действительно какой-то фортунозавр завести;) > Его wrar@ зовут :) Только не wrar@, а vvk@. -- Regards, Sir Raorn. [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] [JT] fortunezilla :) 2008-06-02 1:44 ` Sergey Balbeko 2008-06-02 5:06 ` Mikhail Gusarov @ 2008-06-02 8:21 ` Michael Shigorin 1 sibling, 0 replies; 37+ messages in thread From: Michael Shigorin @ 2008-06-02 8:21 UTC (permalink / raw) To: ALT Linux Team development discussions On Mon, Jun 02, 2008 at 04:44:45AM +0300, Sergey Balbeko wrote: > А может нам действительно какой-то фортунозавр завести;) ? > С регулярным копи-пастом в него, постоянным голосованием и > чисткой-разбором раз в месяц;) 1) apt-cache search fortunes-ALT 2) можешь спросить у raorn@ его скрипты и помочь vvk@ ;) > >> >> В фортунки! > >> В багзиллу! > > В фортунки всё вместе! -- ---- WBR, Michael Shigorin <mike@altlinux.ru> ------ Linux.Kiev http://www.linux.kiev.ua/ ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] rpm: rsyncable deflate vs LZMA 2008-06-01 13:07 ` Mikhail Gusarov 2008-06-01 18:08 ` [devel] [JT] fortunezilla :) Michael Shigorin @ 2008-06-01 19:05 ` Alexey I. Froloff 1 sibling, 0 replies; 37+ messages in thread From: Alexey I. Froloff @ 2008-06-01 19:05 UTC (permalink / raw) To: ALT Devel discussion list [-- Attachment #1: Type: text/plain, Size: 372 bytes --] * Mikhail Gusarov <dottedmag@> [080601 17:13]: > AT> $ fortune -a -m rabelaisian > AT> fortune: /usr/share/games/fortune/off: No fortune files in directory. > AT> fortune:/usr/share/games/fortune/off not a fortune file or directory > AT> zsh: segmentation fault fortune -a -m rabelaisian > AT> $ > В багзиллу! Типа уже пофиксил. -- Regards, Sir Raorn. [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 37+ messages in thread
* Re: [devel] rpm: rsyncable deflate vs LZMA 2008-05-30 11:28 ` Alexey Tourbin 2008-05-30 10:44 ` Anton Farygin @ 2008-05-30 11:47 ` Anton V. Boyarshinov 1 sibling, 0 replies; 37+ messages in thread From: Anton V. Boyarshinov @ 2008-05-30 11:47 UTC (permalink / raw) To: devel On Fri, 30 May 2008 15:28:39 +0400 Alexey Tourbin wrote: > Я помню, как собирали болванку Junior 2.2 (1 CD), и, значит, > С появлением DVD как основного media-носителя дышать стало проще. lite на 1 CD. Школьные Лёгкий и Юниор -- наборы из 2 CD. ^ permalink raw reply [flat|nested] 37+ messages in thread
end of thread, other threads:[~2008-06-02 8:21 UTC | newest] Thread overview: 37+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2008-05-29 12:38 [devel] rpm: rsyncable deflate vs LZMA Alexey Tourbin 2008-05-29 13:28 ` Alexander Bokovoy 2008-05-29 16:50 ` Alexey Tourbin 2008-05-29 18:37 ` Dmitry V. Levin 2008-05-29 19:50 ` Alexey Tourbin 2008-05-29 20:13 ` Alexey Tourbin 2008-05-29 20:28 ` Led 2008-05-29 20:42 ` Alexey Tourbin 2008-05-29 20:16 ` Alexander Bokovoy 2008-05-29 21:31 ` Alexey Tourbin 2008-05-29 21:56 ` Dmitry V. Levin 2008-05-29 23:23 ` Alexey Tourbin 2008-05-30 21:31 ` Alexey Tourbin 2008-05-31 10:09 ` [devel] rsyncability test: openoffice Alexey Tourbin 2008-05-30 9:27 ` [devel] rpm: rsyncable deflate vs LZMA Alexey Tourbin 2008-05-30 8:21 ` Anton V. Boyarshinov 2008-05-30 11:28 ` Alexey Tourbin 2008-05-30 10:44 ` Anton Farygin 2008-05-30 12:07 ` Alexander Bokovoy 2008-05-30 15:03 ` Anton V. Boyarshinov 2008-05-30 15:09 ` Dmitry V. Levin 2008-05-30 15:17 ` Anton V. Boyarshinov 2008-05-30 15:25 ` Mikhail Gusarov 2008-05-30 15:32 ` Anton V. Boyarshinov 2008-05-30 15:37 ` Mikhail Gusarov 2008-06-01 12:06 ` Anton Farygin 2008-05-31 10:25 ` Alexey Tourbin 2008-05-31 16:59 ` Kirill A. Shutemov 2008-06-01 0:33 ` Alexey Tourbin 2008-06-01 13:07 ` Mikhail Gusarov 2008-06-01 18:08 ` [devel] [JT] fortunezilla :) Michael Shigorin 2008-06-02 1:44 ` Sergey Balbeko 2008-06-02 5:06 ` Mikhail Gusarov 2008-06-02 7:54 ` Alexey I. Froloff 2008-06-02 8:21 ` Michael Shigorin 2008-06-01 19:05 ` [devel] rpm: rsyncable deflate vs LZMA Alexey I. Froloff 2008-05-30 11:47 ` Anton V. Boyarshinov
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