Два года в /fg/. Войти !bnw Сегодня Клубы

Ебусь со всякой системщиной. Явно чего-то не хватает в императивном описании алгоритмов. Например:
1. указываем, что кое-какой процесс должен быть запущен на всех живых хостах из данного множества. Если хост из множества был дохлым, но потом ожил, то надо запустить процесс на нём тоже, когда он ожил.
2. спрашиваем что-то у процессов и ждём ответа, но, если хост умер (по независимым от нас причинам), и мы это знаем, то не надо ждать ответа. (таймауты тут сработали бы надёжно, но и без них часто ясно, что ответа не будет.)
Нужна какая-то декларативная шняга, что ли? Давайте идеи.

#HX0TN5 / @gds / 3807 дней назад

1. воркер, обновляющий список живых хостов 2. воркер, ходящий по списку живых хостов и убеждающийся, что всё запущено
#HX0TN5/2C2 / @kb / 3807 дней назад
@kb (это я как предложение альтернативной к "ивенты/хуенты/подписки" модели)
#HX0TN5/2JD / @kb --> #HX0TN5/2C2 / 3807 дней назад
@kb убеждаться в запущенности каждый раз -- не дёшево, учитывая, что надо довольно быстро подхватывать живой хост в работу. Что-то типа реактивного должно быть на нижнем уровне, с реакцией на разные события внешнего мира и на требования пользователя.
#HX0TN5/YJ6 / @gds --> #HX0TN5/2JD / 3807 дней назад
1. клади задания в zookeeper/etcd ёпт
#HX0TN5/8KP / @anonymous / 3807 дней назад
В гомогенной среде, наверное, раз уж надо выполнять какой-то код на узлах, проще всего будет сделать агент-watchdog, который следит за работой нужного демона и одновременно каждые n секунд пингует сервер. Пинги идут — узел в работе, пинги пропали — вычёркиваем. В гетерогенной среде, для универсальности, его надо будет держать на сервере, и проверять он будет список узлов с той же частотой. > таймауты тут сработали бы надёжно, но и без них часто ясно, что ответа не будет Вот как по отсутствию обмена данными с удалённой стороной может быть «ясно», пока его продолжительность не превысит некую заданную велиину? Это и есть «таймаут».
#HX0TN5/RPH / @ceyt / 3807 дней назад
@ceyt > агент-watchdog, который следит за работой нужного демона уже есть! > Это и есть «таймаут». да, таймауты есть, в том числе по пингам. Я их считаю как бы "данными свыше" (но и на запросы их тоже вешать надо). Я тут скорее думаю про то, как записать логику относительно высокоуровнево. В виде каких-то декларативных правил, что ли. Почему императивное не подходит: рассмотрим первый пример. Процедура запуска процесса будет "взять множество хостов, выделить живые, запустить всё на живых", и должна быть реакция на появление хоста: "если ожил хост из того множества, и кластер должен быть запущен (согласно директивам пользователя), то надо запустить на нём процесс".
#HX0TN5/JOX / @gds --> #HX0TN5/RPH / 3807 дней назад
@polecat пруф или в мейлбокс
#HX0TN5/1DZ / @anonymous --> #HX0TN5/4EV / 3807 дней назад
@polecat так надо.
#HX0TN5/XMR / @gds --> #HX0TN5/DTS / 3807 дней назад
хуле ты там жаваскрипт изобретаешь
#HX0TN5/T61 / @krkm / 3807 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.