Efficient Decentralized Monitoring of Safety in Distributed Systems

Slides:



Advertisements
Similar presentations
The Quest for Correctness Joseph Sifakis VERIMAG Laboratory 2nd Sogeti Testing Academy April 29th 2009.
Advertisements

Copyright 2000 Cadence Design Systems. Permission is granted to reproduce without modification. Introduction An overview of formal methods for hardware.
Modeling and Analyzing Periodic Distributed Computations Anurag Agarwal Vijay Garg Vinit Ogale The University.
PROOF BY CONTRADICTION
A Survey of Runtime Verification Jonathan Amir 2004.
Runtime Verification Ali Akkaya Boğaziçi University.
Virtual Time “Virtual Time and Global States of Distributed Systems” Friedmann Mattern, 1989 The Model: An asynchronous distributed system = a set of processes.
Lecture 8: Asynchronous Network Algorithms
SES Algorithm SES: Schiper-Eggli-Sandoz Algorithm. No need for broadcast messages. Each process maintains a vector V_P of size N - 1, N the number of processes.
Goldilocks: Efficiently Computing the Happens-Before Relation Using Locksets Tayfun Elmas 1, Shaz Qadeer 2, Serdar Tasiran 1 1 Koç University, İstanbul,
Fast Algorithms For Hierarchical Range Histogram Constructions
Data Structures: A Pseudocode Approach with C
1 Temporal Claims A temporal claim is defined in Promela by the syntax: never { … body … } never is a keyword, like proctype. The body is the same as for.
/ PSWLAB Efficient Decentralized Monitoring of Safety in Distributed System K Sen, A Vardhan, G Agha, G Rosu 20 th July 2007 Presented by.
Distributed Systems Spring 2009
Constraint Logic Programming Ryan Kinworthy. Overview Introduction Logic Programming LP as a constraint programming language Constraint Logic Programming.
Distributed Systems Fall 2009 Logical time, global states, and debugging.
Software Reliability Methods Sorin Lerner. Software reliability methods: issues What are the issues?
A Type System for Expressive Security Policies David Walker Cornell University.
System Design Research Laboratory Model-based Testing and Monitoring for Hybrid Embedded Systems Li Tan Jesung Kim Oleg Sokolsky Insup Lee University of.
VESTA: A Statistical Model- checker and Analyzer for Probabilistic Systems Authors: Koushik Sen Mahesh Viswanathan Gul Agha University of Illinois at Urbana-Champaign.
Testing and Monitoring at Penn An Integrated Framework for Validating Model-based Embedded Software Li Tan University of Pennsylvania September, 2003.
1 Formal Engineering of Reliable Software LASER 2004 school Tutorial, Lecture1 Natasha Sharygina Carnegie Mellon University.
Lecture 12 Synchronization. EECE 411: Design of Distributed Software Applications Summary so far … A distributed system is: a collection of independent.
Presenter: Chi-Hung Lu 1. Problems Distributed applications are hard to validate Distribution of application state across many distinct execution environments.
Sensor Networks Storage Sanket Totala Sudarshan Jagannathan.
Secure Embedded Processing through Hardware-assisted Run-time Monitoring Zubin Kumar.
Scientific Computing By: Fatima Hallak To: Dr. Guy Tel-Zur.
Proof Carrying Code Zhiwei Lin. Outline Proof-Carrying Code The Design and Implementation of a Certifying Compiler A Proof – Carrying Code Architecture.
Survey on Trace Analyzer (2) Hong, Shin /34Survey on Trace Analyzer (2) KAIST.
On Reducing the Global State Graph for Verification of Distributed Computations Vijay K. Garg, Arindam Chakraborty Parallel and Distributed Systems Laboratory.
Distributed Computing Systems CSCI 4780/6780. Distributed System A distributed system is: A collection of independent computers that appears to its users.
Allen Linear Temporal Logic Translation to LTL and Monitor Synthesis Grigore Rosu (University of Illinois at U-C) Saddek Bensalem (VERIMAG)
Distributed Systems Fall 2010 Logical time, global states, and debugging.
D u k e S y s t e m s Asynchronous Replicated State Machines (Causal Multicast and All That) Jeff Chase Duke University.
Constraints Assisted Modeling and Validation Presented in CS294-5 (Spring 2007) Thomas Huining Feng Based on: [1]Constraints Assisted Modeling and Validation.
Parallel and Distributed Systems Laboratory Paradise: A Toolkit for Building Reliable Concurrent Systems Trace Verification for Parallel Systems Vijay.
Lamport's Scalar clocks and Singhal-Kshemkalyani’s VC Algorithms
Grigore Rosu Founder, President and CEO Professor of Computer Science, University of Illinois
RV-ECU: Certifiable Runtime Verification for Automobiles Grigore Rosu
Software Systems Verification and Validation Laboratory Assignment 4 Model checking Assignment date: Lab 4 Delivery date: Lab 4, 5.
CSE 486/586 CSE 486/586 Distributed Systems Global States Steve Ko Computer Sciences and Engineering University at Buffalo.
COMP 655: Distributed/Operating Systems Summer 2011 Dr. Chunbo Chu Week 6: Synchronyzation 3/5/20161 Distributed Systems - COMP 655.
Today’s Agenda  Quiz 4  Temporal Logic Formal Methods in Software Engineering1.
Introduction to Computer Programming using Fortran 77.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Distributed Systems Lecture 6 Global states and snapshots 1.
SDN Network Updates Minimum updates within a single switch
Linear Equations in Linear Algebra
Weakest Precondition of Unstructured Programs
Program Synthesis is a Game
runtime verification Brief Overview Grigore Rosu
Parametric Trace Slicing and Monitoring
Distributed Mutex EE324 Lecture 11.
Lecture 9: Asynchronous Network Algorithms
Koushik Sen Abhay Vardhan Gul Agha Grigore Rosu
Chapter 10 Programming Fundamentals with JavaScript
Monitoring Programs using Rewriting
Towards Next Generation Panel at SAINT 2002
CSCI1600: Embedded and Real Time Software
Linear Equations in Linear Algebra
Generating Optimal Linear Temporal Logic Monitors by Coinduction
Grigore Rosu Mahesh Viswanathan
Statistical Model-Checking of “Black-Box” Probabilistic Systems VESTA
On Statistical Model Checking of Stochastic Systems
Finite-Trace Linear Temporal Logic: Coinductive Completeness
CUTE: A Concolic Unit Testing Engine for C
Chapter 2: Analysis and Verification of Non-Real-Time Systems
Runtime Safety Analysis of Multithreaded Programs
CSE 503 – Software Engineering
Presentation transcript:

Efficient Decentralized Monitoring of Safety in Distributed Systems Koushik Sen Abhay Vardhan Gul Agha Grigore Rosu University of Illinois at Urbana-Champaign, USA

Software Reliability Software Validation Rigorous and Complete Methods Model Checking Theorem Proving Infeasible for large-scale open distributed systems Non-determinism and Asynchrony Testing Widely used Ad-Hoc Good Test Coverage Required Runtime Monitoring Adds rigor to Testing 11/12/2018

Centralized Monitoring Approach Monitoring – Use Formal Methods in Testing Synthesize light-weight Monitors from Specification Automata, Rewriting-based Monitors, State machines Instrument code to insert monitors Execute instrumented code Distributed System Monitoring Global state is distributed For every state update send state to a central monitor Central monitor assembles them to form consistent execution traces (Vector Clocks) Sequence of global states Monitor execution traces 11/12/2018

An Example Mobile node a requests certain value from node b b computes the value and sends it to a Property: no node receives a value from another node to which it had not sent a request 11/12/2018

Centralized Monitoring Example “If a receives a value from b then b calculated the value after receiving request from a” valRcv → (valComputed  valReq) valReq valReq valComputed  valReq valRcv → (valComputed  valReq) (valComputed  valReq) Monitor b valComputed a valReq valRcv 11/12/2018

Decentralized Monitoring Approach “If a receives a value from b then b calculated the value after receiving request from a” valRcv → @b((valComputed  @a(valReq))) valComputed  @a(valReq) @a(valReq) (valComputed  @a(valReq)) b valComputed a valReq valRcv valReq valRcv → @b((valComputed  @a(valReq))) 11/12/2018

Past time Distributed Temporal Logic (pt-DTL) Past Time Linear Temporal Logic [Pnueli] Extended with a Operator from epistemic logic (@) [Aumann76][Meenakshi et al. 00] Properties with respect to a process, say p Interpreted over sequence of knowledge that p has about global state 11/12/2018

Remote Formulas in pt-DTL @a F at process b @ makes remote formula F at process a local to process b “Alarm at process b implies that there was a fire at a” alarm → @afire a formula with respect to process b 11/12/2018

Remote Expressions in pt-DTL Remote expressions – arbitrary expressions related to the state of a remote process Propositions constructed from remote and local expressions “If my alarm is set then eventually in past difference between my temperature and temperature at process b exceeded the allowed value” alarm → ((myTemp - @btemp) > allowed) 11/12/2018

Safety in Airplane Landing “ If my airplane is landing then the runway that the airport has allocated matches the one that I am planning to use” landing → (runway = @airportallocRunway) 11/12/2018

Leader Election Example “If a leader is elected then if the current process is a leader then, at its knowledge, none of the other processes is a leader” elected → (state=leader → /\i≠j(@j(state ≠ leader))) 11/12/2018

pt-DTL syntax Fi ::= true | false | P(Ei) | : Fi | Fi Æ Fi propositional | ¯ Fi | ¡ Fi | Fi | Fi S Fi temporal | @jFj epistemic Ei ::= c | vi 2 Vi | f(Ei) functional | @jEj epistemic 11/12/2018

Interpretation of @jEj at process i m4 m1 m2 p2 @ 1(x=9) m3 p1 x=7 x=9 11/12/2018

Monitoring Algorithm Requirements Should be fast so that online monitoring is possible Little memory overhead Additional messages sent should be minimal; ideally zero 11/12/2018

KnowledgeVector Let KV be a vector one entry for each process appearing in formula KV[j] denotes entry for process j KV[j].seq is the sequence number of last event seen at process j KV[j].values stores values of j-expressions and j-formulae 11/12/2018

Monitoring using KnowledgeVector Maintain KnowledgeVector about global state at each process Attach KnowledgeVector with outgoing messages Update KnowledgeVector with incoming messages At each process monitor local KnowledgeVector 11/12/2018

KnowledgeVector Algorithm [internal event]: (at process i) store eval(Ei,si) and eval(Fi,si) for each @iEi and @iFi in KVi[i].values [send m]: KVi[i].seq à KVi[i].seq + 1. Send KVi with m as KVm [receive m]: for all j, if KVm[j].seq > KVi[j].seq then KVi[j].seq à KVm[j].seq KVi[j].values à KVm[j].value 11/12/2018

Example p3 p2 p1 ¡(Y ¸ @1X) at p2 Y=7 Y=3 violation X=5 X=9 X=6 5 2 6 5 2 6 2 6 p3 5 2 6 2 6 2 6 p2 Y=7 Y=3 violation 5 9 1 9 1 6 2 6 p1 X=5 X=9 X=6 KV[1].seq ¡(Y ¸ @1X) at p2 KV[1].values 11/12/2018

DIANA Architecture pt-DTL Monitor 11/12/2018

Conclusion pt-DTL can express interesting and useful safety properties of distributed systems Decentralized Technique to effectively verify Distributed Systems at runtime No extra message over-head for monitoring KnowledgeVector as monitors 11/12/2018