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

Денис Смирнов mithraen на freesource.info
Сб Дек 24 13:21:49 MSK 2011


On Sat, Dec 24, 2011 at 03:17:03AM +0400, Dmitry V. Levin wrote:

DVL> apt масштабируется пропорционально размеру индексов.  Так что, строго
DVL> говоря, тормознее он становится не столько вследствие импорта из федоры,
DVL> сколько от роста пакетной базы.

Да.

DVL> Есть два независимых метода борьбы с этим торможением:
DVL> - Сделать apt существенно быстрее, чтобы эффект торможения не так сильно
DVL> раздражал; мы думаем над этим.

Самая глобальная проблема в том, что у rpm и apt свои базы, и apt перед
рядом операций приходится создавать кэш, вычисляющийся на основе этих двух
баз (список установленых пакетов с их метданными, и список пакетов котрые
можно установить с их метаданными).

Проблема №1 -- ряд операций (таких как apt-cache) выполняют ненужно
большой объем работ перед запуском.

Проблема №2 -- операции вида apt-get install/remove (одни из самых частых)
требуют вычисления этого кэша в любом случае. Возможно ли вычислять его
инкрементально?

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

1. Игры.
2. Дополнительные репозитории с массовыми импортами пакетов какого-то
типа:
- если собирать весь CPAN, то можно переносить в main/contrib только то,
  на что у кого-то есть buildrequires;
- если собирать массово содержимое hackage -- аналогично, в основном его
  содержимое будет нужно для сборки с самим собой;
- те же массовые импороты библиотек из fedora;
3. В принципе можно вообще попытаться отделить в отдельную компоненту
"листья", которе никому не нужны для сборки. Их много.
4. Таки пакеты необходимые только для сборки -- *devel*. Это не ускорит
сборочницу, но ускорит работу apt у большинства "обычных пользователей".

-- 
С уважением, Денис

http://mithraen.ru/
----------------------------------------------------------------------------

----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 198 байтов
Описание: Digital signature
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20111224/e1f26907/attachment.bin>


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