systems from collections of computer connected via networks. To support such systems, there is a growing need for effective way to organize and maintain distributed programs” Guardians and Actions: Linguistic Support for Robust, Distributed Programs
solution to the problem of maintaining consistent distributed data in the face of concurrent, potentially interfering activities, and in the face of system failures such as node crashes and network disruptions while these activities are running is to make activities atomic” Atomicity
top action at some guardian. The computation spreads to other guardians by means of handler calls. Execution of a handler call may cause some objects at the handler’s guardian to be modified, and may in turn lead to further calls”
holds a write lock on x, then S’s version becomes S’s parent version Abort: S’s lock and version (if any) are discarded Version Management Rules for Sub Actions Distributed Programming in Argus
V2 V3 $207.06 $208.10 Value Y: Write Lock (V3) Z: Write Lock (V3) X Y Z W 1.5% Interest 2% Interest Read Balance .5% Interest Sub Action Locking Two Phase Commit
can lead to a number of deadlock situations” Guardians and Actions: Linguistic Support for Robust, Distributed Programs “As implemented most of the handlers can deadlock with other concurrent operations” Distributed Programming in Argus Deadlocks
incoming handler call …[so guardians can] have the ability to execute many request concurrently … if the guardian is running on a single-processor node, then only one process will be running at a time” Guardians and Actions: Linguistic Support for Robust, Distributed Programs
incoming handler call …[so guardians can] have the ability to execute many request concurrently … if the guardian is running on a single-processor node, then only one process will be running at a time” Guardians and Actions: Linguistic Support for Robust, Distributed Programs Promises: linguistic support for efficient asynchronous procedure calls in distributed systems B. Liskov, L.Shrira 1988