Ganesan Ramalingam (Microsoft Research India)
Tuesday, 22.10.2013, 11:30
Writing applications for distributed systems is challenging because of the pitfalls of distribution such as process failures and communication failures. One common requirement and challenge is the need for distributed applications that are idempotent. Idempotence ensures that the application functions correctly even when clients send duplicate requests, perhaps because the application failed to generate a response due to process failures, or because the response was generated but lost. Idempotence simplifies the composition of applications through imperfect communication channels and simplifies recovery from process failures. However, guaranteeing idempotence is a manual, tedious, and fault-prone process, especially for complex computations such as workflows. In this talk, we discuss the requirements of fault-tolerance as well as idempotence. We show how idempotence can be automatically ensured, using a monad, without requiring distributed consensus. We present language constructs motivated by these observations.
G. Ramalingam received his Ph.D. from the University of Wisconsin-Madison. He was a researcher at IBM T. J. Watson Research Center from 1993 to 2006. G. Ramalingam has been at Microsoft Research India from 2006. His research interests are in the area of Programming Languages and Tools, with a particular interest in Static Program Analysis, Program Understanding, Software Verification, Concurrency and Distributed Systems.