Issue No. 03 - March (1995 vol. 6)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/71.372777
<p><it>Abstract—</it>Linda is a language for programming parallel applications whose most notable feature is a distributed shared memory called tuple space. While suitable for a wide variety of programs, one shortcoming of the language as commonly defined and implemented is a lack of support for writing programs that can tolerate failures in the underlying computing platform. This paper describes FT-Linda, a version of Linda that addresses this problem by providing two major enhancements that facilitate the writing of fault-tolerant applications: stable tuple spaces and atomic execution of tuple space operations. The former is a type of stable storage in which tuple values are guaranteed to persist across failures, while the latter allows collections of tuple operations to be executed in an all-or-nothing fashion despite failures and concurrency. The design of these enhancements is presented in detail and illustrated by examples drawn from both the Linda and fault-tolerance domains. An implementation of FT-Linda for a network of workstations is also described. The design is based on replicating the contents of stable tuple spaces to provide failure resilience and then updating the copies using atomic multicast. This strategy allows an efficient implementation in which only a single multicast message is needed for each atomic collection of tuple space operations.</p><p><it>Index Terms—</it>Parallel programming, fault-tolerance, Linda, atomic execution, stable storage, atomic multicast.</p>
R. D. Schlichting and D. E. Bakken, "Supporting Fault-Tolerant Parallel Programming in Linda," in IEEE Transactions on Parallel & Distributed Systems, vol. 6, no. , pp. 287-302, 1995.