ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Michael Shigorin <mike@altlinux.org>
To: devel@lists.altlinux.org
Subject: Re: [devel] incoming/girar: проблема производительности.
Date: Thu, 27 Aug 2020 12:17:34 +0300
Message-ID: <20200827091734.GE11056@imap.altlinux.org> (raw)
In-Reply-To: <20200827022952.GA8129@dad.imath.kiev.ua>

On Thu, Aug 27, 2020 at 05:29:53AM +0300, Igor Vlasenko wrote:
> Года 3 назад я написал ряд писем в devel@, которые описывали
> алгоритмы параллелизации работы сборочницы, которые позволили
> бы существенно (на порядки) повысить ее производительность.
> Содержимое этих писем доступно на
> https://www.altlinux.org/Girar/Parallel .

Игорь, спасибо, что наконец рассказал эту историю!
Мы уж действительно переживали -- что с тобой,
а предположить было не из чего.

2 rider: спасибо и за твой рассказ; про архив думал упомянуть,
         хорошо, что сперва прочёл и второе письмо.

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

Немножко поправлю: Дима тогда возмутился тем, что на альт
начинают фактически оказывать прямое влияние политики выпуска
Fedora Project -- например, пересборка всего перед каждым
выпуском (осмысленность такого вообще и конкретно у нас --
отдельный интересный вопрос, который когда-то в ключе
(не)использования результатов тестовых пересборок поднимал
led@; но сейчас только сошлюсь на этот факт).

> В итоге серверную часть girar будет намного легче сопровождать,
> и можно будет думать о внедрении современных стандартов,
> вроде динамической балансировки нагрузки, менеджеров нод и других
> атрибутов современного кластера.

Собственно, там в любом случае надо менять подход от распихивания
задач сборочным узлам к растаскиванию задач сборочными узлами по
мере освобождения.

> Сейчас у меня, возможно, получится объяснить.

Ух! :)

> Но я после недели обсуждений с Дмитрием так и не смог пробить
> #36531 в апстрим hasher :(. В итоге форкнул свою копию hasher
> и свернул свою разработку прототипа локальной сборочницы. :(

Free software, каким мы его знаем и любим.

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

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

> Надо сказать, Дмитрий и раньше злоупотреблял своим положением
> администратора сборочницы, но когда речь шла об одиночных
> пакетах, то обычно была какая-то польза или хотя бы повод,
> а вреда от остановки task'а особого не было, одиночный пакет
> можно потом перезалить хоть через полгода, сделанная работа
> не пропадет зря.  В случае же с транзакциями все наоборот.

Как наверняка знают наиболее продвинутые из нас -- власть
развращает, а уж абсолютная и несменяемая -- это как раз
либо монархия, либо тирания.

  Предлагаю такое правило: если Дима решает помочь с задачей,
  то есть настолько точно знает лучше, как её сделать, что
  вмешивается без вопросов -- значит, Дима берёт на себя
  ответственность за её решение или отмену.

> Эмоции в корректной форме можно было выразить анекдотом:

Ну хотели-то явно как лучше.  Стоило всё-таки найти силы
если не Диме написать "не лезь, закоммитится -- обсудим",
или меня подёргать, чтобы донёс ту же мысль Диме цензурно.

> Через неделю улучшенные скрипты были готовы, можно было продолжать.
> Но вместо обновления получился цирк, так как Дмитрий
> продолжил мне помогать, а я слова не мог сказать, поскольку
> боялся поддаться эмоциям и начать выражаться нецензурно.

Если что -- пиши, позвоню, изложишь в любом виде.
Постараюсь перевести.

> Проблема была в том, что и Дмитрий действовал не со зла и не
> нарочно, но получилось по пословице "простота хуже воровства".

Дима, предлагаю ещё один приём.  Представь, что ты -- Путин,
а несколько процентов команды -- оппозиция.  Не те идиоты,
которые вообще не слушают и только орут "Левин, уходи",
а люди вроде тебя, в целом настроенные конструктивно,
но близко к сердцу принимающие твои ошибки, особенно
оформленные как вроде бы помощь.

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

> Вернемся к истокам. Сборочница рассчитана на условного майнтайнера
> с относительно малым числом но достаточно глубоко сопровождаемых
> пакетов, для которого производительность сборочницы не играет особой
> роли. Пример такого майнтайнера -- сам Дмитрий.
> Для него сборочница комфортна.
> 
> Со мной Дмитрий пытался оптимизировать майнтайнера к сборочнице,
> а я хотел наоборот. Что же мне мешает оптимизироваться?

Ну есть и оптимизация на производительность, но она сосредоточена
скорее в пересборочнице, результаты работы которой отбрасываются
(и это сильно другой инвариант).  И там цель не "как можно
быстрее", а "уложиться с пересборкой всего сизифа в одни сутки"
(здесь, возможно, ещё один заранее не очевидный тебе подводный
камень насчёт роста репозмитория).

> Мешает то, что его оптимизация майнтайнера к сборочнице
> сводится к экономии машинного времени сборочницы
> за счет растраты времени майнтайнера.

Это советский подход, да.

> Рассмотрим, к примеру, наше новое полиси по заполнению лицензий.

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

> Не надо жалеть сборочницу, это робот, который работает за электроэнергию.
> "Жалеть" сборочницу и издеваться над людьми --- это и есть извращение.
> Сборочницу не надо "жалеть", ее надо переписать для улучшения
> производительности. Тогда хорошо будет всем.

В общем, Дима, перевожу на русский без мата: у тебя уже МАЗ
бастует, причём именно в результате твоих действий (даже не
бездействия), зато без накачки из сопредельных проектов.

-- 
 ---- WBR, Michael Shigorin / http://altlinux.org
  ------ http://opennet.ru / http://anna-news.info


  parent reply	other threads:[~2020-08-27  9:17 UTC|newest]

Thread overview: 92+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-27  2:29 Igor Vlasenko
2020-08-27  7:27 ` Anton Farygin
2020-08-27 11:54   ` Andrey Savchenko
2020-08-27 11:59     ` Anton Farygin
2020-08-27 12:09       ` [devel] архивирование репозиториев Dmitry V. Levin
2020-08-27 12:14         ` Anton Farygin
2020-08-27 12:20           ` Dmitry V. Levin
2020-08-27 12:32             ` Anton Farygin
2020-08-27 15:59               ` Dmitry V. Levin
2020-08-27 18:26                 ` Anton Farygin
2020-08-27 20:29                   ` Dmitry V. Levin
2020-08-28  7:06                     ` Alexey V. Vissarionov
2020-08-28  7:09                     ` Anton Farygin
2020-08-27 17:31               ` Michael Shigorin
2020-08-27 17:51                 ` Andrey Savchenko
2020-08-27 20:33                   ` Dmitry V. Levin
2020-08-28  1:28               ` Dmitry V. Levin
2020-08-28  6:29                 ` Andrey Savchenko
2020-08-29  2:04                   ` Leonid Krivoshein
2020-08-28  0:58             ` Leonid Krivoshein
2020-08-28  1:11               ` Dmitry V. Levin
2020-08-29  2:16                 ` Leonid Krivoshein
2020-08-28  5:03               ` Anton Farygin
2020-08-29  2:22                 ` Leonid Krivoshein
2020-08-29  4:58                   ` Anton Farygin
2020-08-29 14:18                     ` Leonid Krivoshein
2020-08-29 16:23                       ` Anton Farygin
2020-08-29 19:28                     ` [devel] zfs " Vitaly Chikunov
2020-08-29 20:11                       ` Anton Farygin
2020-08-29 20:38                         ` Vitaly Chikunov
2020-08-29 21:12                           ` Anton Farygin
2020-08-30  4:28                             ` Alexey V. Vissarionov
2020-08-27 12:05   ` [devel] incoming/girar: проблема производительности Alexey V. Vissarionov
2020-08-28  9:25   ` Igor Vlasenko
2020-08-28  9:28     ` Anton V. Boyarshinov
2020-08-28  9:31       ` Igor Vlasenko
2020-08-28  9:34     ` Anton Farygin
2020-08-28  9:47       ` Igor Vlasenko
2020-08-27  9:17 ` Michael Shigorin [this message]
2020-08-28  0:23   ` [devel] mass rebuilds Dmitry V. Levin
2020-08-28  5:09     ` Anton Farygin
2020-08-28  6:25       ` Andrey Savchenko
2020-08-28  6:58         ` Anton Farygin
2020-08-28 16:46           ` Dmitry V. Levin
2020-08-28 20:23             ` Anton Farygin
2020-08-28 21:47               ` Dmitry V. Levin
2020-08-29  5:08                 ` Anton Farygin
2020-08-27  9:57 ` [devel] incoming/girar: проблема производительности Dmitry V. Levin
2020-08-28 18:47   ` Dmitry V. Levin
2020-08-27 11:35 ` [devel] License Tag Policy (Re: incoming/girar: проблема =?utf-8?b?INC/0YDQvtC40LfQstC+0LTQuNGC0LXQu9GM0L3QvtGB0YLQuC4=?=) Sergey Afonin
2020-08-27 23:01 ` [devel] unmaintained packages shall not belong to Sisyphus Dmitry V. Levin
2020-08-28  0:04     ` Dmitry V. Levin
2020-08-28  0:35         ` Dmitry V. Levin
2020-08-28  5:22   ` Anton Farygin
2020-08-28 16:02     ` Dmitry V. Levin
2020-08-28 16:30   ` Michael Shigorin
2020-08-28 16:33     ` Michael Shigorin
2020-08-28 16:43       ` Dmitry V. Levin
2020-08-28 19:52         ` Michael Shigorin
2020-08-28 20:04           ` Dmitry V. Levin
2020-08-28 20:34             ` Michael Shigorin
2020-08-28 20:19           ` Alexey Gladkov
2020-08-28 20:46             ` Michael Shigorin
2020-08-28 23:52               ` Alexey Gladkov
2020-08-31 10:14                 ` Konstantin Lepikhov
2020-08-31 18:09                   ` [devel] [JT] баланс/динамика: пакеты/майнтейнеры (was: unmaintained packages shall not belong to Sisyphus) Michael Shigorin
2020-08-31  7:53               ` [devel] suggested tags order Aleksei Nikiforov
2020-08-31 11:46                 ` Sergey V Turchin
2020-08-31 12:25                   ` Paul Wolneykien
2020-08-28 16:40 ` [devel] hasher ALT#36531 Dmitry V. Levin
2020-08-30  0:15   ` Igor Vlasenko
2020-08-28 17:55 ` [devel] automatic License Dmitry V. Levin
2020-08-30  8:14   ` Igor Vlasenko
2020-08-30 10:09     ` Alexey Gladkov
2020-08-30 12:44       ` Igor Vlasenko
2020-08-30 15:21         ` Alexey Gladkov
2020-08-30 15:36           ` Michael Shigorin
2020-08-30 15:44             ` Alexey Gladkov
2020-08-30 15:58           ` Andrey Savchenko
2020-08-30 16:40             ` Alexey Gladkov
2020-08-30 17:27               ` Andrey Savchenko
2020-08-30 18:15                 ` Alexey Gladkov
2020-08-30 18:47                   ` Michael Shigorin
2020-08-30 17:56       ` Igor Vlasenko
2020-08-28 18:26 ` [devel] will be fatal in Perl 5.30 Dmitry V. Levin
2020-08-28 19:46   ` Michael Shigorin
2020-08-28 19:58     ` Dmitry V. Levin
2020-08-28 20:19       ` Michael Shigorin
2020-08-28 22:11         ` Dmitry V. Levin
2020-08-28 22:13           ` Dmitry V. Levin
2020-08-30  0:58         ` Igor Vlasenko
2020-08-30  0:41   ` Igor Vlasenko

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=20200827091734.GE11056@imap.altlinux.org \
    --to=mike@altlinux.org \
    --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