mapreduce for parallel trace validation of ltl properties

120
MapReduce for Parallel Trace Validation of LTL Properties Benjamin Barre, Mathieu Klein, Maxime Soucy-Boivin, Pierre-Antoine Ollivier and Sylvain Hallé Université du Québec à Chicoutimi CANADA CRSNG NSERC Fonds de recherche Nature et technologies

Upload: sylvain-halle

Post on 05-Jul-2015

711 views

Category:

Technology


1 download

DESCRIPTION

We present an algorithm for the automated verification of Linear Temporal Logic formulae on event traces using an increasingly popular cloud computing framework called MapReduce. The algorithm can process multiple, arbitrary fragments of the trace in parallel, and compute its final result through a cycle of runs of MapReduce instances. Compared to classical, single-instance solutions, a proof-of-concept implementation shows through experimental evaluation how the algorithm reduces by as much as 90% the number of operations that must be performed linearly, resulting in a commensurate speed gain.

TRANSCRIPT

Page 1: MapReduce for Parallel Trace Validation of LTL Properties

MapReduce for ParallelTrace Validation of LTL Properties

Benjamin Barre, Mathieu Klein, Maxime Soucy-Boivin,Pierre-Antoine Ollivier and Sylvain Hallé

Université du Québec à ChicoutimiCANADA

CRSNGNSERC

Fonds de rechercheNature ettechnologies

Page 2: MapReduce for Parallel Trace Validation of LTL Properties
Page 3: MapReduce for Parallel Trace Validation of LTL Properties

System

Page 4: MapReduce for Parallel Trace Validation of LTL Properties

System

Page 5: MapReduce for Parallel Trace Validation of LTL Properties

System

Instrumentation

Page 6: MapReduce for Parallel Trace Validation of LTL Properties

System

Instrumentation

Page 7: MapReduce for Parallel Trace Validation of LTL Properties

System

Instrumentation

Trace

Page 8: MapReduce for Parallel Trace Validation of LTL Properties

System

Instrumentation

Trace

Events

Page 9: MapReduce for Parallel Trace Validation of LTL Properties

System

Instrumentation

Trace

Events

Page 10: MapReduce for Parallel Trace Validation of LTL Properties

System

Instrumentation

Trace

Events

Tracevalidation

Page 11: MapReduce for Parallel Trace Validation of LTL Properties

Iterator<T>

Page 12: MapReduce for Parallel Trace Validation of LTL Properties

Iterator<T>

hasNext

next

Page 13: MapReduce for Parallel Trace Validation of LTL Properties

Iterator<T>

hasNext

next

A call to next must be precededby a call to hasNext

Page 14: MapReduce for Parallel Trace Validation of LTL Properties

B

A

Page 15: MapReduce for Parallel Trace Validation of LTL Properties

B

A

No CartCreate request can occurbefore a LoginResponse message

Page 16: MapReduce for Parallel Trace Validation of LTL Properties

Login

Page 17: MapReduce for Parallel Trace Validation of LTL Properties

Login

Three successive login attemptsshould trigger an alarm

Page 18: MapReduce for Parallel Trace Validation of LTL Properties
Page 19: MapReduce for Parallel Trace Validation of LTL Properties

Receive order

Page 20: MapReduce for Parallel Trace Validation of LTL Properties

Receive orderReady?

Page 21: MapReduce for Parallel Trace Validation of LTL Properties

Receive orderReady? Yes

Page 22: MapReduce for Parallel Trace Validation of LTL Properties

Receive orderReady? Yes

File order

No Ship

Page 23: MapReduce for Parallel Trace Validation of LTL Properties

Receive orderReady? Yes

File order

No Ship

A received order must eventuallybe shipped

Page 24: MapReduce for Parallel Trace Validation of LTL Properties

A

0 1 2 3 4 . . .

a a b c b

A trace m is a mapping from ℕ tothe set of events :

ALet be a set of event symbols.

Page 25: MapReduce for Parallel Trace Validation of LTL Properties

A

Groundterms

→¬∧→¬∧

Booleanconnectives

Temporaloperators

XGFU

nextgloballyeventuallyuntil

+ +

= Linear Temporal Logic

Page 26: MapReduce for Parallel Trace Validation of LTL Properties

A

0 1 2 3 4 . . .

a a b c b

ΦLet be the set of all possible LTL formulas.

The function ℒ : Φ → 2 labels each state witha set of LTL formulas

Page 27: MapReduce for Parallel Trace Validation of LTL Properties

a∧b

a∧b

G (a→b)

b∨c

b∨c

a∧b

G (a→b)

ℒ(a∧b) = {0,1,4,...}Example:

A

0 1 2 3 4 . . .

a a b c b

ΦLet be the set of all possible LTL formulas.

The function ℒ : Φ → 2 labels each state witha set of LTL formulas

Page 28: MapReduce for Parallel Trace Validation of LTL Properties

i ∈ ℒ(φ∨ψ) ⇔ i ∈ ℒ(φ) or i ∈ ℒ(ψ)i ∈ ℒ(φ∧ψ) ⇔ i ∈ ℒ(φ) and i ∈ ℒ(ψ)i ∈ ℒ(¬φ) ⇔ i ∉ ℒ(φ)

i ∈ ℒ(G φ) ⇔ j ∈ ℒ(φ) for all j ≥ ii ∈ ℒ(X φ) ⇔ i+1 ∈ ℒ(φ)

i ∈ ℒ(F φ) ⇔ j ∈ ℒ(φ) for some j ≥ ii ∈ ℒ(φ U ψ) ⇔ j ∈ ℒ(ψ) for some j ≥ i and

k ∈ ℒ(φ) for all j ≥ k ≥ i

i ∈ ℒ(a) ⇔ m(i) = a

Page 29: MapReduce for Parallel Trace Validation of LTL Properties

i ∈ ℒ(φ) exactly when the tracem(i), m(i+1), ... satisfies φ

Theorem

ψφ σ

0 1 2 3 4 . . .

ψφ σ

Page 30: MapReduce for Parallel Trace Validation of LTL Properties

i ∈ ℒ(φ) exactly when the tracem(i), m(i+1), ... satisfies φ

Theorem

ψφ σ

0 1 2 3 4 . . .

ψφ σ

0 ∈ ℒ(φ) ⇔ m ⊧ φ

Therefore...

Page 31: MapReduce for Parallel Trace Validation of LTL Properties

A call to next must be followed by a callto hasNext

No CartCreate request can occurbefore a LoginResponse message

A received order must eventuallybe shipped

Three successive login attempts shouldtrigger an alarm

Page 32: MapReduce for Parallel Trace Validation of LTL Properties

A call to next must be followed by a callto hasNext

No CartCreate request can occurbefore a LoginResponse message

A received order must eventuallybe shipped

Three successive login attempts shouldtrigger an alarm

G (next → X hasNext)

Page 33: MapReduce for Parallel Trace Validation of LTL Properties

A call to next must be followed by a callto hasNext

No CartCreate request can occurbefore a LoginResponse message

A received order must eventuallybe shipped

Three successive login attempts shouldtrigger an alarm

G (next → X hasNext)

¬ CartCreate U hasNext

Page 34: MapReduce for Parallel Trace Validation of LTL Properties

A call to next must be followed by a callto hasNext

No CartCreate request can occurbefore a LoginResponse message

A received order must eventuallybe shipped

Three successive login attempts shouldtrigger an alarm

G (next → X hasNext)

¬ CartCreate U hasNext

G (receive → F ship)

Page 35: MapReduce for Parallel Trace Validation of LTL Properties

A call to next must be followed by a callto hasNext

No CartCreate request can occurbefore a LoginResponse message

A received order must eventuallybe shipped

Three successive login attempts shouldtrigger an alarm

G (next → X hasNext)

¬ CartCreate U hasNext

G (receive → F ship)

G ¬(fail ∧ (X (fail ∧ X fail)))

Page 36: MapReduce for Parallel Trace Validation of LTL Properties

Iterator<T> Java MOP

Page 37: MapReduce for Parallel Trace Validation of LTL Properties

21 3 4 5

The trace mustbe read linearly

The algorithm works on asingle process / core / sitex1

Page 38: MapReduce for Parallel Trace Validation of LTL Properties

1

10

100

1,000

10,000

100,000

1,000,000

10,000,000

1970 1980 1990 2000 2010

Page 39: MapReduce for Parallel Trace Validation of LTL Properties

1

10

100

1,000

10,000

100,000

1,000,000

10,000,000

1970 1980 1990 2000 2010

Transistors (x1000)

Page 40: MapReduce for Parallel Trace Validation of LTL Properties

1

10

100

1,000

10,000

100,000

1,000,000

10,000,000

1970 1980 1990 2000 2010

Transistors (x1000)

CPU Speed

(MHz)

Page 41: MapReduce for Parallel Trace Validation of LTL Properties

f∞PageRank

Page 42: MapReduce for Parallel Trace Validation of LTL Properties

a 1

KeyValue

Tuple (baaah){

Page 43: MapReduce for Parallel Trace Validation of LTL Properties

Data source

Page 44: MapReduce for Parallel Trace Validation of LTL Properties

Data source

IIInput reader

Page 45: MapReduce for Parallel Trace Validation of LTL Properties

Data source

IIInput reader

. . .2 7a z

Page 46: MapReduce for Parallel Trace Validation of LTL Properties

2a. . . 2a

Page 47: MapReduce for Parallel Trace Validation of LTL Properties

2a. . . 2a M

Mapper

Page 48: MapReduce for Parallel Trace Validation of LTL Properties

2a. . . 2a M

Mapper

2a. . .6w

Page 49: MapReduce for Parallel Trace Validation of LTL Properties

a 23 g

a

3b3 b

2a. . . 2a M

Mapper

2a. . .6w

Page 50: MapReduce for Parallel Trace Validation of LTL Properties

3 aa 2

3a3a

b 9 3 ae 83a

bb

a

ab

Page 51: MapReduce for Parallel Trace Validation of LTL Properties

Shuffling

3 ae 8

ba

. . .

b

. . .

b

aa

bd

a

a

a 2

3a

b

b 9

Page 52: MapReduce for Parallel Trace Validation of LTL Properties

aa2a 2 3a

b9b

Page 53: MapReduce for Parallel Trace Validation of LTL Properties

aa2a 2 3a

b9b

Ra

Rb

Reducer

Page 54: MapReduce for Parallel Trace Validation of LTL Properties

aa2a 2 3a

b9b

Ra

Rb

Reducer

. . .z 8 x 2

e 7 i 0

Page 55: MapReduce for Parallel Trace Validation of LTL Properties

a b a a b a

Page 56: MapReduce for Parallel Trace Validation of LTL Properties

a b a a b a

ab

ba

a a

Page 57: MapReduce for Parallel Trace Validation of LTL Properties

a b a a b a

ab

ba

a a I

Page 58: MapReduce for Parallel Trace Validation of LTL Properties

a b a a b a

ab

ba

a a I〈a,1〉

〈a,1〉

Page 59: MapReduce for Parallel Trace Validation of LTL Properties

a b a a b a

ab

ba

a a I〈a,1〉

〈a,1〉

〈b,1〉

〈a,1〉I

I〈a,1〉

〈b,1〉

Page 60: MapReduce for Parallel Trace Validation of LTL Properties

a b a a b a

ab

ba

a a I〈a,1〉

〈a,1〉

〈b,1〉

〈a,1〉I

I〈a,1〉

〈b,1〉

Page 61: MapReduce for Parallel Trace Validation of LTL Properties

a b a a b a

ab

ba

a a I〈a,1〉

〈a,1〉

〈b,1〉

〈a,1〉I

I〈a,1〉

〈b,1〉

Page 62: MapReduce for Parallel Trace Validation of LTL Properties

a b a a b a

ab

ba

a a I〈a,1〉

〈a,1〉

〈b,1〉

〈a,1〉I

I〈a,1〉

〈b,1〉

Ra

Page 63: MapReduce for Parallel Trace Validation of LTL Properties

a b a a b a

ab

ba

a a I〈a,1〉

〈a,1〉

〈b,1〉

〈a,1〉I

I〈a,1〉

〈b,1〉

Ra 〈a,4〉

Page 64: MapReduce for Parallel Trace Validation of LTL Properties

a b a a b a

ab

ba

a a I〈a,1〉

〈a,1〉

〈b,1〉

〈a,1〉I

I〈a,1〉

〈b,1〉

Ra 〈a,4〉

〈b,2〉Rb

Page 65: MapReduce for Parallel Trace Validation of LTL Properties

a b a a b a

ab

ba

a a I〈a,1〉

〈a,1〉

〈b,1〉

〈a,1〉I

I〈a,1〉

〈b,1〉

Ra 〈a,4〉

〈b,2〉Rb

Page 66: MapReduce for Parallel Trace Validation of LTL Properties

GG ∧∧

Subformula

Superformula

Formula

Subformula Subformula

Superformula

Page 67: MapReduce for Parallel Trace Validation of LTL Properties

1

0

2

3

a c b

¬ F

G

1

0

2

4Height

→3

Page 68: MapReduce for Parallel Trace Validation of LTL Properties

1

0

2

3

a c b

¬ F

G

1

0

2

4Height

→3

¬c has height 1G ((a ∧¬c) → F b) has height 4

Page 69: MapReduce for Parallel Trace Validation of LTL Properties

i ∈ ℒ(φ∨ψ) ⇔ i ∈ ℒ(φ) or i ∈ ℒ(ψ)i ∈ ℒ(φ∧ψ) ⇔ i ∈ ℒ(φ) and i ∈ ℒ(ψ)i ∈ ℒ(¬φ) ⇔ i ∉ ℒ(φ)

i ∈ ℒ(G φ) ⇔ j ∈ ℒ(φ) for all j ≥ ii ∈ ℒ(X φ) ⇔ i+1 ∈ ℒ(φ)

i ∈ ℒ(F φ) ⇔ j ∈ ℒ(φ) for some j ≥ ii ∈ ℒ(φ U ψ) ⇔ j ∈ ℒ(ψ) for some j ≥ i and

k ∈ ℒ(φ) for all j ≥ k ≥ i

i ∈ ℒ(a) ⇔ m(i) = a

Page 70: MapReduce for Parallel Trace Validation of LTL Properties

The labelling of a formula depends onlyon labellings of formulas of strictly lower height

i ∈ ℒ(φ∨ψ) ⇔ i ∈ ℒ(φ) or i ∈ ℒ(ψ)i ∈ ℒ(φ∧ψ) ⇔ i ∈ ℒ(φ) and i ∈ ℒ(ψ)i ∈ ℒ(¬φ) ⇔ i ∉ ℒ(φ)

i ∈ ℒ(G φ) ⇔ j ∈ ℒ(φ) for all j ≥ ii ∈ ℒ(X φ) ⇔ i+1 ∈ ℒ(φ)

i ∈ ℒ(F φ) ⇔ j ∈ ℒ(φ) for some j ≥ ii ∈ ℒ(φ U ψ) ⇔ j ∈ ℒ(ψ) for some j ≥ i and

k ∈ ℒ(φ) for all j ≥ k ≥ i

i ∈ ℒ(a) ⇔ m(i) = a

Page 71: MapReduce for Parallel Trace Validation of LTL Properties

The labelling of a formula depends onlyon labellings of formulas of strictly lower height

All labellings of formulas of same height are independent

i ∈ ℒ(φ∨ψ) ⇔ i ∈ ℒ(φ) or i ∈ ℒ(ψ)i ∈ ℒ(φ∧ψ) ⇔ i ∈ ℒ(φ) and i ∈ ℒ(ψ)i ∈ ℒ(¬φ) ⇔ i ∉ ℒ(φ)

i ∈ ℒ(G φ) ⇔ j ∈ ℒ(φ) for all j ≥ ii ∈ ℒ(X φ) ⇔ i+1 ∈ ℒ(φ)

i ∈ ℒ(F φ) ⇔ j ∈ ℒ(φ) for some j ≥ ii ∈ ℒ(φ U ψ) ⇔ j ∈ ℒ(ψ) for some j ≥ i and

k ∈ ℒ(φ) for all j ≥ k ≥ i

i ∈ ℒ(a) ⇔ m(i) = a

Page 72: MapReduce for Parallel Trace Validation of LTL Properties

The labelling of a formula depends onlyon labellings of formulas of strictly lower height

All labellings of formulas of same height are independent

⇒ They can be computed in parallel

i ∈ ℒ(φ∨ψ) ⇔ i ∈ ℒ(φ) or i ∈ ℒ(ψ)i ∈ ℒ(φ∧ψ) ⇔ i ∈ ℒ(φ) and i ∈ ℒ(ψ)i ∈ ℒ(¬φ) ⇔ i ∉ ℒ(φ)

i ∈ ℒ(G φ) ⇔ j ∈ ℒ(φ) for all j ≥ ii ∈ ℒ(X φ) ⇔ i+1 ∈ ℒ(φ)

i ∈ ℒ(F φ) ⇔ j ∈ ℒ(φ) for some j ≥ ii ∈ ℒ(φ U ψ) ⇔ j ∈ ℒ(ψ) for some j ≥ i and

k ∈ ℒ(φ) for all j ≥ k ≥ i

i ∈ ℒ(a) ⇔ m(i) = a

Page 73: MapReduce for Parallel Trace Validation of LTL Properties

M

Page 74: MapReduce for Parallel Trace Validation of LTL Properties

Input: tuples 〈φ,(n,i)〉

M

Page 75: MapReduce for Parallel Trace Validation of LTL Properties

Input: tuples 〈φ,(n,i)〉

“ n ∈ ℒ(φ), and the last cycle has evaluatedlabellings for formulas of height i ”

M

Page 76: MapReduce for Parallel Trace Validation of LTL Properties

Input: tuples 〈φ,(n,i)〉

“ n ∈ ℒ(φ), and the last cycle has evaluatedlabellings for formulas of height i ”

M “Lift” ℒ(φ) to superformulas of φ

Page 77: MapReduce for Parallel Trace Validation of LTL Properties

Input: tuples 〈φ,(n,i)〉

“ n ∈ ℒ(φ), and the last cycle has evaluatedlabellings for formulas of height i ”

M “Lift” ℒ(φ) to superformulas of φ

Output: tuples 〈ψ,(φ,n,i)〉

Page 78: MapReduce for Parallel Trace Validation of LTL Properties

“ n ∈ ℒ(φ), the last cycle has evaluatedlabellings for formulas of height i, andφ is a subformula of ψ ”

Input: tuples 〈φ,(n,i)〉

“ n ∈ ℒ(φ), and the last cycle has evaluatedlabellings for formulas of height i ”

M “Lift” ℒ(φ) to superformulas of φ

Output: tuples 〈ψ,(φ,n,i)〉

Page 79: MapReduce for Parallel Trace Validation of LTL Properties

Page 80: MapReduce for Parallel Trace Validation of LTL Properties

Input:〈ψ,(φ,n,i)〉

Page 81: MapReduce for Parallel Trace Validation of LTL Properties

Input:〈ψ,(φ,n,i)〉

“ n ∈ ℒ(φ), the last cyclehas evaluated labellings forformulas of height i, andφ is a subformula of ψ ”

Page 82: MapReduce for Parallel Trace Validation of LTL Properties

Input:〈ψ,(φ,n,i)〉

Compute ℒ(ψ)

“ n ∈ ℒ(φ), the last cyclehas evaluated labellings forformulas of height i, andφ is a subformula of ψ ”

Page 83: MapReduce for Parallel Trace Validation of LTL Properties

Input:〈ψ,(φ,n,i)〉

Compute ℒ(ψ)

“ n ∈ ℒ(φ), the last cyclehas evaluated labellings forformulas of height i, andφ is a subformula of ψ ”

Output:〈ψ,(n,i+1)〉

Page 84: MapReduce for Parallel Trace Validation of LTL Properties

Input:〈ψ,(φ,n,i)〉

Compute ℒ(ψ)

“ n ∈ ℒ(φ), the last cyclehas evaluated labellings forformulas of height i, andφ is a subformula of ψ ”

Output:〈ψ,(n,i+1)〉

“ n ∈ ℒ(ψ), and the lastcycle has evaluatedlabellings for formulas of height i+1

Page 85: MapReduce for Parallel Trace Validation of LTL Properties

I

Page 86: MapReduce for Parallel Trace Validation of LTL Properties

I

Input: events (a,n)

Page 87: MapReduce for Parallel Trace Validation of LTL Properties

I

Input: events (a,n)

Output: tuples 〈ψ,(a,n,0)〉

. . .

“ n ∈ ℒ(a), the last cycle has evaluatedlabellings for formulas of height 0, anda is a subformula of ψ ”

Page 88: MapReduce for Parallel Trace Validation of LTL Properties

W

Page 89: MapReduce for Parallel Trace Validation of LTL Properties

Input: 〈ψ,(n,i)〉

W

Page 90: MapReduce for Parallel Trace Validation of LTL Properties

Input: 〈ψ,(n,i)〉

W

Output:

True if 〈ψ,(0,i)〉is read

False otherwise

Page 91: MapReduce for Parallel Trace Validation of LTL Properties

1

2

3

. . .II

RR

R

RR

R

R

RW

. . .

Page 92: MapReduce for Parallel Trace Validation of LTL Properties

1

2

3

. . .II

RR

R

RR

R

R

RW

. . .

InputReaders generate the first tuples fromthe trace chunks

Page 93: MapReduce for Parallel Trace Validation of LTL Properties

1

2

3

. . .II

RR

R

RR

R

R

RW

. . .

The tuples are shuffled to reducers that compute thelabelling ℒ for formulas of height 1

Page 94: MapReduce for Parallel Trace Validation of LTL Properties

1

2

3

. . .II

RR

R

RR

R

R

RW

. . .

Mappers copy the labellings into tuples marked bysuperformulas of height 2

Page 95: MapReduce for Parallel Trace Validation of LTL Properties

1

2

3

. . .II

RR

R

RR

R

R

RW

. . .

Each reducer computes the labelling of a formula ofheight 2 from the labelling of its subformulas

Page 96: MapReduce for Parallel Trace Validation of LTL Properties

1

2

3

. . .II

RR

R

RR

R

R

RW

. . .

Mappers copy the labellings into tuples marked bysuperformulas of height 3

Page 97: MapReduce for Parallel Trace Validation of LTL Properties

1

2

3

. . .II

RR

R

RR

R

R

RW

. . .

Each reducer computes the labelling of a formula ofheight 3 from the labelling of its subformulas

Page 98: MapReduce for Parallel Trace Validation of LTL Properties

1

2

3

. . .II

RR

R

RR

R

R

RW

. . .

An output writer collects the resulting tuples, andoutputs “true” if it encounters a tuple for state 0

Page 99: MapReduce for Parallel Trace Validation of LTL Properties
Page 100: MapReduce for Parallel Trace Validation of LTL Properties

⊨ G (¬a → F b)?

a a b c b a

Page 101: MapReduce for Parallel Trace Validation of LTL Properties

⊨ G (¬a → F b)?

a a b c b a

(a,0)

(a,1)

(a,5)

(b,2)

(c,3)

(b,4)

0HEIGHT

Page 102: MapReduce for Parallel Trace Validation of LTL Properties

⊨ G (¬a → F b)?

a a b c b a

(a,0)

(a,1)

(a,5)

(b,2)

(c,3)

(b,4)

0HEIGHT

I

I

I

Page 103: MapReduce for Parallel Trace Validation of LTL Properties

⊨ G (¬a → F b)?

a a b c b a

(a,0)

(a,1)

(a,5)

(b,2)

(c,3)

(b,4)

0HEIGHT

I

I

I

〈¬a,(a,0)〉

〈¬a,(a,1)〉

〈¬a,(a,5)〉

〈F b,(b,4)〉

〈F b,(b,2)〉

1HEIGHT

Page 104: MapReduce for Parallel Trace Validation of LTL Properties

⊨ G (¬a → F b)?

a a b c b a

(a,0)

(a,1)

(a,5)

(b,2)

(c,3)

(b,4)

0HEIGHT

I

I

I

〈¬a,(a,0)〉

〈¬a,(a,1)〉

〈¬a,(a,5)〉

〈F b,(b,4)〉

〈F b,(b,2)〉

1HEIGHT

R¬a

RF b

Page 105: MapReduce for Parallel Trace Validation of LTL Properties

⊨ G (¬a → F b)?

a a b c b a

(a,0)

(a,1)

(a,5)

(b,2)

(c,3)

(b,4)

0HEIGHT

I

I

I

〈¬a,(a,0)〉

〈¬a,(a,1)〉

〈¬a,(a,5)〉

〈F b,(b,4)〉

〈F b,(b,2)〉

1HEIGHT

R¬a

RF b

〈¬a,2〉〈¬a,3〉〈¬a,4〉

〈F b,0〉

〈F b,1〉

〈F b,2〉

〈F b,3〉

〈F b,4〉

Page 106: MapReduce for Parallel Trace Validation of LTL Properties

⊨ G (¬a → F b)?

a a b c b a

〈¬a,2〉〈¬a,3〉〈¬a,4〉

〈F b,0〉〈F b,1〉〈F b,2〉

〈F b,3〉〈F b,4〉

M

M

M

2HEIGHT

Page 107: MapReduce for Parallel Trace Validation of LTL Properties

⊨ G (¬a → F b)?

a a b c b a

〈¬a,2〉〈¬a,3〉〈¬a,4〉

〈F b,0〉〈F b,1〉〈F b,2〉

〈F b,3〉〈F b,4〉

M

M

M

2HEIGHT

〈¬a → F b,(¬a,2)〉〈¬a → F b,(¬a,3)〉〈¬a → F b,(¬a,4)〉

〈¬a → F b,(F b,0)〉〈¬a → F b,(F b,1)〉〈¬a → F b,(F b,2)〉

〈¬a → F b,(F b,3)〉

〈¬a → F b,(F b,4)〉

Page 108: MapReduce for Parallel Trace Validation of LTL Properties

⊨ G (¬a → F b)?

a a b c b a

〈¬a,2〉〈¬a,3〉〈¬a,4〉

〈F b,0〉〈F b,1〉〈F b,2〉

〈F b,3〉〈F b,4〉

M

M

M

2HEIGHT

〈¬a → F b,(¬a,2)〉〈¬a → F b,(¬a,3)〉〈¬a → F b,(¬a,4)〉

〈¬a → F b,(F b,0)〉〈¬a → F b,(F b,1)〉〈¬a → F b,(F b,2)〉

〈¬a → F b,(F b,3)〉

〈¬a → F b,(F b,4)〉

R¬a →

F b

Page 109: MapReduce for Parallel Trace Validation of LTL Properties

⊨ G (¬a → F b)?

a a b c b a

〈¬a,2〉〈¬a,3〉〈¬a,4〉

〈F b,0〉〈F b,1〉〈F b,2〉

〈F b,3〉〈F b,4〉

M

M

M

2HEIGHT

〈¬a → F b,(¬a,2)〉〈¬a → F b,(¬a,3)〉〈¬a → F b,(¬a,4)〉

〈¬a → F b,(F b,0)〉〈¬a → F b,(F b,1)〉〈¬a → F b,(F b,2)〉

〈¬a → F b,(F b,3)〉

〈¬a → F b,(F b,4)〉

R¬a →

F b

〈¬a → F b,2〉〈¬a → F b,1〉〈¬a → F b,0〉

〈¬a → F b,3〉〈¬a → F b,4〉〈¬a → F b,5〉

Page 110: MapReduce for Parallel Trace Validation of LTL Properties

⊨ G (¬a → F b)?

a a b c b a

M

M

M

〈¬a → F b,2〉

〈¬a → F b,1〉〈¬a → F b,0〉

〈¬a → F b,3〉

〈¬a → F b,4〉〈¬a → F b,5〉

3HEIGHT

Page 111: MapReduce for Parallel Trace Validation of LTL Properties

⊨ G (¬a → F b)?

a a b c b a

M

M

M

〈¬a → F b,2〉

〈¬a → F b,1〉〈¬a → F b,0〉

〈¬a → F b,3〉

〈¬a → F b,4〉〈¬a → F b,5〉

3HEIGHT

〈G (¬a → F b), (¬a → F b,0)〉

〈G (¬a → F b), (¬a → F b,1)〉

〈G (¬a → F b), (¬a → F b,2)〉

〈G (¬a → F b), (¬a → F b,3)〉

〈G (¬a → F b), (¬a → F b,4)〉

〈G (¬a → F b), (¬a → F b,5)〉

Page 112: MapReduce for Parallel Trace Validation of LTL Properties

⊨ G (¬a → F b)?

a a b c b a

M

M

M

〈¬a → F b,2〉

〈¬a → F b,1〉〈¬a → F b,0〉

〈¬a → F b,3〉

〈¬a → F b,4〉〈¬a → F b,5〉

3HEIGHT

〈G (¬a → F b), (¬a → F b,0)〉

〈G (¬a → F b), (¬a → F b,1)〉

〈G (¬a → F b), (¬a → F b,2)〉

〈G (¬a → F b), (¬a → F b,3)〉

〈G (¬a → F b), (¬a → F b,4)〉

〈G (¬a → F b), (¬a → F b,5)〉

RG (¬a→ F b)

Page 113: MapReduce for Parallel Trace Validation of LTL Properties

⊨ G (¬a → F b)?

a a b c b a

M

M

M

〈¬a → F b,2〉

〈¬a → F b,1〉〈¬a → F b,0〉

〈¬a → F b,3〉

〈¬a → F b,4〉〈¬a → F b,5〉

3HEIGHT

〈G (¬a → F b), (¬a → F b,0)〉

〈G (¬a → F b), (¬a → F b,1)〉

〈G (¬a → F b), (¬a → F b,2)〉

〈G (¬a → F b), (¬a → F b,3)〉

〈G (¬a → F b), (¬a → F b,4)〉

〈G (¬a → F b), (¬a → F b,5)〉

RG (¬a→ F b)

〈G (¬a → F b),0〉〈G (¬a → F b),1〉〈G (¬a → F b),2〉〈G (¬a → F b),3〉〈G (¬a → F b),4〉〈G (¬a → F b),5〉

Page 114: MapReduce for Parallel Trace Validation of LTL Properties

⊨ G (¬a → F b)?

a a b c b a

W〈G (¬a → F b),0〉〈G (¬a → F b),1〉〈G (¬a → F b),2〉〈G (¬a → F b),3〉〈G (¬a → F b),4〉〈G (¬a → F b),5〉

4HEIGHT

Page 115: MapReduce for Parallel Trace Validation of LTL Properties

⊨ G (¬a → F b)?

a a b c b a

W〈G (¬a → F b),0〉〈G (¬a → F b),1〉〈G (¬a → F b),2〉〈G (¬a → F b),3〉〈G (¬a → F b),4〉〈G (¬a → F b),5〉

4HEIGHT

True

Page 116: MapReduce for Parallel Trace Validation of LTL Properties

The trace can be stored inseparate (and non-contiguous)chunks

Mappers and reducers of agiven height can operate

in parallel

� (a,0) (b,2)(a,1) (c,3)

(a,5) (b,4)

�R

RR

MM

M

Page 117: MapReduce for Parallel Trace Validation of LTL Properties

Tests on 500 randomly-generated traces

From 1 to 100,000 events

Each event contains 10 parametersnamed p₀ to p₉ with 10 possible values

Page 118: MapReduce for Parallel Trace Validation of LTL Properties

G p₀ ≠ 0

G (p₀ = 0 → X p₁ = 0)

∀x ∈ [0,9] : G (p₀ = x → X p₁ = x)

∃m ∈ [0,9] : ∀x ∈ [0,9] : G (p = x → X X p ≠ x)m m

1

2

3

4

Validation of 4 LTL formulas:

Page 119: MapReduce for Parallel Trace Validation of LTL Properties

PropertyTuples

Time/eventSequential ratio

Inferred time

55 k19 μs100%19 μs

120 k23 μs92%21 μs

600 k75 μs92%14 μs

5 M985 μs

3%30 μs

1 2 3 4

Page 120: MapReduce for Parallel Trace Validation of LTL Properties

MQuestions?