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