Modular fault handling in a network-transparent programming language

Géry Debongnie, Raphaël Collet, Sébastien Doeraene, Peter Van Roy · 2012

Abstract—A programming language is network-transparent if the same program code executes with the same results, whether it is run in a centralized or distributed setting, provided there is no partial failure. The Erlang programming language is network-transparent and handle failures by message passing. We propose in this paper a generalization of the Erlang failure handling model which can be used for more expressive network-transparent languages. The new design introduces two concepts: entity fault states and fault streams. The failure of an entity is modeled in the system as a language entity, and is visible to the programmer via its corresponding fault stream. We also describe an implementation in Mozart 1.4.0. Evaluation shows that this model incurs a slight overhead in performance, but yields much more modular program code. Keywords-network transparency; failure handling; fault stream I.

Read the paper · More papers on PaperTik