* [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