1 Reversibility for Recoverability Ivan Lanese Computer Science Department FOCUS research group University of Bologna/INRIA Bologna, Italy.

Slides:



Advertisements
Similar presentations
Connectors and Concurrency joint work with Ugo Montanari Roberto Bruni Dipartimento di Informatica Università di Pisa Dagstuhl Seminar #04241, September.
Advertisements

1 Ivan Lanese Computer Science Department University of Bologna Italy Managing faults and compensations in SOCK Joint work with Claudio Guidi, Fabrizio.
Formal Semantics of Programming Languages 虞慧群 Topic 6: Advanced Issues.
An Associative Broadcast Based Coordination Model for Distributed Processes James C. Browne Kevin Kane Hongxia Tian Department of Computer Sciences The.
Roberto Pisa, Italy 13 June 2008 WADT Tiles for Reo Roberto Bruni Dipartimento di Informatica Università di Pisa WADT th International.
Dependable Composition of Web Services and Process Calculi Manuel Mazzara Newcastle University.
1 Ivan Lanese Computer Science Department University of Bologna Italy On the Interplay between Fault Handling and Request-response Service Invocations.
1 Ivan Lanese Computer Science Department University of Bologna Italy Towards a Unifying Theory for Web Services Composition Manuel Mazzara Faculty of.
1 Ivan Lanese Computer Science Department University of Bologna Italy Exploiting user-definable synchronizations in graph transformation.
1 The SOCK SAGA Ivan Lanese Computer Science Department University of Bologna Italy Joint work with Gianluigi Zavattaro.
1 Synchronization strategies for global computing models Ivan Lanese Computer Science Department University of Bologna.
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy On the Expressive Power of Primitives for Compensation Handling Joint work with.
A Hybrid Approach of Failed Disk Recovery Using RAID-6 Codes: Algorithms and Performance Evaluation Yinlong Xu University of Science and Technology of.
1 Ivan Lanese Computer Science Department University of Bologna Roberto Bruni Computer Science Department University of Pisa A mobile calculus with parametric.
1 Formal Models for Distributed Negotiations Description Roberto Bruni Dipartimento di Informatica Università di Pisa XVII Escuela de Ciencias Informaticas.
1 Ivan Lanese Computer Science Department University of Bologna Italy Error Handling in Service Oriented Computing Joint work with Claudio Guidi, Fabrizio.
1 SOCK and JOLIE from the formal basis to a service oriented programming language Ivan Lanese Computer Science Department University of Bologna Italy Joint.
CS-550 (M.Soneru): Recovery [SaS] 1 Recovery. CS-550 (M.Soneru): Recovery [SaS] 2 Recovery Computer system recovery: –Restore the system to a normal operational.
1 Ivan Lanese Computer Science Department University of Bologna Italy Behavioural Theory for SSCC Joint work with Luis Cruz-Filipe, Francisco Martins,
1 Ivan Lanese Computer Science Department University of Bologna Italy Evolvable systems: some ideas for modelling With input from Davide Sangiorgi, Fabrizio.
Bridging the gap between Interaction- and Process-Oriented Choreographies Talk by Ivan Lanese Joint work with Claudio Guidi, Fabrizio Montesi and Gianluigi.
Chapter 19 Database Recovery Techniques. Slide Chapter 19 Outline Databases Recovery 1. Purpose of Database Recovery 2. Types of Failure 3. Transaction.
Bridging the gap between Interaction- and Process-Oriented Choreographies Talk by Ivan Lanese Joint work with Claudio Guidi, Fabrizio.
Synchronized Hyperedge Replacement for Heterogeneous Systems joint work with Emilio Tuosto Dipartimento di Informatica Università di Pisa Ivan Lanese Dipartimento.
Bridging the gap between Interaction- and Process-Oriented Choreographies Talk by Ivan Lanese Joint work with Claudio Guidi, Fabrizio Montesi and Gianluigi.
1 Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Error Handling: From Theory to Practice Joint work with Fabrizio Montesi italianaSoftware.
1 Static vs dynamic SAGAs Ivan Lanese Computer Science Department University of Bologna/INRIA Italy.
1 Joint work with Claudio Antares Mezzina (INRIA), Jean-Bernard Stefani (INRIA) and Alan Schmitt (INRIA) Controlling Reversibility in Rhopi Ivan Lanese.
1 Ivan Lanese Computer Science Department University of Bologna Italy Concurrent and located synchronizations in π-calculus.
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Fault in the Future Joint work with Gianluigi Zavattaro and Einar Broch Johnsen.
1 Programming SAGAs in SOCK Ivan Lanese Computer Science Department University of Bologna Italy Joint work with Gianluigi Zavattaro The SOCK saga.
1 Ivan Lanese Computer Science Department University of Bologna Italy On the expressive power of primitives for compensation handling Joint work with Catia.
1 Ivan Lanese Computer Science Department University of Bologna Italy Behavioural Theory at Work: Program Transformations in a Service-centred Calculus.
An algebra of Connectors for modeling CommUnity with Tiles joint work with Roberto Bruni Ugo Montanari Dipartimento di Informatica Università di Pisa Ivan.
1 Ivan Lanese Computer Science Department University of Bologna Italy Streaming Services in SSCC Joint work with Francisco Martins, Vasco Vasconcelos and.
ICS (062)CC in Adv. DB Applications1 Concurrency Control in Advanced Database Applications Dr. Muhammad Shafique 31 March 2007.
1 Ivan Lanese Computer Science Department University of Bologna Italy Towards a Unifying Theory for Web Services Composition Manuel Mazzara Faculty of.
1 Ivan Lanese Computer Science Department University of Bologna Synchronization strategies for global computing models.
1 Joint work with Antonio Bucchiarone (Fondazione Bruno Kessler - IRST, Trento) and Fabrizio Montesi (University of Bologna/INRIA, Bologna) A Framework.
Chapter 10: Architectural Design
McGill University Proposal Exam School of Computer Science Ph.D. Candidate in the Modelling, Simulation and Design Lab Eugene Syriani.
THE NEXT STEP IN WEB SERVICES By Francisco Curbera,… Memtimin MAHMUT 2012.
1 Reversibility for Concurrent Interacting Systems Ivan Lanese Focus research group Computer Science and Engineering Department University of Bologna/INRIA.
1 Joint work with Michael Lienhardt (PPS), Claudio Antares Mezzina (Trento), Jean-Bernard Stefani (INRIA) and Alan Schmitt (INRIA) Reversibility in Concurrency.
Dynamic Choreographies Safe Runtime Updates of Distributed Applications Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Joint.
EEC 688/788 Secure and Dependable Computing Lecture 7 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Amending Choreographies Joint work with Fabrizio Montesi and Gianluigi Zavattaro.
1 Causal-Consistent Reversible Debugging Ivan Lanese Focus research group Computer Science and Engineering Department University of Bologna/INRIA Bologna,
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Causal-Consistent Reversibility in a Tuple-Based Language Joint work with Elena.
Fault-Tolerant Parallel and Distributed Computing for Software Engineering Undergraduates Ali Ebnenasir and Jean Mayo {aebnenas, Department.
“Dynamic fault handling mechanisms for service-oriented applications” Fabrizio Montesi, Claudio Guidi, Ivan Lanese and Gianluigi Zavattaro Department of.
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Decidability Results for Dynamic Installation of Compensation Handlers Joint.
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
1 Reversible Debugging Ivan Lanese Focus research group Computer Science and Engineering Department University of Bologna/INRIA Bologna, Italy Joint work.
1 Joint work with Claudio Antares Mezzina and Jean-Bernard Stefani Controlled Reversibility and Compensations Ivan Lanese Focus research group Computer.
Course: COMS-E6125 Professor: Gail E. Kaiser Student: Shanghao Li (sl2967)
Secure Composition of Untrusted Code: Wrappers and Causality Types Kyle Taylor.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Francesco Tiezzi IMT Advanced Studies Lucca Causal-Consistent Reversibility in a Tuple-Based Distributed Language Joint work with Elena Giachino, Ivan.
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Adaptive Choreographies Joint work with Mila Dalla Preda, Jacopo Mauro and Maurizio.
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Causal-Consistent Reversibility in a Tuple-Based Distributed Language Joint work.
An Efficient Compilation Framework for Languages Based on a Concurrent Process Calculus Yoshihiro Oyama Kenjiro Taura Akinori Yonezawa Yonezawa Laboratory.
Sub-fields of computer science. Sub-fields of computer science.
Database Recovery Techniques
Operating System Reliability
4.3 Transaction Communication
CS 632 Lecture 6 Recovery Principles of Transaction-Oriented Database Recovery Theo Haerder, Andreas Reuter, 1983 ARIES: A Transaction Recovery Method.
Internet of Things A Process Calculus Approach
open problems Claudio Antares Mezzina
Database Recovery 1 Purpose of Database Recovery
Presentation transcript:

1 Reversibility for Recoverability Ivan Lanese Computer Science Department FOCUS research group University of Bologna/INRIA Bologna, Italy

Roadmap l Why reversibility? l Reversing concurrent systems l Controlling reversibility l Reversibility and compensations l Conclusions

Why reversibility? l We want programming abstractions for dependable distributed systems l Different proposals in the literature –Exception handling, checkpointing, transactions, … l Unrelated proposals, difficult to combine and compose l Is there a unifying concept? l … most of them include some form of undo

What if we could undo every action? l Very low-level mechanism l Can we recover and better understand traditional recovery schemes? l Can we find new schemes or combine old ones?

Reversing concurrent systems l What does it means to go back one step for a concurrent system? l Which information is needed? l First approach in Reversible Communicating Systems. CONCUR 2004 by V. Danos and J. Krivine

Process calculi l Simple algebraic models for concurrent systems l Different calculi in the literature –CCS, CSP, π-calculus, HOπ, … l Basic actions for communication on named channels l Composition operators (sequence, parallel, choice) l Semantics defining the behavior a : b j b : c j a ! b j b : c ! c

Reversible Communicating Systems l Provides a reversible version of CCS l History information is added to each thread l Causal consistent reversibility –Transitions should be rollbacked in any order compatible with causal dependencies

Causal consistent reversibility a a b b

…and then? l Not much happened for some times –RCCS used for defining a simple transaction mechanism (2005) –Generalization from CCS to a simple rule format (2006) l Our contributions (from 2009) –Applying the technique to HOpi, a calculus with higher- order communication –An encoding of reversible HOpi into HOpi –Applying the technique to Oz abstract machine »Oz is a concurrent language with asynchronous communication –An analysis of the space overhead of reversibility in Oz

Taming reversibility l In the previous approaches reversibility is wild –They are interested in how to realize reversibility, not on how to use it l Nothing tells to the system whether it has to go backward or forward l We want reversibility for recoverability l Normal execution should be forward l Backward execution in case of errors

Roll-pi proposal l Every communication input has a label γ l The label can be used by a roll γ primitive –Go back till you undo communication γ –Undo all the causally dependent actions –Do not undo unrelated actions l Keep in mind that “undo the last action” is not meaningful in a concurrent scenario

Are we satisfied by controllable rollback? l Rollback is perfect: I go back to a previous state… l … and probably I will redo the exact same errors l We need a way to keep trace of failed attempts l We need to go to a state which is (possibly) slightly different from the previous ones

Compensations l The idea of compensations comes from database theory –Studied also in the framework of service oriented computing l A compensation is a piece of code used to manage an error l By executing the compensation the system goes back to a consistent state –Possibly different from any previous state

Mixing compensations and reversibility l We go back to a previous state as in roll-pi l We attach compensations to part of the code, so that it is changed during rollback –C%D: execute code C, in case of rollback replace it with D

Applications l Now we are expressive enough to model interesting scenarios l Transaction models l Speculative parallelism l Software Transactional Memories

Summary l A better understanding of reversibility in a concurrent scenario l An abstract machine for a concurrent reversible language l An analysis of the space overhead of reversibility l A mechanism for controlling reversibility l An integration between compensations and reversibility l A set of known patterns revisited in the new framework

Future work l A long road in front of us l On the mechanisms for controlling reversibility –Are there other possible mechanisms? –Are they equivalent? Can they be composed? l On expressive power –Which existing patterns benefit from our approach? –Do we miss some other mechanism? l On foundations –Which are the good equivalences for reversible systems?

Future work: going towards practice l Implementing the reversible Oz machine –Extended with control mechanisms and compensations –Which optimizations are possible? l An application –Reversible debugger

The REVER project l A French ANR project –Thanks to FOCUS team l Includes INRIA teams Sardes (Grenoble) and FOCUS (Bologna), PPS (Paris) and CEA (Paris) l 4 years project, started December 1st 2011 l Total funding 642k€ l Exactly on these topics

Finally

Bibliography l V. Danos, J. Krivine: Reversible Communicating Systems. CONCUR 2004 l V. Danos, J. Krivine: Transactions in RCCS. CONCUR 2005 l I. Phillips, I. Ulidowski: Reversing Algebraic Process Calculi. FoSSaCS 2006 l H. Garcia-Molina, K. Salem: Sagas. ACM SIGMOD 1987 l R. Bruni, H. Melgratti, U. Montanari: Theoretical foundations for compensations in flow composition languages. POPL 2005 l I. Lanese, C. A. Mezzina, J.-B. Stefani: Reversing Higher-Order Pi. CONCUR 2010 l I. Lanese, C. A. Mezzina, A. Schmitt, J.-B. Stefani: Controlling Reversibility in Higher-Order Pi. CONCUR 2011