假设我有一个由 n 个Erlang节点组成的集群,其中一些可能在我的 LAN 上,而另一些可能使用 WAN(即通过 Internet)连接,有什么合适的机制来满足 a) 不同的带宽可用性/行为(例如,引起的延迟)和b)具有不同计算能力的节点(甚至是内存限制)?
换句话说,我如何优先考虑具有大量计算能力的本地节点,而不是那些具有高延迟并且可能不太强大的节点,或者我如何在理想情况下优先考虑具有高传输延迟的高性能远程节点来专门执行这些进程相对巨大的计算/传输(即每条消息,每时间单位完成的工作)比率?
我主要考虑通过向集群中的每个节点发送一个基准过程以在初始化期间运行来对它们进行基本基准测试,以便可以计算消息传递所涉及的延迟以及整体计算速度(即使用一个节点-特定的计时器来确定节点终止任何任务的速度)。
可能,类似的事情必须重复进行,一方面是为了获得代表性数据(即平均数据),另一方面它甚至可能在运行时有用,以便能够动态调整改变运行时条件。
(在同样的意义上,人们可能希望优先考虑本地运行的节点而不是其他机器上运行的节点)
这意味着有望优化内部作业调度,以便特定节点处理特定作业。