controlling reversibility in holanese/work/concur2011.pdf · controlling reversibility in hoˇ ivan...

56
Controlling Reversibility in HOπ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt 2 Jean-Bernard Stefani 2 Focus Team, University of Bologna/INRIA, Italy INRIA Grenoble-Rhˆone-Alpes, France September 8, 2011 Concur 2011 Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 1 / 31

Upload: others

Post on 17-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Controlling Reversibility in HOπ

Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2

Jean-Bernard Stefani 2

Focus Team, University of Bologna/INRIA, Italy

INRIA Grenoble-Rhone-Alpes, France

September 8, 2011

Concur 2011

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 1 / 31

Page 2: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Roadmap

1 Reversibility

2 A small reversible language

3 Controlling Rollback

Page 3: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

The case for reversibility

What if we could undo every action ?Language support for Recovery Oriented Computing (ROC)

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 2 / 31

Page 4: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Undo manifestations

Application undo

System undo (ROC)

Logs and checkpoints

Transaction rollback

Distributed rollback-recovery

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 3 / 31

Page 5: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

The case for reversibility

Enabling defeasible partial agreements

Systematic rollback-recovery

Different transaction models

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 4 / 31

Page 6: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

The case for reversibility

Enabling causality tracking

Debugging

Diagnosis

Simulation

Fault isolation

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 5 / 31

Page 7: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Roadmap

1 Reversibility

2 A small reversible language

3 Controlling Rollback

Page 8: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Higher-order π-calculus

Syntax

P,Q ::= 0 null process

| X variable

| νa. P new name

| (P | Q) parallel composition

| a〈P 〉 message

| (a(X) . P ) trigger

a ∈ N

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 6 / 31

Page 9: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

A reversible HOπ:ρπ

Computation is done by process passing

a〈P 〉 | a(X) . X → P

After communication no information about previous state of theconfiguration.

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 7 / 31

Page 10: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

A reversible HOπ:ρπ

Computation is done by process passing

a〈P 〉 | a(X) . X → P

After communication no information about previous state of theconfiguration.

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 7 / 31

Page 11: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

A reversible HOπ:ρπ

To make HOπ reversible:

Log each action (message receipt)

Uniquely identify action participants

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 8 / 31

Page 12: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

A reversible HOπ: ρπ

Syntax

P,Q ::= 0 | X | νa. P | (P | Q) | a〈P 〉 | (a(X) . P )

M,N ::= configurations

0 null configuration

| νu.M restriction

| (M | N) parallel

| κ : P thread

| [m; k] memory

a ∈ N , k ∈ K, u ∈ N ∪ K

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 9 / 31

Page 13: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

A reversible HOπ: ρπ

Intuitions:

κ : P thread of computation (process) P uniquely identified by tag κ

[m; k] log of occurrence k of action m (message receipt)

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 10 / 31

Page 14: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

A reversible HOπ: ρπ

Reduction rules

Forward:m = (κ1 : a〈P 〉) | (κ2 : a(X) . Q)

(κ1 : a〈P 〉) | (κ2 : a(X) . Q)� νk. (k : Q{P /X}) | [m; k]

Backward: (k : P ) | [m; k] m

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 11 / 31

Page 15: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

A reversible HOπ: ρπ

Syntactical equivalence

(E.TagP) k :

n∏i=1

τi ≡ νh.n∏i=1

(〈hi, h〉 · k : τi) h = {h1, . . . , hn}

τ = a〈P 〉 ∨ τ = a(X) . P

Rule E.TagP builds unique identifiers for parallel branches

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 12 / 31

Page 16: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

ρπ results

Theorem (Full reversal)

M →∗ N if and only if N →∗ M

→ = � ∪

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 13 / 31

Page 17: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Roadmap

1 Reversibility

2 A small reversible language

3 Controlling Rollback

Page 18: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Controlling Rollback

In ρπ back tracking is uncontrolled

When do we get back?

normal execution should go forward

enable backward execution with a specific primitive

How far do we get back?

each action is logged and uniquely identified

[M ; k] as checkpoint: roll k

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 14 / 31

Page 19: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Controlling Rollback

In ρπ back tracking is uncontrolled

When do we get back?

normal execution should go forward

enable backward execution with a specific primitive

How far do we get back?

each action is logged and uniquely identified

[M ; k] as checkpoint: roll k

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 14 / 31

Page 20: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Controlling Rollback

In ρπ back tracking is uncontrolled

When do we get back?

normal execution should go forward

enable backward execution with a specific primitive

How far do we get back?

each action is logged and uniquely identified

[M ; k] as checkpoint: roll k

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 14 / 31

Page 21: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

How the roll primitive should work?

Naive implementation of roll k:

1 collect all the processes caused by k

2 delete them

3 restore the content of memory [M ; k]

Reduction rules

(Com)m = (κ1 : a〈P 〉) | (κ2 : a(X) .γ Q)

(κ1 : a〈P 〉) | (κ2 : a(X) .γ Q)� νk. (k : Q{k,P /γ,X}) | [m; k]

(Naive)N I k complete(N | [m; k] | (κ : roll k))

N | [m; k] | (κ : roll k) m | N k

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 15 / 31

Page 22: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

How the roll primitive should work?

Naive implementation of roll k:

1 collect all the processes caused by k

2 delete them

3 restore the content of memory [M ; k]

Reduction rules

(Com)m = (κ1 : a〈P 〉) | (κ2 : a(X) .γ Q)

(κ1 : a〈P 〉) | (κ2 : a(X) .γ Q)� νk. (k : Q{k,P /γ,X}) | [m; k]

(Naive)N I k complete(N | [m; k] | (κ : roll k))

N | [m; k] | (κ : roll k) m | N k

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 15 / 31

Page 23: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Controlling Rollback

k1 : a�0� (k2 : a(X) �γ b�roll γ�) (k3 : b(X) � c�0�|X)

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 16 / 31

Page 24: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Controlling Rollback

k1 : a�0� (k2 : a(X) �γ b�roll γ�) (k3 : b(X) � c�0�|X)

[k1 : M | k2 : N ;k] | k : b�roll k�

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 16 / 31

Page 25: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Controlling Rollback

k1 : a�0� (k2 : a(X) �γ b�roll γ�) (k3 : b(X) � c�0�|X)

[k1 : M | k2 : N ;k]

[k : M1 | k3 : N1; k4]

�h1, h� · k4 : c�0� �h2, h� · k4 : roll k

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 16 / 31

Page 26: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Controlling Rollback

k1 : a�0� (k2 : a(X) �γ b�roll γ�) (k3 : b(X) � c�0�|X)

[k1 : M | k2 : N ;k]

[k : M1 | k3 : N1; k4]

�h1, h� · k4 : c�0� �h2, h� · k4 : roll k

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 16 / 31

Page 27: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Controlling Rollback

k1 : a�0� (k2 : a(X) �γ b�roll γ�) (k3 : b(X) � c�0�|X)

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 16 / 31

Page 28: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Concurrent rolls

k k1

roll k roll k1

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 17 / 31

Page 29: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Concurrent rolls

k k1

roll k roll k1

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 17 / 31

Page 30: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Concurrent rolls

k k1

roll k roll k1

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 17 / 31

Page 31: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Concurrent rolls

k1

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 17 / 31

Page 32: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Problems

Problem with concurrent rolls

naive semantics is not unsound with respect to ρπ

naive semantics is insufficiently permissive with respect to ρπ

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 18 / 31

Page 33: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Why a better semantics?

Abstract semantics should

be as liberal as possible

not unduly restrict implementations

An implementation of naive:

will reach same backward states

hard to characterize

artificial, do not correspond to any policy

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 19 / 31

Page 34: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Controlling Rollback

Reduction rules: HL semantics

(Start) (κ1 : roll k) | [m; k] (κ1 : roll k) | [m; k]•

(Roll)N I k complete(N | [m; k])

N | [m; k]• m | N k

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 20 / 31

Page 35: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Concurrent rolls

k k1

roll k roll k1Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 21 / 31

Page 36: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Concurrent rolls

k k1

roll k roll k1Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 21 / 31

Page 37: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Concurrent rolls

k k1

roll k roll k1Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 21 / 31

Page 38: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Concurrent rolls

k1

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 21 / 31

Page 39: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Concurrent rolls

k1

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 21 / 31

Page 40: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Concurrent rolls

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 21 / 31

Page 41: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Properties

Soundness of backward reductions

if M ∗ M ′ then M ′ �∗ M , with M and M ′ unmarked

Completeness of backward reductions

if φ(M) ∗T N then M ∗HL M′ with M ′ = φ(N).

φ(.) : HL→ ρπ

T is a set of keys

T is a ρπ reduction restricted to keys caused by T

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 22 / 31

Page 42: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

High Level Semantics

sound and complete with respect to ρπ

good as specification semantics

relies on global checks and atomic steps

far away from a real implementation

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 23 / 31

Page 43: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Low Level Implementation

local checks

use of asynchronous notifications

rollback in two phases:

1 top-down visit to gather all the causally dependent processes

2 bottom-up visit to undo communications (one by one)

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 24 / 31

Page 44: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

LL example

roll k

k

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 25 / 31

Page 45: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

LL example

roll k

k

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 25 / 31

Page 46: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

LL example

roll k

k

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 25 / 31

Page 47: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

LL example

roll k

k

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 25 / 31

Page 48: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

LL example

roll k

k

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 25 / 31

Page 49: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

LL example

k

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 25 / 31

Page 50: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

LL example

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 25 / 31

Page 51: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Properties

Correspondence HL vs LL

M HL≈cLL M

Full Abstraction

j(M) LL≈cLL j(N) iff M HL≈cHL N

M,N consistent HL configuration

j(·) injection from HL to LL

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 26 / 31

Page 52: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Conclusions

We presented a fine grained rollback primitive for HOπ

built on top of ρπ

sound and complete with respect to ρπ

We presented a distributed semantics

closer to an implementation

fully abstract with respect to the high level semantics

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 27 / 31

Page 53: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Ongoing and Future works

encode rollπ into HOπ (X)

refine and relate the LL semantics to checkpoint and rollback schemes

localities, failures ...

mix dynamic compensations and controlled rollback

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 28 / 31

Page 54: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Controlling Rollback

Thank you!

Questions?

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 29 / 31

Page 55: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Low Level

LL Reduction Rules 1/2

(Start) (κ1 : roll k) | [m; k] LL (κ1 : roll k) | [m; k]• | rl k

(Span) rl κ1 | [κ1 : P |M ; k]◦ LL [bκ1 : P c |M ; k]◦ | rl k

(Branch)〈hi, h〉 · k occurs in M

rl k |M LL

∏hi∈h

rl 〈hi, h〉 · k |M

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 30 / 31

Page 56: Controlling Reversibility in HOlanese/work/concur2011.pdf · Controlling Reversibility in HOˇ Ivan Lanese 1 Claudio Antares Mezzina 2 Alan Schmitt2 Jean-Bernard Stefani 2 Focus Team,

Low Level

LL Redution Rules 2/2

(Up) rl κ1 | (κ1 : P ) LL bκ1 : P c (Stop) [m; k]◦ | bk : P c LL m

(GB) νk.∏i∈I

rl κi ≡ 0 κi = k ∨ κi = 〈h, u〉 · k

(TagPFr) bk :

n∏i=1

τic ≡LL νh.

n∏i=1

b〈hi, h〉 · k : τi)c h = {h1, . . . , hn} n ≥ 2

Mezzina (INRIA) Controlling Reversibility in HOπ September 8, 2011 31 / 31