Предполагая, что у меня есть кластер из n Erlang узлов, некоторые из которых могут быть в моей локальной сети, а другие могут быть подключены через WAN (то есть через Интернет), какие подходящие механизмы для обслуживания) различная доступность/поведение полосы пропускания (например, вызванная латентность) и b) узлы с различной вычислительной мощностью (или даже ограничения памяти, если на то пошло)?Приоритизация узлов Erlang
Другими словами, как назначить приоритеты локальным узлам, которые имеют большую вычислительную мощность, по сравнению с теми, которые имеют высокую задержку и могут быть менее мощными, или как я бы в идеале уделял приоритетное внимание высокопроизводительным удаленным узлам с высокой задержкой передачи для конкретных выполняются ли эти процессы с относительно большими вычислениями/передачей (т. е. заполненной работой на сообщение, за единицу времени)?
Я в основном думаю с точки зрения сравнения бенчмарков каждого узла в кластере, отправив им контрольный процесс для запуска во время инициализации, чтобы можно было вычислить задержки, связанные с беспорядочным расчетом, а также общую вычислительную скорость (то есть , используя таймер, специфичный для узла, для определения того, насколько быстро узел завершается с любой задачей).
Возможно, что-то подобное нужно было бы сделать многократно, с одной стороны, чтобы получить репрезентативные данные (то есть усреднение данных), а с другой стороны, возможно, это было бы полезно даже во время выполнения, чтобы быть способный динамически адаптироваться к изменяющимся условиям выполнения.
(в том же смысле, можно было бы, вероятно, хотите, чтобы приоритеты локально работает узлы над тех, кто работает на других машинах)
Это было бы означало, мы надеемся, оптимизировать внутреннюю отправку работу, так что конкретные узлы обработки конкретных заданий.
Спасибо за ваш ответ, техника, которую вы использовали, в значительной степени соответствует тому, что Я предвидел (и то, что я набросал в вопросе). Я думаю, было бы интересно увидеть, что именно такой сценарий поддерживается некоторой формой инфраструктуры erlang (например, с использованием OTP). Я принял ваш ответ, потому что это действительно очень близко к моему сценарию. – none