4 research outputs found

    Improving the Network Scalability of Erlang

    Get PDF
    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 programming 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(n2) 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)

    Analisis Grade of Services dengan Erlang Theory

    Get PDF
    Dalam perkembangan teknologi saat ini, jaringan selalu dibutuhkan dalam memenuhi kebutuhan transfer data pada setiap perangkat yang terkoneksi. Terutama pada saat pandemi covid-19 hampir segala kegiatan dilakukan secara daring menyebabkan peningkatan penggunaan jaringan oleh pengguna internet. Salah satu hal yang dapat dilakukan adalah menerapkan Network Monitoring System yang bertujuan untuk memantau lalu lintas pada perangkat jaringan sudah baik ataupun sebaliknya dengan bantuan aplikasi LibreNMS. LibreNMS merupakan aplikasi monitoring jaringan yang bersifat open source dan memiliki banyak fitur. Misalnya, secara otomatis dapat memindai perangkat jaringan, memantau status penggunaan dan lalu lintas data, serta memantau status perangkat jaringan yang diwakili oleh Rrdtool sebagai alat produksi grafis. Hasil implementasi sistem monitoring menggunakan LibreNMS dapat melakukan pemantauan kondisi trafik data serta pemantauan kondisi resource, dan juga mampu melakukan sistem peringatan pada perangkat yang memudahkan administrator untuk memantau jaringan. Kualitas jaringan juga dapat diketahui dengan melakukan penerapan teori pada data yang didapat dalam LibreNMS. Penerapan teori ini menggakan teori Erlang yang dapat mengetahui Grade of Services pada kualitas jaringan yang ada

    Evaluating Scalable Distributed Erlang for Scalability and Reliability

    Get PDF
    Large scale servers with hundreds of hosts and tens of thousands of cores are becoming common. To exploit these platforms software must be both scalable and reliable, and distributed actor languages like Erlang are a proven technology in this area. While distributed Erlang conceptually supports the engineering of large scale reliable systems, in practice it has some scalability limits that force developers to depart from the standard language mechanisms at scale. In earlier work we have explored these scalability limitations, and addressed them by providing a Scalable Distributed (SD) Erlang library that partitions the network of Erlang Virtual Machines (VMs) into scalable groups (s_groups). This paper presents the first systematic evaluation of SD Erlang s_groups and associated tools, and how they can be used. We present a comprehensive evaluation of the scalability and reliability of SD Erlang using three typical benchmarks and a case study. We demonstrate that s_groups improve the scalability of reliable and unreliable Erlang applications on up to 256 hosts (6,144 cores). We show that SD Erlang preserves the class-leading distributed Erlang reliability model, but scales far better than the standard model. We present a novel, systematic, and tool-supported approach for refactoring distributed Erlang applications into SD Erlang. We outline the new and improved monitoring, debugging and deployment tools for large scale SD Erlang applications. We demonstrate the scaling characteristics of key tools on systems comprising up to 10 K Erlang VMs
    corecore