Demo Data from EDBT 2026 / reviewers in the wild / expert
Amir Ghaffari
dblp:97/10351
· DBLP profile ↗
3ranked-venue papers
0as first author
0since 2021 · last 2017
0000-0002-4850-0587ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 2Software engineering, systems software and programming languages · 1
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Computer architecture, parallel and distributed computing, and storage systems
2 papers |
Distributed systems · 94% Hardware reliability and fault tolerance · 6% | |
| Software engineering, system software, and programming languages
1 paper |
Runtime systems and virtual machines · 100% |
Topics — the 5 heaviest of 8, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Distributed systems › distributed programming
actor model |
0.3 | 1 | 2017 | Scaling Reliably: Improving the Scalability of the Erlang Distributed Actor Platform · ACM Trans. Program. Lang. Syst. 2017 |
Distributed systems › distributed programming
distributed programming languages |
0.3 | 1 | 2017 | Evaluating Scalable Distributed Erlang for Scalability and Reliability · IEEE Trans. Parallel Distributed Syst. 2017 |
Distributed systems › distributed system dependability
reliable distributed systems |
0.3 | 1 | 2017 | Scaling Reliably: Improving the Scalability of the Erlang Distributed Actor Platform · ACM Trans. Program. Lang. Syst. 2017 |
Distributed systems
fault tolerance |
0.1 | 1 | 2017 | Evaluating Scalable Distributed Erlang for Scalability and Reliability · IEEE Trans. Parallel Distributed Syst. 2017 |
Hardware reliability and fault tolerance
reliability modeling |
0.1 | 1 | 2017 | Evaluating Scalable Distributed Erlang for Scalability and Reliability · IEEE Trans. Parallel Distributed Syst. 2017 |
Methods — techniques the papers use, named apart from their topics
partitioning · 0.6chaos monkey testing · 0.6
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2017 | Scaling Reliably: Improving the Scalability of the Erlang Distributed Actor PlatformabstractDistributed actor languages are an effective means of constructing scalable reliable systems, and the Erlang programming language has a well-established and influential model. While the Erlang model conceptually provides reliable scalability, it has some inherent scalability limits and these force developers to depart from the model at scale. This article establishes the scalability limits of Erlang systems and reports the work of the EU RELEASE project to improve the scalability and understandability of the Erlang reliable distributed actor model. We systematically study the scalability limits of Erlang and then address the issues at the virtual machine, language, and tool levels. More specifically: (1) We have evolved the Erlang virtual machine so that it can work effectively in large-scale single-host multicore and NUMA architectures. We have made important changes and architectural improvements to the widely used Erlang/OTP release. (2) We have designed and implemented Scalable Distributed (SD) Erlang libraries to address language-level scalability issues and provided and validated a set of semantics for the new language constructs. (3) To make large Erlang systems easier to deploy, monitor, and debug, we have developed and made open source releases of five complementary tools, some specific to SD Erlang. Throughout the article we use two case studies to investigate the capabilities of our new technologies and tools: a distributed hash table based Orbit calculation and Ant Colony Optimisation (ACO). Chaos Monkey experiments show that two versions of ACO survive random process failure and hence that SD Erlang preserves the Erlang reliability model. While we report measurements on a range of NUMA and cluster architectures, the key scalability experiments are conducted on the Athos cluster with 256 hosts (6,144 cores). Even for programs with no global recovery data to maintain, SD Erlang partitions the network to reduce network traffic and hence improves performance of the Orbit and ACO benchmarks above 80 hosts. ACO measurements show that maintaining global recovery data dramatically limits scalability; however, scalability is recovered by partitioning the recovery data. We exceed the established scalability limits of distributed Erlang, and do not reach the limits of SD Erlang for these benchmarks at this scale (256 hosts, 6,144 cores). Philip W. Trinder, Natalia Chechina, Nikolaos S. Papaspyrou, Konstantinos Sagonas, Simon J. Thompson, Stephen Adams 0002, Stavros Aronis, Robert Baker 0001, Eva Bihari, Olivier Boudeville, Francesco Cesarini, Maurizio Di Stefano, Sverker Eriksson, Viktória Fördós, Amir Ghaffari, Aggelos Giantsios, Rickard Green, Csaba Hoch, David Klaftenegger, Huiqing Li, Kenneth Lundin, Kenneth MacKenzie, Katerina Roukounaki, Yiannis Tsiouris, Kjell Winblad |
ACM Trans. Program. Lang. Syst. | 15 |
| 2017 | Evaluating Scalable Distributed Erlang for Scalability and ReliabilityabstractLarge 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. Natalia Chechina, Kenneth MacKenzie, Simon J. Thompson, Philip W. Trinder, Olivier Boudeville, Viktória Fördós, Csaba Hoch, Amir Ghaffari, Mario Moro Hernandez |
IEEE Trans. Parallel Distributed Syst. | 8 |
| 2016 | Improving the network scalability of ErlangabstractAs 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 ( 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). Natalia Chechina, Huiqing Li, Amir Ghaffari, Simon J. Thompson, Philip W. Trinder |
J. Parallel Distributed Comput. | 3 |