ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Igor Vlasenko <vlasenko@imath.kiev.ua>
To: devel@lists.altlinux.org
Subject: [devel] Сборочница V. Планировщик
Date: Mon, 26 Feb 2018 16:22:38 +0200
Message-ID: <20180226142238.GA27109@dad.imath.kiev.ua> (raw)

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

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

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


                 reply	other threads:[~2018-02-26 14:22 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=20180226142238.GA27109@dad.imath.kiev.ua \
    --to=vlasenko@imath.kiev.ua \
    --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