Partisan:支持云规模Erlang应用程序
Partisan: Enabling Cloud-Scale Erlang Applications
摘要:
在这项工作中,我们为Erlang提供了一个替代的分发层,名为Partisan。Partisan是一个与拓扑无关的分布式编程模型和分发层,支持用于不同应用场景的多种网络拓扑:全网状,对等,客户端-服务器和网络订阅。Partisan允许应用程序开发人员在运行时指定网络拓扑,而不是将特定于拓扑的关注点编码到应用程序代码中。Partisan还增加了对更多通道的支持,使用户能够在多个通道上分发消息,有时是并行的。我们在Erlang程序设计语言中实现和评估Partisan,并在三个场景的评估中使用它。第一个场景比较了Distributed Erlang和Partisan之间的原始性能,并显示Partisan的性能与Distributed Erlang相当或更好。第二个场景演示了通过多个连接分发流量使Partisan在正常情况下的性能提高了18倍,在网络拥塞和高并发的情况下提高了30倍。第三个场景使用现有的应用程序演示,在运行时配置拓扑可以使应用程序的性能提高13.5倍,或者扩展到通用运行时分发层上的数千个节点的集群。
英文摘要:
In this work, we present an alternative distribution layer for Erlang, named Partisan. Partisan is a topology-agnostic distributed programming model and distribution layer that supports several network topologies for different application scenarios: full mesh, peer-to-peer, client-server, and publish-subscribe. Partisan allows application developers to specify the network topology at runtime, rather than encoding topology-specific concerns into application code. Partisan additionally adds support for more channels, enabling users to distribute messages over multiple channels, sometimes in parallel. We implement and evaluate Partisan in the Erlang programming language and use it in the evaluation of three scenarios. The first scenario compares the raw performance between Distributed Erlang and Partisan, and shows that Partisan performs on par with or better than Distributed Erlang. The second scenario demonstrates that distributing traffic over multiple connections enables Partisan to perform up to 18x better under normal conditions, and up to 30x better in situations with network congestion and high concurrency. The third scenario demonstrates, using existing applications, that configuring the topology at runtime allows applications to perform up to 13.5x better or scale to clusters of thousands of nodes over the general-purpose runtime distribution layer.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。