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: Re: [devel] Python 2.6: task #16528
Date: Fri, 27 Nov 2009 05:54:34 +0300
Message-ID: <20091127025434.GC9723@altlinux.org> (raw)
In-Reply-To: <20091126090245.GX10659@altlinux.org>

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

On Thu, Nov 26, 2009 at 12:02:45PM +0300, Alexey Tourbin wrote:
> On Wed, Nov 25, 2009 at 02:12:13PM +0700, REAL wrote:
> > Поскольку сборка более 600 пакетов - дело 
> > очень долгое (на сборку не самых 
> > монстроидальных 200 пакетов 
> > потребовалось около 12 часов), возможно, я 
> > попытаюсь в этой задаче всё собирать до 
> > упора, таким образом, надеюсь, именно она 
> > и станет рабочей, из которой в сизиф 
> > пролезет python 2.6.
> > 
> > Чтобы дело пошло быстрее (сбои ещё будут, 
> > т.к. там не все пакеты), большая просьба 
> > пакеты из задачи пока не обновлять, чтобы 
> > потом не пришлось начинать сборку заново.
> > 
> > http://git.altlinux.org/tasks/16528/task/log.2
> 
> У нас очень долго выполняется фаза "no need to rebuild", в среднем
> не менее минуты на пакет.  Всё это конечно не планировалось что людишки
> будут заливать пакеты целыми сотнями.  Но есть то что есть -- мы так
> никуда не уедем.

> Я попробовал запрофилировать почему столько много времени уходит чтобы
> просто понять что пакет не надо пересобирать от прошлого запуска; там
> короче говоря причины разные, то есть одного узкого места нету.

Главный фактор почему медленно работала проверка "no need to rebuild" --
это сама схема проверки: собирается src.rpm пакет и в чрут
устанавливаются все пакеты BuildReqires.  Если содержимое чрута после
этого совпадает, то пакет можно не пересобирать.

Эта схема теперь модифицирована следующим образом: когда имеется src.rpm
пакет от предыдущего запуска, можно замкнуть его список BuildRequires и
получить список пакетов, которые будут установлены.  То есть можно
узнать содержимое чрута без фактической установки пакетов.

Есть ещё два фактора, которые заметно влияют на скорость проверки "no
need to rebuild".

1) hsh --init на репозитарии с полным списком файлов.
Научно установлено, что 'hsh --init' на обычно репозитарии занимает 13
секунд, а на репозитарии с полным списком файлов -- 20 секунд.

2) После сборки каждого очередного пакета хешеру нужно перегенерировать
локальный репозитарий; в том числе прочитать все пакеты и вычислить их
md5 суммы (потому что md5-кеш пакетов на нодах скорее всего не работает).

Я думаю что в хешере можно вообще не генерировать репозитарий и целиком
отказаться от genbasedir, а вместо этого в sources.list использовать
метод доступа "rpm-dir" вместо "rpm" (repo).  Тогда при изменении
каталога rpm-dir apt будет считывать информацию прямо из хедеров
пакетов, которые там лежат.  А это лушче, перечитывать пакеты полностью
(для вычисления md5-сумм).

> Поэтому я сделал превентивный хак для girar-builder'а:
> http://git.altlinux.org/people/at/packages/girar-builder.git?a=commitdiff;h=586f99e1
> Он немного ослабляет требования базовой модели, но не очень сильно.
> Тестовая пересборка пакетов, если мы до неё доживём, будет идти по
> такой же схеме.

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

      parent reply	other threads:[~2009-11-27  2:54 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-25  7:12 REAL
2009-11-25  7:37 ` Alexey Tourbin
2009-11-25  8:00   ` REAL
2009-11-25  7:54     ` Alexey Tourbin
2009-11-25  8:16       ` REAL
2009-11-25  8:03         ` Alexey Tourbin
2009-11-25  8:22           ` REAL
2009-11-25  8:44             ` Alexey Tourbin
2009-11-25  9:33               ` Andrey Rahmatullin
2009-11-25 19:50                 ` Alexey Tourbin
2009-11-25 20:04                   ` Igor Vlasenko
2009-11-25 21:37                     ` Igor Vlasenko
2009-11-25 22:02                       ` Alexey Tourbin
2009-11-26  9:04                         ` Igor Vlasenko
2009-11-26  9:18                           ` Alexey Tourbin
2009-11-26  9:20                             ` Igor Vlasenko
2009-11-26 12:49               ` Alexey Morsov
2009-11-25  8:23       ` Денис Смирнов
2009-11-25  8:29         ` Alexey Tourbin
2009-11-28 23:01   ` Michael Shigorin
2009-11-29  0:51     ` Alexey Tourbin
2009-11-29  1:14       ` Led
2009-11-29  1:32         ` Alexey Tourbin
2009-11-29  1:38           ` Led
2009-11-29  1:52             ` Alexey Tourbin
2009-11-30  4:14       ` REAL
2009-11-30  4:26         ` Alexey Tourbin
2009-11-30  4:50           ` REAL
2009-11-30  4:50             ` [devel] трансфёр гарантий Alexey Tourbin
2009-11-30  5:13               ` REAL
2009-11-30  5:33                 ` Alexey Tourbin
2009-11-30  6:04                   ` REAL
2009-11-30  5:25               ` Sergey Alembekov
2009-11-25  8:36 ` [devel] Python 2.6: task #16528 Sergey Y. Afonin
2009-11-25  9:02   ` REAL
2009-11-26  9:02 ` Alexey Tourbin
2009-11-26 17:00   ` Alexey Tourbin
2009-11-27  9:12     ` Alexey Tourbin
2009-11-27  9:38       ` REAL
2009-11-27 11:35         ` Alexey Tourbin
2009-11-27 12:25         ` Alexey Tourbin
2009-11-27  2:54   ` Alexey Tourbin [this message]

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=20091127025434.GC9723@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