ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] Сборочница V. Планировщик
@ 2018-02-26 14:22 Igor Vlasenko
  0 siblings, 0 replies; only message in thread
From: Igor Vlasenko @ 2018-02-26 14:22 UTC (permalink / raw)
  To: devel

Уважаемые господа!

Продолжаю цикл писем, посвященный предложениям
по улучшению нашей сборочницы.

V. Планировщик [процесс, запускающий task'и на сборку].

Я уже писал, что для повышения производительности
планировщик и мержер транзакций надо разнести в полностью отдельные
параллельно выполняемые независимые процессы.
Пусть общаются только через смену статуса task'ов.

Однако кроме этого в текущем планировщике есть и другие недостатки.

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

С одной стороны, она не полная, т.е. если пользователь залил таски
T1 T2 T3, то нет гарантии, что они соберутся именно в
последователоьности T1 T2 T3. Могут и в T2 T3 T1.

С другой стороны, блокировку последовательной сборочницы планировщик
честно эмулирует: если T1 собирается, то T2 и T3 никогда не будут
отправлены на сборку, При этом, если T1 --- тяжелая транзакция,
как существенное обновление python или texlive, то такая транзакция
будет обрабатываться нашей сборочницей неделями, а то и месяцами.

Планировщик, эмулируя блокировку последовательной сборочницы,
по сути, банит пользователя на эту неделю, а то и месяц.
IMHO, так не правильно. Если есть свободные вычислитльные ноды
и AVAITING task'и, планировщик просто обязан помочь найти
им друг друга. Ведь сборочница не должна простаивать?

А проблема балансировки нагрузки решается, например,
приоритетами. Чем больше у пользователя запущенных task'ов,
тем ниже его приоритет у планировщика при запуске нового task'а.

Далее, раз эмуляция последовательной сборочницы востребована,
я предлагаю сделать для нее улучшения в интерфейсе пользователя
(syntax sugar).

К примеру, сейчас работа с task deps достаточно громоздка.
Облегчить работу могла бы опция --after.
Опция --after "<task id1>,<task id2>,...,<task idN>"
в ssh girar build/run позволит быстро выставить task deps.

Для тех, кому task deps слишком сложны в обслуживании,
можно реализовать полноценную эмуляцию последовательной сборочницы.
добавить в ssh girar build/run опцию --seq[uential].

Эта опция внутри будет выставлять task'у опцию sequential,
а планировщик будет запускать task с опцией sequential
только тогда, когда все таски с меньшими номерами либо DONE,
либо FAILED. --- очень легко в реализации, и гораздо
лучше, чем сейчас.


-- 

I V


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2018-02-26 14:22 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-26 14:22 [devel] Сборочница V. Планировщик Igor Vlasenko

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