- When: 16th November 2015 09:15 - 15:30
- Where: Byre Theatre
- Series: Distinguished Lectures Series
- Format: Distinguished lecture
To build a scalable system the important thing is to make small isolated independent units. To scale up we just add more units. To build a fault-tolerant system the important thing to do is make small isolated independent units…. Does that sound familiar? Haven’t I seen that somewhere before? Oh yes, in the first paragraph! So maybe scalability and fault tolerance are really different names for the same thing.
This property of systems, namely that fault-tolerant systems were also scalable, was noticed years ago, notably in the design of the Tandem computer system. The Tandem was design for fault tolerance but rapidly became a leading supplier of scalable computer platforms. Thus it was with Erlang.
Erlang followed a lot of the Tandem design, it was built for fault-tolerance but some of the most successful applications (such as WhatsApp) use it for its scalability.
In this lecture I’ll talk about the intimate relationship between scalability and fault-tolerance and why they are architecturally the same thing.
I’ll talk about the design of Erlang and why scalable systems have to be built on non-shared memory abstractions.
Joe Armstrong has been programming since 1967. He invented the programming language Erlang. He has worked as a programmer, founded a few successful companies and written a few books. He has a PHD in Computer Science from KTH. He is currently Adjunct Professor of Computer Science at the KTH Royal Institute of Technology in Stockholm.