Distributed Speculative Execution: A Programming Model for Reliability and Increased Performance

Subscribers:
344,000
Published on ● Video Link: https://www.youtube.com/watch?v=BwliR_YCOFg



Duration: 1:20:09
161 views
2


Reliability and fault-tolerance are key issues in software design and development. In this talk, I will present the use of speculations, a form of distributed transactions, to improve the reliability and fault tolerance of distributed systems and provide better performance. A speculation is defined as a computation that is based on an assumption whose validation is performed concurrently with the computation. If the assumption is found to be false, the computation is aborted and the state of the program is rolled back; if the assumption is validated, the results of the computation are committed. The main difference between a speculation and a transaction is that a speculation is not isolated. A speculative computation may send and receive messages, and it may modify shared objects. As a result, processes that share those objects or receive speculative messages may be absorbed into the speculation. Speculations provide three main advantages over the traditional programming model: (1) they may be used to reduce the error recovery code from programs, making it easier to reason about the computations; (2) they provide an exceptions-like mechanism that extends to a distributed environment; (3) they allow for optimistic execution, which may increase the performance of programs. In this talk, I will first present the syntax and an operational semantics for nested speculative execution, and then describe the challenges we encountered when implementing support for speculative execution as a kernel level service. In conclusion I will present some applications of this programming model and discuss future directions of research.




Other Videos By Microsoft Research


2016-09-06Interaction Design for One-Handed Use of Mobile Devices
2016-09-06Einstein: His Life and Universe
2016-09-06Virtual Reality Therapy: Using immersive virtual reality games to help reduce suffering
2016-09-06A Crowd of One: The Future of Individual Identity           
2016-09-06Ubiquitous Reflective Technologies
2016-09-06Customizing the Computational Capabilities of Processors
2016-09-06Virgil: Objects on the Head of a Pin
2016-09-06Video Synopsis: Making an Infinite Video Shorter
2016-09-06Linked Decompositions of Networks and Polya Urns with Choice
2016-09-06The Light Portal: 3D Reconstruction and Visualization over Space and Time
2016-09-06Distributed Speculative Execution: A Programming Model for Reliability and Increased Performance
2016-09-06Director of MITΓÇÖs Auto-ID Laboratory and a professor of Information Engineering
2016-09-06Path invariants
2016-09-06Records, sums, cases, and exceptions: Row-polymorphism at work [1/9]
2016-09-06Internet 3.0: Ten Problems with Current Internet Architecture and Solutions for the Next Generation
2016-09-06The Bilateral Grid and a Topological Approach to Image Segmentation
2016-09-06Software Development Practices and Knowledge Sharing: A Comparison of XP & Waterfall Team Behaviors
2016-09-06How likely is BuffonΓÇÖs needle to meet a Cantor square?
2016-09-06Dense triangle-free digraphs
2016-09-06MOP: A Generic and Efficient Runtime Verification Framework
2016-09-06An Examination of User Behaviour during Web Information Tasks



Tags:
microsoft research