[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