[devel] масштабируемость репозитория

Paul Wolneykien manowar на altlinux.org
Сб Дек 24 02:40:21 MSK 2011


24.12.2011 03:17, Dmitry V. Levin пишет:
> On Sat, Dec 24, 2011 at 01:15:15AM +0400, Денис Смирнов wrote:
>> В итоге единственное чем _мешает_ массовый импорт из федоры
>> пользователям/мантейнерам -- то что наш apt плохо масштабируется. И чем
>> больше пакетов, тем он тормознее.
> 
> apt масштабируется пропорционально размеру индексов.  Так что, строго
> говоря, тормознее он становится не столько вследствие импорта из федоры,
> сколько от роста пакетной базы.
> 
> Есть два независимых метода борьбы с этим торможением:
> - Сделать apt существенно быстрее, чтобы эффект торможения не так сильно
> раздражал; мы думаем над этим.
> - Разделить пакетную базы на части.  Критериев, по которым можно было бы
> делить, я полагаю, каждый может назвать несколько.  Самым безболезненным
> типом деления является выделение кластеров пакетов по критерию
> независимости: если есть некоторое подмножество пакетов, которое не
> используется для установки и сборки всех остальных пакетов, то его можно
> было бы выделить без риска потерять связность репозитория.

  Мне кажется, что сборка — это всё таки специфический случай: тот, кто
собирает пакеты уже готов идти на определённые затраты ресурсов и может
подключит все индексы. Может быть стоит искать кластеры только по
критерию локально-независимой устанавливаемости?

> Если такое
> подмножество достаточно велико, то и компенсация эффекта торможения тоже
> будет достаточно заметна.  Примером такого кластера, наверное, является
> множество debuginfo-пакетов.  Интересно, существуют ли какие-то другие
> крупные кластеры этого типа?

  Их можно целеустремлённо создавать. Если пакет тянет за собой огромный
кластер из-за какой-нибудь опциональной фичи, то можно и нужно делать
облегчённую версию этого пакета, который бы не тянул за собой лишнего.

  Возможно, выпуском таких облегчённых версий могут заниматься роботы.
Их задачей может стать «прогрызание» плотной ткани репозитория вокруг
тех областей, в которых намечаются кластеры. В результате надкусывания
пакета, образуются две его версии: тежёлая и лёгкая. Лёгкая идёт в один
кластер, а тяжёлая — в другой. Общее число пакетов станет больше, но
появятся кластеры.


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