中文

可靠扩展:提升 Erlang 分布式 Actor 平台的可扩展性

编程语言 2017-05-09 v2 分布式、并行与集群计算

摘要

分布式 Actor 语言是构建可扩展可靠系统的有效手段,而 Erlang 编程语言拥有一个确立良好且具有影响力的模型。尽管 Erlang 模型在概念上提供可靠的可扩展性,但它存在一些固有的可扩展性限制,这些限制迫使开发人员在大规模时偏离该模型。本文确立了 Erlang 系统的可扩展性极限,并报告了改进语言可扩展性的工作。我们系统地研究了 Erlang 的可扩展性极限,并在虚拟机(VM)、语言和工具层面解决了这些问题。更具体地:(1)我们改进了 Erlang VM,使其能在大规模单主机多核和 NUMA 架构中有效工作。我们对 Erlang/OTP 做出了重要的架构改进。(2)我们设计并实现了可扩展分布式(SD)Erlang 库,以解决语言级可扩展性问题,并为新语言构造提供并验证了一组语义。(3)为使大型 Erlang 系统更易于部署、监控和调试,我们开发并开源发布了五个互补的工具,其中一些特定于 SD Erlang。贯穿本文,我们使用两个案例研究来调查我们的新技术和工具的能力:基于分布式哈希表的 Orbit 计算和蚁群优化(ACO)。Chaos Monkey 实验表明,两个版本的 ACO 在随机进程失败下存活,因此 SD Erlang 保留了 Erlang 可靠性模型。即使对于无需维护全局恢复数据的程序,SD Erlang 对网络进行分区以减少网络流量,从而在 80 台以上主机上提升了 Orbit 和 ACO 基准测试的性能。ACO 测量显示,维护全局恢复数据会极大地限制可扩展性;然而,通过对恢复数据进行分区,可恢复可扩展性。

关键词

引用

@article{arxiv.1704.07234,
  title  = {Scaling Reliably: Improving the Scalability of the Erlang Distributed Actor Platform},
  author = {Phil Trinder and Natalia Chechina and Nikolaos Papaspyrou and Konstantinos Sagonas and Simon Thompson and Stephen Adams and Stavros Aronis and Robert Baker and Eva Bihari and Olivier Boudeville and Francesco Cesarini and Maurizio Di Stefano and Sverker Eriksson and Viktoria Fordos and Amir Ghaffari and Aggelos Giantsios and Rickard Green and Csaba Hoch and David Klaftenegger and Huiqing Li and Kenneth Lundin and Kenneth Mackenzie and Katerina Roukounaki and Yiannis Tsiouris and Kjell Winblad},
  journal= {arXiv preprint arXiv:1704.07234},
  year   = {2017}
}