Improving the network scalability of Erlang

被引:5
|
作者
Chechina, Natalia [1 ]
Li, Huiqing [2 ]
Ghaffari, Amir [1 ]
Thompson, Simon [2 ]
Trinder, Phil [1 ]
机构
[1] Univ Glasgow, Sch Comp Sci, Glasgow G12 8QQ, Lanark, Scotland
[2] Univ Kent, Sch Comp, Canterbury CT2 7NF, Kent, England
基金
英国工程与自然科学研究理事会;
关键词
Distributed system; Erlang; Actor model; Operational semantics; Validation; Conformance; QuickCheck; Testing;
D O I
10.1016/j.jpdc.2016.01.002
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
As the number of cores grows in commodity architectures so does the likelihood of failures. A distributed actor model potentially facilitates the development of reliable and scalable software on these architectures. Key components include lightweight processes which 'share nothing' and hence can fail independently. Erlang is not only increasingly widely used, but the underlying actor model has been a beacon for prograniming language design, influencing for example Scala, Clojure and Cloud Haskell. While the Erlang distributed actor model is inherently scalable, we demonstrate that it is limited by some pragmatic factors. We address two network scalability issues here: globally registered process names must be updated on every node (virtual machine) in the system, and any Erlang nodes that communicate maintain an active connection. That is, there is a fully connected O(n(2)) network of n nodes. We present the design, implementation, and initial evaluation of a conservative extension of Erlang - Scalable Distributed (SD) Erlang. SD Erlang partitions the global namespace and connection network using s_groups. An s_group is a set of nodes with its own process namespace and with a fully connected network within the s_group, but only individual connections outside it. As a node may belong to more than one s_group it is possible to construct arbitrary connection topologies like trees or rings. We present an operational semantics for the s_group functions, and outline the validation of conformance between the implementation and the semantics using the QuickCheck automatic testing tool. Our preliminary evaluation in comparison with distributed Erlang shows that SD Erlang dramatically improves network scalability even if the number of global operations is tiny (0.01%). Moreover, even in the absence of global operations the reduced connection maintenance overheads mean that SD Erlang scales better beyond 80 nodes (1920 cores). (C) 2016 Elsevier Inc. All rights reserved.
引用
收藏
页码:22 / 34
页数:13
相关论文
共 50 条
  • [1] Scaling Reliably: Improving the Scalability of the Erlang Distributed Actor Platform
    Trinder, Phil
    Chechina, Natalia
    Papaspyrou, Nikolaos
    Sagonas, Konstantinos
    Thompson, Simon
    Adams, Stephen
    Aronis, Stavros
    Baker, Robert
    Bihari, E. V. A.
    Boudeville, Olivier
    Cesarini, Francesco
    Di Stefano, Maurizio
    Eriksson, Sverker
    Fordos, Viktoria
    Ghaffari, Amir
    Giantsios, Aggelos
    Green, Rickard
    Hoch, Csaba
    Klaftenegger, David
    Li, Huiqing
    Lundin, Kenneth
    Mackenzie, Kenneth
    Roukounaki, Katerina
    Tsiouris, Yiannis
    Winblad, Kjell
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2017, 39 (04):
  • [2] Evaluating Scalable Distributed Erlang for Scalability and Reliability
    Chechina, Natalia
    MacKenzie, Kenneth
    Thompson, Simon
    Trinder, Phil
    Boudeville, Olivier
    Fordos, Viktoria
    Hoch, Csaba
    Ghaffari, Amir
    Hernandez, Mario Moro
    [J]. IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, 2017, 28 (08) : 2244 - 2257
  • [3] Improving Scalability of Delay Bound with Stochastic Network Calculus
    Yue Han
    Yao, Mingwu
    Yang Yang
    Luo, Yongjian
    Liu XueFang
    [J]. 2020 IEEE GLOBAL COMMUNICATIONS CONFERENCE (GLOBECOM), 2020,
  • [4] Improving scalability of network emulation through parallelism and abstraction
    Kiddle, C
    Simmonds, R
    Unger, B
    [J]. 38TH ANNUAL SIMULATION SYMPOSIUM, PROCEEDINGS, 2005, : 119 - 129
  • [5] Improving the Scalability of Distributed Network Emulations: An Algorithmic Perspective
    Zhao, Huaiyi
    Zhang, Xinyi
    Wang, Yang
    Diao, Zulong
    Li, Yanbiao
    Xie, Gaogang
    [J]. IEEE TRANSACTIONS ON NETWORK AND SERVICE MANAGEMENT, 2023, 20 (04): : 4325 - 4339
  • [6] Improving scalability of wireless network simulation with bounded inaccuracies
    Ji, Zhengrong
    Zhou, Junlan
    Takai, Mineo
    Bagrodia, Rajive
    [J]. ACM TRANSACTIONS ON MODELING AND COMPUTER SIMULATION, 2006, 16 (04): : 329 - 356
  • [7] Network Modeling for Improving Scalability using Graph Contraction Scheme
    Heo, Joon
    Kim, Taehwan
    [J]. 2014 UKSIM-AMSS 16TH INTERNATIONAL CONFERENCE ON COMPUTER MODELLING AND SIMULATION (UKSIM), 2014, : 428 - 433
  • [8] ESS: An Efficient Storage Scheme for Improving the Scalability of Bitcoin Network
    Wang, Xiaoqing
    Wang, Chunping
    Zhou, Kun
    Cheng, Hongbing
    [J]. IEEE TRANSACTIONS ON NETWORK AND SERVICE MANAGEMENT, 2022, 19 (02): : 1191 - 1202
  • [9] Improving the scalability of deep neural network for probabilistic power flow
    Xiang, Mingxu
    Feng, Nan
    Dai, Wei
    Yu, Juan
    Yang, Zhifang
    Yang, Yan
    Yu, Hongxin
    Xiang, Hongji
    [J]. INTERNATIONAL TRANSACTIONS ON ELECTRICAL ENERGY SYSTEMS, 2020, 30 (05)
  • [10] Improving the Erlang capacity of a CDMA cellular network under bursty user mobility
    Baiocchi, A
    Priscoli, FD
    Sestini, F
    [J]. ICUPC '96 - 1996 5TH IEEE INTERNATIONAL CONFERENCE ON UNIVERSAL PERSONAL COMMUNICATIONS RECORD, VOLS 1 AND 2, 1996, : 194 - 199