GUESSTIMATE: A Programming Model for Collaborative Distributed Systems

被引:0
作者
Rajan, Kaushik [1 ]
Rajamani, Sriram [1 ]
Yaduvanshi, Shashank [1 ]
机构
[1] Indian Inst Technol, Delhi, India
关键词
Design; Languages; Distributed systems; collaborative applications; concurrency; language extensions;
D O I
10.1145/1809028.1806621
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We present a new programming model GUESSTIMATE for developing collaborative distributed systems. The model allows atomic, isolated operations that transform a system from consistent state to consistent state, and provides a shared transactional store for a collection of such operations executed by various machines in a distributed system. In addition to "committed state" which is identical in all machines in the distributed system, GUESSTIMATE allows each machine to have a replicated local copy of the state (called "guesstimated state") so that operations on shared state can be executed locally without any blocking, while also guaranteeing that eventually all machines agree on the sequences of operations executed. Thus, each operation is executed multiple times, once at the time of issue when it updates the guesstimated state of the issuing machine, once when the operation is committed (atomically) to the committed state of all machines, and several times in between as the guesstimated state converges toward the committed state. While we expect the results of these executions of the operation to be identical most of the time in the class of applications we study, it is possible for an operation to succeed the first time when it is executed on the guesstimated state, and fail when it is committed. GUESSTIMATE provides facilities that allow the programmer to deal with this potential discrepancy. This paper presents our programming model, its operational semantics, its realization as an API in C#, and our experience building collaborative distributed applications with this model.
引用
收藏
页码:210 / 220
页数:11
相关论文
共 16 条
[1]  
Adl-Tabatabai A.-R., 2006, PLDI 06
[2]  
[Anonymous], SOSP 03
[3]  
BARNETT M, 2006, FMCO 05
[4]  
BARNETT M, 2004, CASSIS 04
[5]  
Bernstein P.A., 1987, Concurrency Control and Recovery in Database Systems
[6]  
BOCCHINO RL, 2008, PPOPP 08
[7]  
Charles P., 2005, OOPSLA 05
[8]   LINEARIZABILITY - A CORRECTNESS CONDITION FOR CONCURRENT OBJECTS [J].
HERLIHY, MP ;
WING, JM .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1990, 12 (03) :463-492
[9]  
KERMARREC AM, 2001, PODC 01
[10]  
Lamport L., 1979, IEEE T COMPUTERS, V28