[devel] contents_index trie

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Вт Окт 28 09:27:28 MSK 2008


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
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 197 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20081028/a213a3f9/attachment-0001.bin>


Подробная информация о списке рассылки Devel