The same component isolation that made it effective for large distributed telecom systems makes it effective for multicore CPUs and networked applications.
The following letter was published in the Letters to the Editor in the February 2011 CACM (http://cacm.acm.org/magazines/2011/2/104382).
Joe Armstong explained in his article "Erlang" (Sept. 2010) how a programming language originally developed for "building high-performance telecom switches" is today used for a range of high-availability, scalable applications, but I would like to clarify two parts of that explanation: The first was saying, "This technique was used by Jim Gray(2) in the design of the fault-tolerant Tandem computer." Gray made major contributions at Tandem, but by late 1980, when he joined the company, its fundamental hardware and operating system fault-tolerance techniques were already established. Assigning credit accurately for the various aspects of a large and complex system design (such as Tandem's NonStop systems) may be tricky, but Barlett(1) and Katzman(4) were key contributors to the hardware and the operating system, respectively. Bartlett's paper acknowledged Dennis McEvoy, Dave Hinders, Jerry Held, and Robert Shaw as contributing to design, implementation, and testing. Finally, the co-inventors listed on the first patent granted on the Tandem system, 4,228,496, October 14, 1980, filed September 7, 1976, were: Katzman, James A. (San Jose, CA); Bartlett, Joel F. (Palo Alto, CA); Bixler, Richard M. (Sunnyvale, CA); Davidow, William H. (Atherton, CA); Despotakis, John A. (Pleasanton, CA); Graziano, Peter J. (Los Altos, CA); Green, Michael D. (Los Altos, CA); Greig, David A. (Cupertino, CA); Hayashi, Steven J. (Cupertino, CA); Mackie, David R. (Ben Lomond, CA); McEvoy, Dennis L. (Scotts Valley, CA); Treybig, James G. (Sunnyvale, CA); and Wierenga, Steven W. (Sunnyvale, CA).
Armstrong also said, "Adding transactions is easy," then sketched an implementation. While the implementation may be useful in the telecom world, it does not handle the durability provided by database transactions; see, for example, Gray and Reuter.(3)
Mountain View, CA
(1) Bartlett, J.F. A 'nonstop' operating system. In Proceedings of the Hawaii International Conference on System Sciences (1978), 103119.
(2) Gray, J. Why Do Computers Stop and What Can Be Done About It? Technical Report 85.7. Tandem Computers, Inc., 1985.
(3) Gray, J. and Reuter, A. Transaction Processing: Concepts and Techniques. Morgan Kaufman, 1993.
(4) Katzman, J.A. System architecture for NonStop computing. CompCon (1977), 7780.
McJones is correct in saying the transactions described in my article are nondurable. Database transactions with ACID atomicity, consistency, isolation, durability properties are provided by the mnesia database included in the Erlang distribution. The purpose of that section was not to cover kinds of transactions but to show the ease a particular type of nondurable transaction involving an in-memory reversion to an earlier state could on failure be accomplished through single-assignment variables.
Displaying 1 comment