ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Alexey Tourbin <at@altlinux.ru>
To: ALT Linux Team development discussions <devel@lists.altlinux.org>
Subject: [devel] contents_index trie
Date: Tue, 28 Oct 2008 09:27:28 +0300
Message-ID: <20081028062728.GA8739@altlinux.org> (raw)
In-Reply-To: <87zlkrz0cx.fsf@frontier.dottedmag.net>

[-- Attachment #1: Type: text/plain, Size: 1318 bytes --]

On Mon, Oct 27, 2008 at 12:18:22AM +0600, Mikhail Gusarov wrote:
>  IV> Если распилить один только большой пакет, например wesnoth, то его
>  IV> 150M wesnoth-data покроют 82M как бык овцу.
> 
> Тут нужно считать, как часто обновлется репозиторий, и как часто -
> wesnoth-data и другие noarch-субпакеты.
> 
> Впрочем, из тех 82M очень много - не по существу. Информация из
> contents_index легко ужимается до нескольких мегабайт (trie вместо
> списка файлов).

Trie лишь оптимизирует *доступ* к contents_index (переходы типа
многоуровнего хеша); а с точки зрения размера выгоднее contents_index
просто сжать.

А также trie оптимизирует доступ лишь *логически*.  А на самом деле
доступ к contents_index будет проходить через диск.  Дисковый доступ
имеет сильно выраженную постраничную специфику (4K блоки).  Значит,
нужна нетривиальная логика сериализации trie, которая бы оптимизировала
локальность ссылок при переходе вглубь trie на физических страницах.
Грамотная запись trie на диск -- по сложности это уже задача на уровне
libdb4.

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

Если кто не в теме и кому интересно,
http://en.wikipedia.org/wiki/Trie
http://git.altlinux.org/people/at/packages/path-trie.git

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

  parent reply	other threads:[~2008-10-28  6:27 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-10-26 10:16 [devel] kill Sisyphus noarch? Igor Vlasenko
2008-10-26 10:20 ` Mikhail Gusarov
2008-10-26 12:02   ` Alexey Tourbin
2008-10-26 12:04     ` Mikhail Gusarov
2008-10-26 12:14       ` Alexey Tourbin
2008-10-26 13:22       ` Sergey Bolshakov
2008-10-26 13:24         ` Mikhail Gusarov
2008-10-26 12:27   ` Alexey Tourbin
2008-10-26 12:29     ` Mikhail Gusarov
2008-10-26 12:41       ` Alexey Tourbin
2008-10-26 12:46         ` Mikhail Gusarov
2008-10-26 12:52           ` Alexey Tourbin
2008-10-26 12:58             ` Mikhail Gusarov
2008-10-26 18:15             ` Igor Vlasenko
2008-10-26 18:18               ` Mikhail Gusarov
2008-10-26 18:43                 ` Igor Vlasenko
2008-10-28  6:27                 ` Alexey Tourbin [this message]
2008-10-28  6:31                   ` [devel] contents_index trie Mikhail Gusarov
2008-10-28  7:04                     ` Alexey Tourbin
2008-10-28  7:19                       ` Mikhail Gusarov
2008-10-28  7:50                         ` Alexey Tourbin
2008-10-28  7:51                           ` Alexey Tourbin
2008-10-28  8:09                           ` Mikhail Gusarov
2008-11-01 15:42                           ` Денис Смирнов
2008-11-01 18:01                             ` Alexey Tourbin
2008-11-01 18:07                               ` Alexey Tourbin
2008-11-01 20:45                                 ` Alexey Tourbin
2008-11-01 21:19                                   ` Alexey Tourbin
2008-10-26 18:41               ` [devel] kill Sisyphus noarch? Alexey Tourbin
2008-10-26 18:30             ` Pavlov Konstantin
2008-10-26 18:44               ` Mikhail Gusarov
2008-10-26 19:16                 ` Andrey Rahmatullin
2008-10-26 18:08           ` [devel] noarch/base Dmitry V. Levin
2008-10-26 14:30         ` [devel] kill Sisyphus noarch? Anton Farygin
2008-10-26 14:42       ` Kirill A. Shutemov
2008-10-26 14:56         ` Mikhail Gusarov
2008-10-26 17:27           ` Kirill A. Shutemov
2008-10-26 17:28             ` Mikhail Gusarov
2008-10-26 17:34               ` Kirill A. Shutemov
2008-10-26 17:34                 ` Led
2008-10-26 17:35                   ` Mikhail Gusarov
2008-10-26 17:38                     ` Kirill A. Shutemov
2008-10-26 17:38                       ` Mikhail Gusarov
2008-10-26 19:14                         ` Kirill A. Shutemov
2008-10-26 19:14                           ` Mikhail Gusarov
2008-10-26 18:26                       ` Pavlov Konstantin
2008-10-26 17:42                     ` Led
2008-10-26 17:45                       ` Mikhail Gusarov
2008-10-26 13:20   ` Sergey Bolshakov
2008-10-26 13:26     ` Mikhail Gusarov
2008-10-26 14:33     ` Anton Farygin
2008-10-26 10:26 ` Igor Vlasenko
2008-10-26 12:08   ` 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=20081028062728.GA8739@altlinux.org \
    --to=at@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