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

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

#HX0TN5 / @gds / 3802 дня назад

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

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