formal veri cation of data-intensive applications through...

79
Formal Verification of Data-Intensive Applications through Model Checking Modulo Theories Marcello M. Bersani 1 ad˘ alina Era¸ scu 2 Francesco Marconi 1 Silvio Ghilardi 3 Matteo Rossi 1 1 DEIB, Politecnico di Milano, Milano, Italy 2 West University of Timi¸ soara and Institute eAustria, Timi¸ soara, Romania 3 Universit` a degli Studi di Milano, Milano, Italy [email protected] July 13, 2017 This research was partially supported by Horizon 2020 project no. 644869 (DICE).

Upload: others

Post on 23-May-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Formal Verification of Data-Intensive Applicationsthrough Model Checking Modulo Theories

Marcello M. Bersani1 Madalina Erascu2 Francesco Marconi1

Silvio Ghilardi3 Matteo Rossi1

1DEIB, Politecnico di Milano, Milano, Italy

2West University of Timisoara and Institute eAustria,Timisoara, Romania

3Universita degli Studi di Milano, Milano, Italy

[email protected]

July 13, 2017

This research was partially supported by Horizon 2020 project no. 644869 (DICE).

Page 2: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Big Data is everywhere!

Software market switches to Big Data: popular technologies such as Spark, Storm,Hadoop, and NoSQL stimulates Big Data adoption.

Business issue: 65% of Big Data projects still fail (Capgemini Report 2015)

Solution:Integrating Quality Assurance (QA) practices in application development

DICE project (http://www.dice-h2020.eu/) aims to define methods and tools forthe data-aware quality-driven development of Date Intensive Applications (DIAs).

Prediction of quality properties of DIAs:

I Performance, reliability, safety properties

I Helpful early in the DIA design

I Assess the potential impact of architectural changes (iteratively)

Page 3: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Big Data is everywhere!

Software market switches to Big Data: popular technologies such as Spark, Storm,Hadoop, and NoSQL stimulates Big Data adoption.

Business issue: 65% of Big Data projects still fail (Capgemini Report 2015)

Solution:Integrating Quality Assurance (QA) practices in application development

DICE project (http://www.dice-h2020.eu/) aims to define methods and tools forthe data-aware quality-driven development of Date Intensive Applications (DIAs).

Prediction of quality properties of DIAs:

I Performance, reliability, safety properties

I Helpful early in the DIA design

I Assess the potential impact of architectural changes (iteratively)

Page 4: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Big Data is everywhere!

Software market switches to Big Data: popular technologies such as Spark, Storm,Hadoop, and NoSQL stimulates Big Data adoption.

Business issue: 65% of Big Data projects still fail (Capgemini Report 2015)

Solution:Integrating Quality Assurance (QA) practices in application development

DICE project (http://www.dice-h2020.eu/) aims to define methods and tools forthe data-aware quality-driven development of Date Intensive Applications (DIAs).

Prediction of quality properties of DIAs:

I Performance, reliability, safety properties

I Helpful early in the DIA design

I Assess the potential impact of architectural changes (iteratively)

Page 5: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Big Data is everywhere!

Software market switches to Big Data: popular technologies such as Spark, Storm,Hadoop, and NoSQL stimulates Big Data adoption.

Business issue: 65% of Big Data projects still fail (Capgemini Report 2015)

Solution:Integrating Quality Assurance (QA) practices in application development

DICE project (http://www.dice-h2020.eu/) aims to define methods and tools forthe data-aware quality-driven development of Date Intensive Applications (DIAs).

Prediction of quality properties of DIAs:

I Performance, reliability, safety properties

I Helpful early in the DIA design

I Assess the potential impact of architectural changes (iteratively)

Page 6: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Big Data is everywhere!

Software market switches to Big Data: popular technologies such as Spark, Storm,Hadoop, and NoSQL stimulates Big Data adoption.

Business issue: 65% of Big Data projects still fail (Capgemini Report 2015)

Solution:Integrating Quality Assurance (QA) practices in application development

DICE project (http://www.dice-h2020.eu/) aims to define methods and tools forthe data-aware quality-driven development of Date Intensive Applications (DIAs).

Prediction of quality properties of DIAs:

I Performance, reliability, safety properties

I Helpful early in the DIA design

I Assess the potential impact of architectural changes (iteratively)

Page 7: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Big Data is everywhere!

Software market switches to Big Data: popular technologies such as Spark, Storm,Hadoop, and NoSQL stimulates Big Data adoption.

Business issue: 65% of Big Data projects still fail (Capgemini Report 2015)

Solution:Integrating Quality Assurance (QA) practices in application development

DICE project (http://www.dice-h2020.eu/) aims to define methods and tools forthe data-aware quality-driven development of Date Intensive Applications (DIAs).

Prediction of quality properties of DIAs:

I Performance, reliability, safety properties

I Helpful early in the DIA design

I Assess the potential impact of architectural changes (iteratively)

Page 8: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Big Data is everywhere!

Software market switches to Big Data: popular technologies such as Spark, Storm,Hadoop, and NoSQL stimulates Big Data adoption.

Business issue: 65% of Big Data projects still fail (Capgemini Report 2015)

Solution:Integrating Quality Assurance (QA) practices in application development

DICE project (http://www.dice-h2020.eu/) aims to define methods and tools forthe data-aware quality-driven development of Date Intensive Applications (DIAs).

Prediction of quality properties of DIAs:

I Performance, reliability, safety properties

I Helpful early in the DIA design

I Assess the potential impact of architectural changes (iteratively)

Page 9: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Big Data is everywhere!

Software market switches to Big Data: popular technologies such as Spark, Storm,Hadoop, and NoSQL stimulates Big Data adoption.

Business issue: 65% of Big Data projects still fail (Capgemini Report 2015)

Solution:Integrating Quality Assurance (QA) practices in application development

DICE project (http://www.dice-h2020.eu/) aims to define methods and tools forthe data-aware quality-driven development of Date Intensive Applications (DIAs).

Prediction of quality properties of DIAs:

I Performance, reliability, safety properties

I Helpful early in the DIA design

I Assess the potential impact of architectural changes (iteratively)

Page 10: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Focus: Apache Storm technology

Apache Storm (storm.apache.org) technology – used in applications that needefficient processing of unbounded streams of data, such as event log monitoring,real-time data analytics and data normalization.

Applications that use Storm: Yahoo, Twitter, Spotify, The Weather Channel, etc.

Key concepts:

I streams – infinite sequences of tuples that are processed by the applicationI topologies – directed graphs

I nodes represent operations performed over the application dataI edges indicate how such operations are combined

Types of nodes:

I input nodes bring information into the application from the environment: spouts

I computational nodes implement the logic of the application by processinginformation and producing a result: bolts

Page 11: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Focus: Apache Storm technology

Apache Storm (storm.apache.org) technology – used in applications that needefficient processing of unbounded streams of data, such as event log monitoring,real-time data analytics and data normalization.

Applications that use Storm: Yahoo, Twitter, Spotify, The Weather Channel, etc.

Key concepts:

I streams – infinite sequences of tuples that are processed by the applicationI topologies – directed graphs

I nodes represent operations performed over the application dataI edges indicate how such operations are combined

Types of nodes:

I input nodes bring information into the application from the environment: spouts

I computational nodes implement the logic of the application by processinginformation and producing a result: bolts

Page 12: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Focus: Apache Storm technology

Apache Storm (storm.apache.org) technology – used in applications that needefficient processing of unbounded streams of data, such as event log monitoring,real-time data analytics and data normalization.

Applications that use Storm: Yahoo, Twitter, Spotify, The Weather Channel, etc.

Key concepts:

I streams – infinite sequences of tuples that are processed by the applicationI topologies – directed graphs

I nodes represent operations performed over the application dataI edges indicate how such operations are combined

Types of nodes:

I input nodes bring information into the application from the environment: spouts

I computational nodes implement the logic of the application by processinginformation and producing a result: bolts

Page 13: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Focus: Apache Storm technology

Apache Storm (storm.apache.org) technology – used in applications that needefficient processing of unbounded streams of data, such as event log monitoring,real-time data analytics and data normalization.

Applications that use Storm: Yahoo, Twitter, Spotify, The Weather Channel, etc.

Key concepts:

I streams – infinite sequences of tuples that are processed by the applicationI topologies – directed graphs

I nodes represent operations performed over the application dataI edges indicate how such operations are combined

Types of nodes:

I input nodes bring information into the application from the environment: spouts

I computational nodes implement the logic of the application by processinginformation and producing a result: bolts

Page 14: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Focus: Apache Storm technology

Apache Storm (storm.apache.org) technology – used in applications that needefficient processing of unbounded streams of data, such as event log monitoring,real-time data analytics and data normalization.

Applications that use Storm: Yahoo, Twitter, Spotify, The Weather Channel, etc.

Key concepts:

I streams – infinite sequences of tuples that are processed by the applicationI topologies – directed graphs

I nodes represent operations performed over the application dataI edges indicate how such operations are combined

Types of nodes:

I input nodes bring information into the application from the environment: spouts

I computational nodes implement the logic of the application by processinginformation and producing a result: bolts

Page 15: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Focus: Apache Storm technology

Apache Storm (storm.apache.org) technology – used in applications that needefficient processing of unbounded streams of data, such as event log monitoring,real-time data analytics and data normalization.

Applications that use Storm: Yahoo, Twitter, Spotify, The Weather Channel, etc.

Key concepts:

I streams – infinite sequences of tuples that are processed by the applicationI topologies – directed graphs

I nodes represent operations performed over the application dataI edges indicate how such operations are combined

Types of nodes:

I input nodes bring information into the application from the environment: spouts

I computational nodes implement the logic of the application by processinginformation and producing a result: bolts

Page 16: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Focus: Apache Storm technology

Apache Storm (storm.apache.org) technology – used in applications that needefficient processing of unbounded streams of data, such as event log monitoring,real-time data analytics and data normalization.

Applications that use Storm: Yahoo, Twitter, Spotify, The Weather Channel, etc.

Key concepts:

I streams – infinite sequences of tuples that are processed by the applicationI topologies – directed graphs

I nodes represent operations performed over the application dataI edges indicate how such operations are combined

Types of nodes:

I input nodes bring information into the application from the environment: spouts

I computational nodes implement the logic of the application by processinginformation and producing a result: bolts

Page 17: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Focus: Apache Storm technology

Apache Storm (storm.apache.org) technology – used in applications that needefficient processing of unbounded streams of data, such as event log monitoring,real-time data analytics and data normalization.

Applications that use Storm: Yahoo, Twitter, Spotify, The Weather Channel, etc.

Key concepts:

I streams – infinite sequences of tuples that are processed by the applicationI topologies – directed graphs

I nodes represent operations performed over the application dataI edges indicate how such operations are combined

Types of nodes:

I input nodes bring information into the application from the environment: spouts

I computational nodes implement the logic of the application by processinginformation and producing a result: bolts

Page 18: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Focus: Apache Storm technology

Apache Storm (storm.apache.org) technology – used in applications that needefficient processing of unbounded streams of data, such as event log monitoring,real-time data analytics and data normalization.

Applications that use Storm: Yahoo, Twitter, Spotify, The Weather Channel, etc.

Key concepts:

I streams – infinite sequences of tuples that are processed by the applicationI topologies – directed graphs

I nodes represent operations performed over the application dataI edges indicate how such operations are combined

Types of nodes:

I input nodes bring information into the application from the environment: spouts

I computational nodes implement the logic of the application by processinginformation and producing a result: bolts

Page 19: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Focus: Apache Storm technology

Apache Storm (storm.apache.org) technology – used in applications that needefficient processing of unbounded streams of data, such as event log monitoring,real-time data analytics and data normalization.

Applications that use Storm: Yahoo, Twitter, Spotify, The Weather Channel, etc.

Key concepts:

I streams – infinite sequences of tuples that are processed by the applicationI topologies – directed graphs

I nodes represent operations performed over the application dataI edges indicate how such operations are combined

Types of nodes:

I input nodes bring information into the application from the environment: spouts

I computational nodes implement the logic of the application by processinginformation and producing a result: bolts

Page 20: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Focus: Apache Storm technology

Apache Storm (storm.apache.org) technology – used in applications that needefficient processing of unbounded streams of data, such as event log monitoring,real-time data analytics and data normalization.

Applications that use Storm: Yahoo, Twitter, Spotify, The Weather Channel, etc.

Key concepts:

I streams – infinite sequences of tuples that are processed by the applicationI topologies – directed graphs

I nodes represent operations performed over the application dataI edges indicate how such operations are combined

Types of nodes:

I input nodes bring information into the application from the environment: spouts

I computational nodes implement the logic of the application by processinginformation and producing a result: bolts

Page 21: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Example of Storm topology

Bolt B2Spout S2

Bolt B1

Bolt B3

Spout S1

Finite state automata describing the states of a spout (left) and bolt (right)

idle emit

idle

take execute emit

fail

Features of the topology:I parametric in the number of nodes and processesI the number of nodes is known at design-time, hence fixed

Infinite-state model checking!

Suitable abstraction: array-based systems. (Ghilardi et al.)

Safety verification of Storm topologies: given queue(s) bound(s) defined by thedesigner, “all bolt queues have a limited occupation level”.

Page 22: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Example of Storm topology

Bolt B2Spout S2

Bolt B1

Bolt B3

Spout S1

Finite state automata describing the states of a spout (left) and bolt (right)

idle emit

idle

take execute emit

fail

Features of the topology:I parametric in the number of nodes and processesI the number of nodes is known at design-time, hence fixed

Infinite-state model checking!

Suitable abstraction: array-based systems. (Ghilardi et al.)

Safety verification of Storm topologies: given queue(s) bound(s) defined by thedesigner, “all bolt queues have a limited occupation level”.

Page 23: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Example of Storm topology

Bolt B2Spout S2

Bolt B1

Bolt B3

Spout S1

Finite state automata describing the states of a spout (left) and bolt (right)

idle emit

idle

take execute emit

fail

Features of the topology:I parametric in the number of nodes and processesI the number of nodes is known at design-time, hence fixed

Infinite-state model checking!

Suitable abstraction: array-based systems. (Ghilardi et al.)

Safety verification of Storm topologies: given queue(s) bound(s) defined by thedesigner, “all bolt queues have a limited occupation level”.

Page 24: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Example of Storm topology

Bolt B2Spout S2

Bolt B1

Bolt B3

Spout S1

Finite state automata describing the states of a spout (left) and bolt (right)

idle emit

idle

take execute emit

fail

Features of the topology:I parametric in the number of nodes and processesI the number of nodes is known at design-time, hence fixed

Infinite-state model checking!

Suitable abstraction: array-based systems. (Ghilardi et al.)

Safety verification of Storm topologies: given queue(s) bound(s) defined by thedesigner, “all bolt queues have a limited occupation level”.

Page 25: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Example of Storm topology

Bolt B2Spout S2

Bolt B1

Bolt B3

Spout S1

Finite state automata describing the states of a spout (left) and bolt (right)

idle emit

idle

take execute emit

fail

Features of the topology:I parametric in the number of nodes and processesI the number of nodes is known at design-time, hence fixed

Infinite-state model checking!

Suitable abstraction: array-based systems. (Ghilardi et al.)

Safety verification of Storm topologies: given queue(s) bound(s) defined by thedesigner, “all bolt queues have a limited occupation level”.

Page 26: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Example of Storm topology

Bolt B2Spout S2

Bolt B1

Bolt B3

Spout S1

Finite state automata describing the states of a spout (left) and bolt (right)

idle emit

idle

take execute emit

fail

Features of the topology:I parametric in the number of nodes and processesI the number of nodes is known at design-time, hence fixed

Infinite-state model checking!

Suitable abstraction: array-based systems. (Ghilardi et al.)

Safety verification of Storm topologies: given queue(s) bound(s) defined by thedesigner, “all bolt queues have a limited occupation level”.

Page 27: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Example of Storm topology

Bolt B2Spout S2

Bolt B1

Bolt B3

Spout S1

Finite state automata describing the states of a spout (left) and bolt (right)

idle emit

idle

take execute emit

fail

Features of the topology:I parametric in the number of nodes and processesI the number of nodes is known at design-time, hence fixed

Infinite-state model checking!

Suitable abstraction: array-based systems. (Ghilardi et al.)

Safety verification of Storm topologies: given queue(s) bound(s) defined by thedesigner, “all bolt queues have a limited occupation level”.

Page 28: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Array-based Systems

Formalizing an array-based system means specifying:I the set of initial statesI the ordering of the actions (by means of a transition relation)I the set of unsafe states (the negation of the formula we want to check)

Examples (Cubicle syntax):

I init (i x) { T = 0.0 && B[i,x]=I && ... } ∀i,x...

I

transition spout emit(i j) ∃i,j...

requires {Tsmin<Stime[i] && SubscribedBS[j,i]=True && ...}{

L[l]:=case

| l=j : L[l]+1.0

| : L[l];

}

I unsafe(i) { L[i]>1.5 } ∃i...

Symbolic representation of array-based systems: quantified first-order logic formulae.Verification of array-based systems: decision procedure based on backward reachability.Termination of the decision procedure:

I the current set of reachable states has a non-empty intersection with the set ofinitial states (safety check) ⇒ system is unsafe

I the current set has reached a fix-point (fix-point check) ⇒ system is safe

Page 29: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Array-based Systems

Formalizing an array-based system means specifying:I the set of initial statesI the ordering of the actions (by means of a transition relation)I the set of unsafe states (the negation of the formula we want to check)

Examples (Cubicle syntax):

I init (i x) { T = 0.0 && B[i,x]=I && ... } ∀i,x...

I

transition spout emit(i j) ∃i,j...

requires {Tsmin<Stime[i] && SubscribedBS[j,i]=True && ...}{

L[l]:=case

| l=j : L[l]+1.0

| : L[l];

}

I unsafe(i) { L[i]>1.5 } ∃i...

Symbolic representation of array-based systems: quantified first-order logic formulae.Verification of array-based systems: decision procedure based on backward reachability.Termination of the decision procedure:

I the current set of reachable states has a non-empty intersection with the set ofinitial states (safety check) ⇒ system is unsafe

I the current set has reached a fix-point (fix-point check) ⇒ system is safe

Page 30: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Array-based Systems

Formalizing an array-based system means specifying:I the set of initial statesI the ordering of the actions (by means of a transition relation)I the set of unsafe states (the negation of the formula we want to check)

Examples (Cubicle syntax):

I init (i x) { T = 0.0 && B[i,x]=I && ... } ∀i,x...

I

transition spout emit(i j) ∃i,j...

requires {Tsmin<Stime[i] && SubscribedBS[j,i]=True && ...}{

L[l]:=case

| l=j : L[l]+1.0

| : L[l];

}

I unsafe(i) { L[i]>1.5 } ∃i...

Symbolic representation of array-based systems: quantified first-order logic formulae.Verification of array-based systems: decision procedure based on backward reachability.Termination of the decision procedure:

I the current set of reachable states has a non-empty intersection with the set ofinitial states (safety check) ⇒ system is unsafe

I the current set has reached a fix-point (fix-point check) ⇒ system is safe

Page 31: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Array-based Systems

Formalizing an array-based system means specifying:I the set of initial statesI the ordering of the actions (by means of a transition relation)I the set of unsafe states (the negation of the formula we want to check)

Examples (Cubicle syntax):

I init (i x) { T = 0.0 && B[i,x]=I && ... } ∀i,x...

I

transition spout emit(i j) ∃i,j...

requires {Tsmin<Stime[i] && SubscribedBS[j,i]=True && ...}{

L[l]:=case

| l=j : L[l]+1.0

| : L[l];

}

I unsafe(i) { L[i]>1.5 } ∃i...

Symbolic representation of array-based systems: quantified first-order logic formulae.Verification of array-based systems: decision procedure based on backward reachability.Termination of the decision procedure:

I the current set of reachable states has a non-empty intersection with the set ofinitial states (safety check) ⇒ system is unsafe

I the current set has reached a fix-point (fix-point check) ⇒ system is safe

Page 32: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Array-based Systems

Formalizing an array-based system means specifying:I the set of initial statesI the ordering of the actions (by means of a transition relation)I the set of unsafe states (the negation of the formula we want to check)

Examples (Cubicle syntax):

I init (i x) { T = 0.0 && B[i,x]=I && ... } ∀i,x...

I

transition spout emit(i j) ∃i,j...

requires {Tsmin<Stime[i] && SubscribedBS[j,i]=True && ...}{

L[l]:=case

| l=j : L[l]+1.0

| : L[l];

}

I unsafe(i) { L[i]>1.5 } ∃i...

Symbolic representation of array-based systems: quantified first-order logic formulae.Verification of array-based systems: decision procedure based on backward reachability.Termination of the decision procedure:

I the current set of reachable states has a non-empty intersection with the set ofinitial states (safety check) ⇒ system is unsafe

I the current set has reached a fix-point (fix-point check) ⇒ system is safe

Page 33: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Array-based Systems

Formalizing an array-based system means specifying:I the set of initial statesI the ordering of the actions (by means of a transition relation)I the set of unsafe states (the negation of the formula we want to check)

Examples (Cubicle syntax):

I init (i x) { T = 0.0 && B[i,x]=I && ... } ∀i,x...

I

transition spout emit(i j) ∃i,j...

requires {Tsmin<Stime[i] && SubscribedBS[j,i]=True && ...}{

L[l]:=case

| l=j : L[l]+1.0

| : L[l];

}

I unsafe(i) { L[i]>1.5 } ∃i...

Symbolic representation of array-based systems: quantified first-order logic formulae.Verification of array-based systems: decision procedure based on backward reachability.Termination of the decision procedure:

I the current set of reachable states has a non-empty intersection with the set ofinitial states (safety check) ⇒ system is unsafe

I the current set has reached a fix-point (fix-point check) ⇒ system is safe

Page 34: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Array-based Systems

Formalizing an array-based system means specifying:I the set of initial statesI the ordering of the actions (by means of a transition relation)I the set of unsafe states (the negation of the formula we want to check)

Examples (Cubicle syntax):

I init (i x) { T = 0.0 && B[i,x]=I && ... } ∀i,x...

I

transition spout emit(i j) ∃i,j...

requires {Tsmin<Stime[i] && SubscribedBS[j,i]=True && ...}{

L[l]:=case

| l=j : L[l]+1.0

| : L[l];

}

I unsafe(i) { L[i]>1.5 } ∃i...

Symbolic representation of array-based systems: quantified first-order logic formulae.Verification of array-based systems: decision procedure based on backward reachability.Termination of the decision procedure:

I the current set of reachable states has a non-empty intersection with the set ofinitial states (safety check) ⇒ system is unsafe

I the current set has reached a fix-point (fix-point check) ⇒ system is safe

Page 35: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Array-based Systems

Formalizing an array-based system means specifying:I the set of initial statesI the ordering of the actions (by means of a transition relation)I the set of unsafe states (the negation of the formula we want to check)

Examples (Cubicle syntax):

I init (i x) { T = 0.0 && B[i,x]=I && ... } ∀i,x...

I

transition spout emit(i j) ∃i,j...

requires {Tsmin<Stime[i] && SubscribedBS[j,i]=True && ...}{

L[l]:=case

| l=j : L[l]+1.0

| : L[l];

}

I unsafe(i) { L[i]>1.5 } ∃i...

Symbolic representation of array-based systems: quantified first-order logic formulae.Verification of array-based systems: decision procedure based on backward reachability.Termination of the decision procedure:

I the current set of reachable states has a non-empty intersection with the set ofinitial states (safety check) ⇒ system is unsafe

I the current set has reached a fix-point (fix-point check) ⇒ system is safe

Page 36: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Array-based Systems

Formalizing an array-based system means specifying:I the set of initial statesI the ordering of the actions (by means of a transition relation)I the set of unsafe states (the negation of the formula we want to check)

Examples (Cubicle syntax):

I init (i x) { T = 0.0 && B[i,x]=I && ... } ∀i,x...

I

transition spout emit(i j) ∃i,j...

requires {Tsmin<Stime[i] && SubscribedBS[j,i]=True && ...}{

L[l]:=case

| l=j : L[l]+1.0

| : L[l];

}

I unsafe(i) { L[i]>1.5 } ∃i...

Symbolic representation of array-based systems: quantified first-order logic formulae.Verification of array-based systems: decision procedure based on backward reachability.Termination of the decision procedure:

I the current set of reachable states has a non-empty intersection with the set ofinitial states (safety check) ⇒ system is unsafe

I the current set has reached a fix-point (fix-point check) ⇒ system is safe

Page 37: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Array-based Systems

Formalizing an array-based system means specifying:I the set of initial statesI the ordering of the actions (by means of a transition relation)I the set of unsafe states (the negation of the formula we want to check)

Examples (Cubicle syntax):

I init (i x) { T = 0.0 && B[i,x]=I && ... } ∀i,x...

I

transition spout emit(i j) ∃i,j...

requires {Tsmin<Stime[i] && SubscribedBS[j,i]=True && ...}{

L[l]:=case

| l=j : L[l]+1.0

| : L[l];

}

I unsafe(i) { L[i]>1.5 } ∃i...

Symbolic representation of array-based systems: quantified first-order logic formulae.Verification of array-based systems: decision procedure based on backward reachability.Termination of the decision procedure:

I the current set of reachable states has a non-empty intersection with the set ofinitial states (safety check) ⇒ system is unsafe

I the current set has reached a fix-point (fix-point check) ⇒ system is safe

Page 38: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Array-based Systems

Formalizing an array-based system means specifying:I the set of initial statesI the ordering of the actions (by means of a transition relation)I the set of unsafe states (the negation of the formula we want to check)

Examples (Cubicle syntax):

I init (i x) { T = 0.0 && B[i,x]=I && ... } ∀i,x...

I

transition spout emit(i j) ∃i,j...

requires {Tsmin<Stime[i] && SubscribedBS[j,i]=True && ...}{

L[l]:=case

| l=j : L[l]+1.0

| : L[l];

}

I unsafe(i) { L[i]>1.5 } ∃i...

Symbolic representation of array-based systems: quantified first-order logic formulae.Verification of array-based systems: decision procedure based on backward reachability.Termination of the decision procedure:

I the current set of reachable states has a non-empty intersection with the set ofinitial states (safety check) ⇒ system is unsafe

I the current set has reached a fix-point (fix-point check) ⇒ system is safe

Page 39: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Array-based Systems

Formalizing an array-based system means specifying:I the set of initial statesI the ordering of the actions (by means of a transition relation)I the set of unsafe states (the negation of the formula we want to check)

Examples (Cubicle syntax):

I init (i x) { T = 0.0 && B[i,x]=I && ... } ∀i,x...

I

transition spout emit(i j) ∃i,j...

requires {Tsmin<Stime[i] && SubscribedBS[j,i]=True && ...}{

L[l]:=case

| l=j : L[l]+1.0

| : L[l];

}

I unsafe(i) { L[i]>1.5 } ∃i...

Symbolic representation of array-based systems: quantified first-order logic formulae.Verification of array-based systems: decision procedure based on backward reachability.Termination of the decision procedure:

I the current set of reachable states has a non-empty intersection with the set ofinitial states (safety check) ⇒ system is unsafe

I the current set has reached a fix-point (fix-point check) ⇒ system is safe

Page 40: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Array-based Systems

Formalizing an array-based system means specifying:I the set of initial statesI the ordering of the actions (by means of a transition relation)I the set of unsafe states (the negation of the formula we want to check)

Examples (Cubicle syntax):

I init (i x) { T = 0.0 && B[i,x]=I && ... } ∀i,x...

I

transition spout emit(i j) ∃i,j...

requires {Tsmin<Stime[i] && SubscribedBS[j,i]=True && ...}{

L[l]:=case

| l=j : L[l]+1.0

| : L[l];

}

I unsafe(i) { L[i]>1.5 } ∃i...

Symbolic representation of array-based systems: quantified first-order logic formulae.Verification of array-based systems: decision procedure based on backward reachability.Termination of the decision procedure:

I the current set of reachable states has a non-empty intersection with the set ofinitial states (safety check) ⇒ system is unsafe

I the current set has reached a fix-point (fix-point check) ⇒ system is safe

Page 41: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Array-based Systems

Formalizing an array-based system means specifying:I the set of initial statesI the ordering of the actions (by means of a transition relation)I the set of unsafe states (the negation of the formula we want to check)

Examples (Cubicle syntax):

I init (i x) { T = 0.0 && B[i,x]=I && ... } ∀i,x...

I

transition spout emit(i j) ∃i,j...

requires {Tsmin<Stime[i] && SubscribedBS[j,i]=True && ...}{

L[l]:=case

| l=j : L[l]+1.0

| : L[l];

}

I unsafe(i) { L[i]>1.5 } ∃i...

Symbolic representation of array-based systems: quantified first-order logic formulae.Verification of array-based systems: decision procedure based on backward reachability.Termination of the decision procedure:

I the current set of reachable states has a non-empty intersection with the set ofinitial states (safety check) ⇒ system is unsafe

I the current set has reached a fix-point (fix-point check) ⇒ system is safe

Page 42: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Modeling assumptions

I Focus on the behavior of the queues of the boltsI How time parameters of the topology affect the accumulation of tuples in the

queues of the boltsI Time frequency the spouts send information to the subscribed bolts, i.e. minimum time

between two consecutive spout emitsI Tuples processing time for each bolt, i.e. the time required by bolts to process a tuple

(execution rate)

I Spouts are considered sources of information; their queues are not represented

I Each bolt has one receiving queue and no sending queueI Two approaches for abstracting the queues of the bolts:

I each bolt has one receiving queue for each of its parallel instances (multiplequeues) (L[i, x])

I one single receiving queue is shared among all its parallel instances (sharedqueues) (L[i ])

I Usage of discrete counters for queues size changes

Page 43: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Modeling assumptions

I Focus on the behavior of the queues of the boltsI How time parameters of the topology affect the accumulation of tuples in the

queues of the boltsI Time frequency the spouts send information to the subscribed bolts, i.e. minimum time

between two consecutive spout emitsI Tuples processing time for each bolt, i.e. the time required by bolts to process a tuple

(execution rate)

I Spouts are considered sources of information; their queues are not represented

I Each bolt has one receiving queue and no sending queueI Two approaches for abstracting the queues of the bolts:

I each bolt has one receiving queue for each of its parallel instances (multiplequeues) (L[i, x])

I one single receiving queue is shared among all its parallel instances (sharedqueues) (L[i ])

I Usage of discrete counters for queues size changes

Page 44: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Modeling assumptions

I Focus on the behavior of the queues of the boltsI How time parameters of the topology affect the accumulation of tuples in the

queues of the boltsI Time frequency the spouts send information to the subscribed bolts, i.e. minimum time

between two consecutive spout emitsI Tuples processing time for each bolt, i.e. the time required by bolts to process a tuple

(execution rate)

I Spouts are considered sources of information; their queues are not represented

I Each bolt has one receiving queue and no sending queueI Two approaches for abstracting the queues of the bolts:

I each bolt has one receiving queue for each of its parallel instances (multiplequeues) (L[i, x])

I one single receiving queue is shared among all its parallel instances (sharedqueues) (L[i ])

I Usage of discrete counters for queues size changes

Page 45: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Modeling assumptions

I Focus on the behavior of the queues of the boltsI How time parameters of the topology affect the accumulation of tuples in the

queues of the boltsI Time frequency the spouts send information to the subscribed bolts, i.e. minimum time

between two consecutive spout emitsI Tuples processing time for each bolt, i.e. the time required by bolts to process a tuple

(execution rate)

I Spouts are considered sources of information; their queues are not represented

I Each bolt has one receiving queue and no sending queueI Two approaches for abstracting the queues of the bolts:

I each bolt has one receiving queue for each of its parallel instances (multiplequeues) (L[i, x])

I one single receiving queue is shared among all its parallel instances (sharedqueues) (L[i ])

I Usage of discrete counters for queues size changes

Page 46: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Modeling assumptions

I Focus on the behavior of the queues of the boltsI How time parameters of the topology affect the accumulation of tuples in the

queues of the boltsI Time frequency the spouts send information to the subscribed bolts, i.e. minimum time

between two consecutive spout emitsI Tuples processing time for each bolt, i.e. the time required by bolts to process a tuple

(execution rate)

I Spouts are considered sources of information; their queues are not represented

I Each bolt has one receiving queue and no sending queueI Two approaches for abstracting the queues of the bolts:

I each bolt has one receiving queue for each of its parallel instances (multiplequeues) (L[i, x])

I one single receiving queue is shared among all its parallel instances (sharedqueues) (L[i ])

I Usage of discrete counters for queues size changes

Page 47: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Modeling assumptions

I Focus on the behavior of the queues of the boltsI How time parameters of the topology affect the accumulation of tuples in the

queues of the boltsI Time frequency the spouts send information to the subscribed bolts, i.e. minimum time

between two consecutive spout emitsI Tuples processing time for each bolt, i.e. the time required by bolts to process a tuple

(execution rate)

I Spouts are considered sources of information; their queues are not represented

I Each bolt has one receiving queue and no sending queueI Two approaches for abstracting the queues of the bolts:

I each bolt has one receiving queue for each of its parallel instances (multiplequeues) (L[i, x])

I one single receiving queue is shared among all its parallel instances (sharedqueues) (L[i ])

I Usage of discrete counters for queues size changes

Page 48: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Modeling assumptions

I Focus on the behavior of the queues of the boltsI How time parameters of the topology affect the accumulation of tuples in the

queues of the boltsI Time frequency the spouts send information to the subscribed bolts, i.e. minimum time

between two consecutive spout emitsI Tuples processing time for each bolt, i.e. the time required by bolts to process a tuple

(execution rate)

I Spouts are considered sources of information; their queues are not represented

I Each bolt has one receiving queue and no sending queueI Two approaches for abstracting the queues of the bolts:

I each bolt has one receiving queue for each of its parallel instances (multiplequeues) (L[i, x])

I one single receiving queue is shared among all its parallel instances (sharedqueues) (L[i ])

I Usage of discrete counters for queues size changes

Page 49: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Modeling assumptions

I Focus on the behavior of the queues of the boltsI How time parameters of the topology affect the accumulation of tuples in the

queues of the boltsI Time frequency the spouts send information to the subscribed bolts, i.e. minimum time

between two consecutive spout emitsI Tuples processing time for each bolt, i.e. the time required by bolts to process a tuple

(execution rate)

I Spouts are considered sources of information; their queues are not represented

I Each bolt has one receiving queue and no sending queueI Two approaches for abstracting the queues of the bolts:

I each bolt has one receiving queue for each of its parallel instances (multiplequeues) (L[i, x])

I one single receiving queue is shared among all its parallel instances (sharedqueues) (L[i ])

I Usage of discrete counters for queues size changes

Page 50: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Modeling assumptions

I Focus on the behavior of the queues of the boltsI How time parameters of the topology affect the accumulation of tuples in the

queues of the boltsI Time frequency the spouts send information to the subscribed bolts, i.e. minimum time

between two consecutive spout emitsI Tuples processing time for each bolt, i.e. the time required by bolts to process a tuple

(execution rate)

I Spouts are considered sources of information; their queues are not represented

I Each bolt has one receiving queue and no sending queueI Two approaches for abstracting the queues of the bolts:

I each bolt has one receiving queue for each of its parallel instances (multiplequeues) (L[i, x])

I one single receiving queue is shared among all its parallel instances (sharedqueues) (L[i ])

I Usage of discrete counters for queues size changes

Page 51: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Modeling assumptions

I Focus on the behavior of the queues of the boltsI How time parameters of the topology affect the accumulation of tuples in the

queues of the boltsI Time frequency the spouts send information to the subscribed bolts, i.e. minimum time

between two consecutive spout emitsI Tuples processing time for each bolt, i.e. the time required by bolts to process a tuple

(execution rate)

I Spouts are considered sources of information; their queues are not represented

I Each bolt has one receiving queue and no sending queueI Two approaches for abstracting the queues of the bolts:

I each bolt has one receiving queue for each of its parallel instances (multiplequeues) (L[i, x])

I one single receiving queue is shared among all its parallel instances (sharedqueues) (L[i ])

I Usage of discrete counters for queues size changes

Page 52: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Formalization and Verification

The formalization captures the topology behavior (subscription relation, current state,modeling assumptions) through transitions:

I discrete transitions change the state of the topology components or updating thesize of the queues of the bolts but they do not modify the value of the globaltime T

I continuous transition changes the value of the global time T and, possibly, thestates of some bolts when their processing has been terminated during the last δtime units

∃δ

0 < δ ∧ CanTimeElapse = true ∧

∀j,z

T ′ = T + δP′[j, z] = if (0 ≤ P[j, z]− δ)then P[j, z]− δ else 0B′[j, z] . . .CanTimeElapse′= false

Examples of transitions and their effect:

I spoutemit (i , j): L[j] increases (SubscribedBS[j , i ]); emit time of the spout (Stime)is reset

I boltemit (i , j): the state of B[i ] is changed into idle and L[j] is incremented by 1

I bolttake (j , y): L[j] is decreased by 1 and the percentage of tuple processing of thethread receiving the tuple (P[j , y ]) is set to 1

Formalization and verification was performed in the same framework: MCMT(http://users.mat.unimi.it/users/ghilardi/mcmt/), respectively Cubicle(http://cubicle.lri.fr/).

Page 53: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Formalization and Verification

The formalization captures the topology behavior (subscription relation, current state,modeling assumptions) through transitions:

I discrete transitions change the state of the topology components or updating thesize of the queues of the bolts but they do not modify the value of the globaltime T

I continuous transition changes the value of the global time T and, possibly, thestates of some bolts when their processing has been terminated during the last δtime units

∃δ

0 < δ ∧ CanTimeElapse = true ∧

∀j,z

T ′ = T + δP′[j, z] = if (0 ≤ P[j, z]− δ)then P[j, z]− δ else 0B′[j, z] . . .CanTimeElapse′= false

Examples of transitions and their effect:

I spoutemit (i , j): L[j] increases (SubscribedBS[j , i ]); emit time of the spout (Stime)is reset

I boltemit (i , j): the state of B[i ] is changed into idle and L[j] is incremented by 1

I bolttake (j , y): L[j] is decreased by 1 and the percentage of tuple processing of thethread receiving the tuple (P[j , y ]) is set to 1

Formalization and verification was performed in the same framework: MCMT(http://users.mat.unimi.it/users/ghilardi/mcmt/), respectively Cubicle(http://cubicle.lri.fr/).

Page 54: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Formalization and Verification

The formalization captures the topology behavior (subscription relation, current state,modeling assumptions) through transitions:

I discrete transitions change the state of the topology components or updating thesize of the queues of the bolts but they do not modify the value of the globaltime T

I continuous transition changes the value of the global time T and, possibly, thestates of some bolts when their processing has been terminated during the last δtime units

∃δ

0 < δ ∧ CanTimeElapse = true ∧

∀j,z

T ′ = T + δP′[j, z] = if (0 ≤ P[j, z]− δ)then P[j, z]− δ else 0B′[j, z] . . .CanTimeElapse′= false

Examples of transitions and their effect:

I spoutemit (i , j): L[j] increases (SubscribedBS[j , i ]); emit time of the spout (Stime)is reset

I boltemit (i , j): the state of B[i ] is changed into idle and L[j] is incremented by 1

I bolttake (j , y): L[j] is decreased by 1 and the percentage of tuple processing of thethread receiving the tuple (P[j , y ]) is set to 1

Formalization and verification was performed in the same framework: MCMT(http://users.mat.unimi.it/users/ghilardi/mcmt/), respectively Cubicle(http://cubicle.lri.fr/).

Page 55: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Formalization and Verification

The formalization captures the topology behavior (subscription relation, current state,modeling assumptions) through transitions:

I discrete transitions change the state of the topology components or updating thesize of the queues of the bolts but they do not modify the value of the globaltime T

I continuous transition changes the value of the global time T and, possibly, thestates of some bolts when their processing has been terminated during the last δtime units

∃δ

0 < δ ∧ CanTimeElapse = true ∧

∀j,z

T ′ = T + δP′[j, z] = if (0 ≤ P[j, z]− δ)then P[j, z]− δ else 0B′[j, z] . . .CanTimeElapse′= false

Examples of transitions and their effect:

I spoutemit (i , j): L[j] increases (SubscribedBS[j , i ]); emit time of the spout (Stime)is reset

I boltemit (i , j): the state of B[i ] is changed into idle and L[j] is incremented by 1

I bolttake (j , y): L[j] is decreased by 1 and the percentage of tuple processing of thethread receiving the tuple (P[j , y ]) is set to 1

Formalization and verification was performed in the same framework: MCMT(http://users.mat.unimi.it/users/ghilardi/mcmt/), respectively Cubicle(http://cubicle.lri.fr/).

Page 56: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Formalization and Verification

The formalization captures the topology behavior (subscription relation, current state,modeling assumptions) through transitions:

I discrete transitions change the state of the topology components or updating thesize of the queues of the bolts but they do not modify the value of the globaltime T

I continuous transition changes the value of the global time T and, possibly, thestates of some bolts when their processing has been terminated during the last δtime units

∃δ

0 < δ ∧ CanTimeElapse = true ∧

∀j,z

T ′ = T + δP′[j, z] = if (0 ≤ P[j, z]− δ)then P[j, z]− δ else 0B′[j, z] . . .CanTimeElapse′= false

Examples of transitions and their effect:

I spoutemit (i , j): L[j] increases (SubscribedBS[j , i ]); emit time of the spout (Stime)is reset

I boltemit (i , j): the state of B[i ] is changed into idle and L[j] is incremented by 1

I bolttake (j , y): L[j] is decreased by 1 and the percentage of tuple processing of thethread receiving the tuple (P[j , y ]) is set to 1

Formalization and verification was performed in the same framework: MCMT(http://users.mat.unimi.it/users/ghilardi/mcmt/), respectively Cubicle(http://cubicle.lri.fr/).

Page 57: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Formalization and Verification

The formalization captures the topology behavior (subscription relation, current state,modeling assumptions) through transitions:

I discrete transitions change the state of the topology components or updating thesize of the queues of the bolts but they do not modify the value of the globaltime T

I continuous transition changes the value of the global time T and, possibly, thestates of some bolts when their processing has been terminated during the last δtime units

∃δ

0 < δ ∧ CanTimeElapse = true ∧

∀j,z

T ′ = T + δP′[j, z] = if (0 ≤ P[j, z]− δ)then P[j, z]− δ else 0B′[j, z] . . .CanTimeElapse′= false

Examples of transitions and their effect:

I spoutemit (i , j): L[j] increases (SubscribedBS[j , i ]); emit time of the spout (Stime)is reset

I boltemit (i , j): the state of B[i ] is changed into idle and L[j] is incremented by 1

I bolttake (j , y): L[j] is decreased by 1 and the percentage of tuple processing of thethread receiving the tuple (P[j , y ]) is set to 1

Formalization and verification was performed in the same framework: MCMT(http://users.mat.unimi.it/users/ghilardi/mcmt/), respectively Cubicle(http://cubicle.lri.fr/).

Page 58: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Formalization and Verification

The formalization captures the topology behavior (subscription relation, current state,modeling assumptions) through transitions:

I discrete transitions change the state of the topology components or updating thesize of the queues of the bolts but they do not modify the value of the globaltime T

I continuous transition changes the value of the global time T and, possibly, thestates of some bolts when their processing has been terminated during the last δtime units

∃δ

0 < δ ∧ CanTimeElapse = true ∧

∀j,z

T ′ = T + δP′[j, z] = if (0 ≤ P[j, z]− δ)then P[j, z]− δ else 0B′[j, z] . . .CanTimeElapse′= false

Examples of transitions and their effect:

I spoutemit (i , j): L[j] increases (SubscribedBS[j , i ]); emit time of the spout (Stime)is reset

I boltemit (i , j): the state of B[i ] is changed into idle and L[j] is incremented by 1

I bolttake (j , y): L[j] is decreased by 1 and the percentage of tuple processing of thethread receiving the tuple (P[j , y ]) is set to 1

Formalization and verification was performed in the same framework: MCMT(http://users.mat.unimi.it/users/ghilardi/mcmt/), respectively Cubicle(http://cubicle.lri.fr/).

Page 59: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Formalization and Verification

The formalization captures the topology behavior (subscription relation, current state,modeling assumptions) through transitions:

I discrete transitions change the state of the topology components or updating thesize of the queues of the bolts but they do not modify the value of the globaltime T

I continuous transition changes the value of the global time T and, possibly, thestates of some bolts when their processing has been terminated during the last δtime units

∃δ

0 < δ ∧ CanTimeElapse = true ∧

∀j,z

T ′ = T + δP′[j, z] = if (0 ≤ P[j, z]− δ)then P[j, z]− δ else 0B′[j, z] . . .CanTimeElapse′= false

Examples of transitions and their effect:

I spoutemit (i , j): L[j] increases (SubscribedBS[j , i ]); emit time of the spout (Stime)is reset

I boltemit (i , j): the state of B[i ] is changed into idle and L[j] is incremented by 1

I bolttake (j , y): L[j] is decreased by 1 and the percentage of tuple processing of thethread receiving the tuple (P[j , y ]) is set to 1

Formalization and verification was performed in the same framework: MCMT(http://users.mat.unimi.it/users/ghilardi/mcmt/), respectively Cubicle(http://cubicle.lri.fr/).

Page 60: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Challenges

I Nondeterministic updates

∃x,y,i,j

statechange =true ∧

∀l,k,z

statechange′ = false. . .B′[l, z] = if (z =y ∧ l = j ∧ B[j, y ] =E)

then (I or K) else B[l, z]elseif . . .

CanTimeElapse′ = true

I Reducing the dimension of the search space

I spout states were left out; only the time elapsing to enable spout emit is consideredI bolt queues have only one dimension (shared queue)

∃i,j,x

Tsmin<Stime[i ] ∧ SubscribedBS[j, i ]=true ∧ . . .

∀l

L′[l ] = if (l=j) then L[l ]+1 else L[l ]Stime′[l ]= if (l=i) then 0 else Stime[l ]. . .

I Incorrect firing of transitions: the implemented backward reachability algorithm

lacks the so-called urgent transitions.Our case: simulation of urgent transitions via flags; bolt emit and take are urgentwrt spout emits.

I Number of transitions limited by:I the emit state of a bolt is enforced if a bolt is ready to emitI state take omittedI restrict the reachability analysis only to one bolt (bolt 1) of the system

Page 61: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Challenges

I Nondeterministic updates

∃x,y,i,j

statechange =true ∧

∀l,k,z

statechange′ = false. . .B′[l, z] = if (z =y ∧ l = j ∧ B[j, y ] =E)

then (I or K) else B[l, z]elseif . . .

CanTimeElapse′ = true

I Reducing the dimension of the search space

I spout states were left out; only the time elapsing to enable spout emit is consideredI bolt queues have only one dimension (shared queue)

∃i,j,x

Tsmin<Stime[i ] ∧ SubscribedBS[j, i ]=true ∧ . . .

∀l

L′[l ] = if (l=j) then L[l ]+1 else L[l ]Stime′[l ]= if (l=i) then 0 else Stime[l ]. . .

I Incorrect firing of transitions: the implemented backward reachability algorithm

lacks the so-called urgent transitions.Our case: simulation of urgent transitions via flags; bolt emit and take are urgentwrt spout emits.

I Number of transitions limited by:I the emit state of a bolt is enforced if a bolt is ready to emitI state take omittedI restrict the reachability analysis only to one bolt (bolt 1) of the system

Page 62: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Challenges

I Nondeterministic updates

∃x,y,i,j

statechange =true ∧

∀l,k,z

statechange′ = false. . .B′[l, z] = if (z =y ∧ l = j ∧ B[j, y ] =E)

then (I or K) else B[l, z]elseif . . .

CanTimeElapse′ = true

I Reducing the dimension of the search space

I spout states were left out; only the time elapsing to enable spout emit is consideredI bolt queues have only one dimension (shared queue)

∃i,j,x

Tsmin<Stime[i ] ∧ SubscribedBS[j, i ]=true ∧ . . .

∀l

L′[l ] = if (l=j) then L[l ]+1 else L[l ]Stime′[l ]= if (l=i) then 0 else Stime[l ]. . .

I Incorrect firing of transitions: the implemented backward reachability algorithm

lacks the so-called urgent transitions.Our case: simulation of urgent transitions via flags; bolt emit and take are urgentwrt spout emits.

I Number of transitions limited by:I the emit state of a bolt is enforced if a bolt is ready to emitI state take omittedI restrict the reachability analysis only to one bolt (bolt 1) of the system

Page 63: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Challenges

I Nondeterministic updates

∃x,y,i,j

statechange =true ∧

∀l,k,z

statechange′ = false. . .B′[l, z] = if (z =y ∧ l = j ∧ B[j, y ] =E)

then (I or K) else B[l, z]elseif . . .

CanTimeElapse′ = true

I Reducing the dimension of the search space

I spout states were left out; only the time elapsing to enable spout emit is consideredI bolt queues have only one dimension (shared queue)

∃i,j,x

Tsmin<Stime[i ] ∧ SubscribedBS[j, i ]=true ∧ . . .

∀l

L′[l ] = if (l=j) then L[l ]+1 else L[l ]Stime′[l ]= if (l=i) then 0 else Stime[l ]. . .

I Incorrect firing of transitions: the implemented backward reachability algorithm

lacks the so-called urgent transitions.Our case: simulation of urgent transitions via flags; bolt emit and take are urgentwrt spout emits.

I Number of transitions limited by:I the emit state of a bolt is enforced if a bolt is ready to emitI state take omittedI restrict the reachability analysis only to one bolt (bolt 1) of the system

Page 64: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Challenges

I Nondeterministic updates

∃x,y,i,j

statechange =true ∧

∀l,k,z

statechange′ = false. . .B′[l, z] = if (z =y ∧ l = j ∧ B[j, y ] =E)

then (I or K) else B[l, z]elseif . . .

CanTimeElapse′ = true

I Reducing the dimension of the search space

I spout states were left out; only the time elapsing to enable spout emit is consideredI bolt queues have only one dimension (shared queue)

∃i,j,x

Tsmin<Stime[i ] ∧ SubscribedBS[j, i ]=true ∧ . . .

∀l

L′[l ] = if (l=j) then L[l ]+1 else L[l ]Stime′[l ]= if (l=i) then 0 else Stime[l ]. . .

I Incorrect firing of transitions: the implemented backward reachability algorithm

lacks the so-called urgent transitions.Our case: simulation of urgent transitions via flags; bolt emit and take are urgentwrt spout emits.

I Number of transitions limited by:I the emit state of a bolt is enforced if a bolt is ready to emitI state take omittedI restrict the reachability analysis only to one bolt (bolt 1) of the system

Page 65: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Challenges

I Nondeterministic updates

∃x,y,i,j

statechange =true ∧

∀l,k,z

statechange′ = false. . .B′[l, z] = if (z =y ∧ l = j ∧ B[j, y ] =E)

then (I or K) else B[l, z]elseif . . .

CanTimeElapse′ = true

I Reducing the dimension of the search space

I spout states were left out; only the time elapsing to enable spout emit is consideredI bolt queues have only one dimension (shared queue)

∃i,j,x

Tsmin<Stime[i ] ∧ SubscribedBS[j, i ]=true ∧ . . .

∀l

L′[l ] = if (l=j) then L[l ]+1 else L[l ]Stime′[l ]= if (l=i) then 0 else Stime[l ]. . .

I Incorrect firing of transitions: the implemented backward reachability algorithm

lacks the so-called urgent transitions.Our case: simulation of urgent transitions via flags; bolt emit and take are urgentwrt spout emits.

I Number of transitions limited by:I the emit state of a bolt is enforced if a bolt is ready to emitI state take omittedI restrict the reachability analysis only to one bolt (bolt 1) of the system

Page 66: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Challenges

I Nondeterministic updates

∃x,y,i,j

statechange =true ∧

∀l,k,z

statechange′ = false. . .B′[l, z] = if (z =y ∧ l = j ∧ B[j, y ] =E)

then (I or K) else B[l, z]elseif . . .

CanTimeElapse′ = true

I Reducing the dimension of the search space

I spout states were left out; only the time elapsing to enable spout emit is consideredI bolt queues have only one dimension (shared queue)

∃i,j,x

Tsmin<Stime[i ] ∧ SubscribedBS[j, i ]=true ∧ . . .

∀l

L′[l ] = if (l=j) then L[l ]+1 else L[l ]Stime′[l ]= if (l=i) then 0 else Stime[l ]. . .

I Incorrect firing of transitions: the implemented backward reachability algorithm

lacks the so-called urgent transitions.Our case: simulation of urgent transitions via flags; bolt emit and take are urgentwrt spout emits.

I Number of transitions limited by:I the emit state of a bolt is enforced if a bolt is ready to emitI state take omittedI restrict the reachability analysis only to one bolt (bolt 1) of the system

Page 67: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Challenges

I Nondeterministic updates

∃x,y,i,j

statechange =true ∧

∀l,k,z

statechange′ = false. . .B′[l, z] = if (z =y ∧ l = j ∧ B[j, y ] =E)

then (I or K) else B[l, z]elseif . . .

CanTimeElapse′ = true

I Reducing the dimension of the search space

I spout states were left out; only the time elapsing to enable spout emit is consideredI bolt queues have only one dimension (shared queue)

∃i,j,x

Tsmin<Stime[i ] ∧ SubscribedBS[j, i ]=true ∧ . . .

∀l

L′[l ] = if (l=j) then L[l ]+1 else L[l ]Stime′[l ]= if (l=i) then 0 else Stime[l ]. . .

I Incorrect firing of transitions: the implemented backward reachability algorithm

lacks the so-called urgent transitions.Our case: simulation of urgent transitions via flags; bolt emit and take are urgentwrt spout emits.

I Number of transitions limited by:I the emit state of a bolt is enforced if a bolt is ready to emitI state take omittedI restrict the reachability analysis only to one bolt (bolt 1) of the system

Page 68: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Challenges

I Nondeterministic updates

∃x,y,i,j

statechange =true ∧

∀l,k,z

statechange′ = false. . .B′[l, z] = if (z =y ∧ l = j ∧ B[j, y ] =E)

then (I or K) else B[l, z]elseif . . .

CanTimeElapse′ = true

I Reducing the dimension of the search space

I spout states were left out; only the time elapsing to enable spout emit is consideredI bolt queues have only one dimension (shared queue)

∃i,j,x

Tsmin<Stime[i ] ∧ SubscribedBS[j, i ]=true ∧ . . .

∀l

L′[l ] = if (l=j) then L[l ]+1 else L[l ]Stime′[l ]= if (l=i) then 0 else Stime[l ]. . .

I Incorrect firing of transitions: the implemented backward reachability algorithm

lacks the so-called urgent transitions.Our case: simulation of urgent transitions via flags; bolt emit and take are urgentwrt spout emits.

I Number of transitions limited by:I the emit state of a bolt is enforced if a bolt is ready to emitI state take omittedI restrict the reachability analysis only to one bolt (bolt 1) of the system

Page 69: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Challenges

I Nondeterministic updates

∃x,y,i,j

statechange =true ∧

∀l,k,z

statechange′ = false. . .B′[l, z] = if (z =y ∧ l = j ∧ B[j, y ] =E)

then (I or K) else B[l, z]elseif . . .

CanTimeElapse′ = true

I Reducing the dimension of the search space

I spout states were left out; only the time elapsing to enable spout emit is consideredI bolt queues have only one dimension (shared queue)

∃i,j,x

Tsmin<Stime[i ] ∧ SubscribedBS[j, i ]=true ∧ . . .

∀l

L′[l ] = if (l=j) then L[l ]+1 else L[l ]Stime′[l ]= if (l=i) then 0 else Stime[l ]. . .

I Incorrect firing of transitions: the implemented backward reachability algorithm

lacks the so-called urgent transitions.Our case: simulation of urgent transitions via flags; bolt emit and take are urgentwrt spout emits.

I Number of transitions limited by:I the emit state of a bolt is enforced if a bolt is ready to emitI state take omittedI restrict the reachability analysis only to one bolt (bolt 1) of the system

Page 70: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Experimental results

First attempt:

I L[1] ≥ 3 and Tsmin < 1 – expected result: UNSAFE

Trace: Init → time elapse → setDoTakeFalse → setDoEmitFalse → spoutemit →time elapse → setDoTakeTrue → setDoEmitFalse →bolt1take → setDoTakeFalse → setDoEmitFalse → spoutemit →time elapse → setDoTakeFalse → setDoEmitFalse → spoutemit → L[1] ≥ 2

I L[1] ≥ 3 and Tsmin ≥ 1 – expected result: SAFE

Result: the verification problems lead to memory exhaustion.

Second attempt:

I L[1] ≥ 2 and Tsmin < 1 – obtained result: UNSAFE

I L[1] ≥ 2 and Tsmin ≥ 1 – expected result: SAFE

Page 71: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Experimental results

First attempt:

I L[1] ≥ 3 and Tsmin < 1 – expected result: UNSAFE

Trace: Init → time elapse → setDoTakeFalse → setDoEmitFalse → spoutemit →time elapse → setDoTakeTrue → setDoEmitFalse →bolt1take → setDoTakeFalse → setDoEmitFalse → spoutemit →time elapse → setDoTakeFalse → setDoEmitFalse → spoutemit → L[1] ≥ 2

I L[1] ≥ 3 and Tsmin ≥ 1 – expected result: SAFE

Result: the verification problems lead to memory exhaustion.

Second attempt:

I L[1] ≥ 2 and Tsmin < 1 – obtained result: UNSAFE

I L[1] ≥ 2 and Tsmin ≥ 1 – expected result: SAFE

Page 72: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Experimental results

First attempt:

I L[1] ≥ 3 and Tsmin < 1 – expected result: UNSAFE

Trace: Init → time elapse → setDoTakeFalse → setDoEmitFalse → spoutemit →time elapse → setDoTakeTrue → setDoEmitFalse →bolt1take → setDoTakeFalse → setDoEmitFalse → spoutemit →time elapse → setDoTakeFalse → setDoEmitFalse → spoutemit → L[1] ≥ 2

I L[1] ≥ 3 and Tsmin ≥ 1 – expected result: SAFE

Result: the verification problems lead to memory exhaustion.

Second attempt:

I L[1] ≥ 2 and Tsmin < 1 – obtained result: UNSAFE

I L[1] ≥ 2 and Tsmin ≥ 1 – expected result: SAFE

Page 73: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Experimental results

First attempt:

I L[1] ≥ 3 and Tsmin < 1 – expected result: UNSAFE

Trace: Init → time elapse → setDoTakeFalse → setDoEmitFalse → spoutemit →time elapse → setDoTakeTrue → setDoEmitFalse →bolt1take → setDoTakeFalse → setDoEmitFalse → spoutemit →time elapse → setDoTakeFalse → setDoEmitFalse → spoutemit → L[1] ≥ 2

I L[1] ≥ 3 and Tsmin ≥ 1 – expected result: SAFE

Result: the verification problems lead to memory exhaustion.

Second attempt:

I L[1] ≥ 2 and Tsmin < 1 – obtained result: UNSAFE

I L[1] ≥ 2 and Tsmin ≥ 1 – expected result: SAFE

Page 74: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Experimental results

First attempt:

I L[1] ≥ 3 and Tsmin < 1 – expected result: UNSAFE

Trace: Init → time elapse → setDoTakeFalse → setDoEmitFalse → spoutemit →time elapse → setDoTakeTrue → setDoEmitFalse →bolt1take → setDoTakeFalse → setDoEmitFalse → spoutemit →time elapse → setDoTakeFalse → setDoEmitFalse → spoutemit → L[1] ≥ 2

I L[1] ≥ 3 and Tsmin ≥ 1 – expected result: SAFE

Result: the verification problems lead to memory exhaustion.

Second attempt:

I L[1] ≥ 2 and Tsmin < 1 – obtained result: UNSAFE

I L[1] ≥ 2 and Tsmin ≥ 1 – expected result: SAFE

Page 75: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Experimental results

First attempt:

I L[1] ≥ 3 and Tsmin < 1 – expected result: UNSAFE

Trace: Init → time elapse → setDoTakeFalse → setDoEmitFalse → spoutemit →time elapse → setDoTakeTrue → setDoEmitFalse →bolt1take → setDoTakeFalse → setDoEmitFalse → spoutemit →time elapse → setDoTakeFalse → setDoEmitFalse → spoutemit → L[1] ≥ 2

I L[1] ≥ 3 and Tsmin ≥ 1 – expected result: SAFE

Result: the verification problems lead to memory exhaustion.

Second attempt:

I L[1] ≥ 2 and Tsmin < 1 – obtained result: UNSAFE

I L[1] ≥ 2 and Tsmin ≥ 1 – expected result: SAFE

Page 76: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Experimental results

First attempt:

I L[1] ≥ 3 and Tsmin < 1 – expected result: UNSAFE

Trace: Init → time elapse → setDoTakeFalse → setDoEmitFalse → spoutemit →time elapse → setDoTakeTrue → setDoEmitFalse →bolt1take → setDoTakeFalse → setDoEmitFalse → spoutemit →time elapse → setDoTakeFalse → setDoEmitFalse → spoutemit → L[1] ≥ 2

I L[1] ≥ 3 and Tsmin ≥ 1 – expected result: SAFE

Result: the verification problems lead to memory exhaustion.

Second attempt:

I L[1] ≥ 2 and Tsmin < 1 – obtained result: UNSAFE

I L[1] ≥ 2 and Tsmin ≥ 1 – expected result: SAFE

Page 77: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Experimental results

First attempt:

I L[1] ≥ 3 and Tsmin < 1 – expected result: UNSAFE

Trace: Init → time elapse → setDoTakeFalse → setDoEmitFalse → spoutemit →time elapse → setDoTakeTrue → setDoEmitFalse →bolt1take → setDoTakeFalse → setDoEmitFalse → spoutemit →time elapse → setDoTakeFalse → setDoEmitFalse → spoutemit → L[1] ≥ 2

I L[1] ≥ 3 and Tsmin ≥ 1 – expected result: SAFE

Result: the verification problems lead to memory exhaustion.

Second attempt:

I L[1] ≥ 2 and Tsmin < 1 – obtained result: UNSAFE

I L[1] ≥ 2 and Tsmin ≥ 1 – expected result: SAFE

Page 78: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Current and Future Work

I Refinements of the presented model, linear topologies limiting the analysis towell-founded transition systems

I New model to capturing relevant properties of distributed systems, e.g. tupleorder is compatible with tuple time

Page 79: Formal Veri cation of Data-Intensive Applications through ...wp.doc.ic.ac.uk/dice-h2020/wp-content/uploads/sites/75/2018/01/SPI… · Formal Veri cation of Data-Intensive Applications

Current and Future Work

I Refinements of the presented model, linear topologies limiting the analysis towell-founded transition systems

I New model to capturing relevant properties of distributed systems, e.g. tupleorder is compatible with tuple time