SlideShare ist ein Scribd-Unternehmen logo
1 von 1
Downloaden Sie, um offline zu lesen
Analysing DIRAC's Behavior using Model Checking
                      with Process Algebra
                              Daniela Remenska - Jeff Templon - Tim Willemse - Henri Bal - Kees Verstoep - Wan Fokkink
                             Philippe Charpentier - Ricardo Graciani - Elisa Lanciotti - Krzysztof Daniel Ciba - Stefan Roiser


 Motivation                                                From DIRAC to mCRL2                                                  Verification
    DIRAC background                                       DIRAC (Python) ~150000 loc
                                                                                                                            ▪
                                                                                                                                Properties (Satefy / Progress / Deadlock)
    ▪   production activities and user analysis for LHCb                                                                        Model-checker automatically probes them.
                                                           Abstracting the implementation depends
    ▪   distributed services and light-weight agents       on the focus of the analysis.                                    ▪   Property violated: counter-example trace
                                                                                                                                is provided.
                                                           Check for race-conditions
   "blackboard"
        or                                                 Agents update the state of shared entities.
 "shared-memory"
     paradigm
                                                           Systems: Storage and Workload Mgmt
                                                           Entities: Jobs, Cache-Replicas, Tasks


                              Figure 1: DIRAC subsystems




▪   jobs often get into incorrect
    (or inconsistent) states                                                                                                               Figure 6: Violation of progress and safety requirements


▪   staging requests become stuck
▪   difficult to trace the root of such
    unexpected behavior                                                       Figure 2: Job state machine

    many scenarios and components
                                                           Agents and storage become processes.
▪   manual intervention necessary                          Control-flow is abstracted using mCRL2
                                                           non-deterministic choice and
                                                           if-then-else constructs.
    There are formal or systematic                         States of entities are described using                                           Figure 7: "Zombie" job starts running after being killed
      approaches to tackle this!                           custom abstract data types.


                                                                                                                                     Conclusions
                                                           State-space generation                                                   Distributed systems are difficult to
 Why Formal Methods?                                                                                                                reason about; many components,
                                                                                                                                    all run in parallel.
         Based on process algebra laws
    no ambiguity
                                                                                                                                    Formal methods are a more rigorous
                                                                                                                                    addition to testing, as a way to
         Model checking tools                                                                                                       improve software quality.
    full control over the execution of parallel
    processes. This way one gains more insight
                                                                                                                                    A sound model needs to be written
    into the system behavior.
                                                                                                                                    manually. This requires experience
                                                                                                                                    and can be error-prone.
        Automatically explore the entire
    state-space and check if some                                                                                                   Similar techniques can be re-applied
    "interesting" properties hold.                                                                                                  to similar systems, once the learning
                                                                                                                                    curve has lapsed.

         Stronger than testing



    Some drawbacks...                                                                                                                 Future Work
  Abstraction of the "real" behavior is needed.                                                                                       Automate (to some degree) the
This means one must build a sound model.                                                                                              translation from code to model.
  Expertise in formal methods and the system                      Figure 3: State-space visualisation with LTSView

domain is necessary.
    The state-space of the model can explode.              Analysis & Issues
                                                           Problems can be discovered while building and debugging the model:

                  Language & Toolset
 Actions: atomic building blocks
 can carry data parameters

 Processes: composed of actions,
 using algebra operators




                                                                   Figure 4a: XSim simulator trace of a job workflow             Figure 4b: DIRAC logging info of a job workflow




 Built-in data types
 integers, booleans, lists, sets, bags

 Abstract data types
                                                                Figure 5: State-transition visualisation with DiaGraphica

Weitere ähnliche Inhalte

Andere mochten auch

Calendário de atividades do mês de julho forever - sp
Calendário de atividades do mês de julho   forever - spCalendário de atividades do mês de julho   forever - sp
Calendário de atividades do mês de julho forever - spEvandro Araujo
 
Lição de portugues
Lição de portuguesLição de portugues
Lição de portuguesMaluFabris
 
Cuaderno de ventas de gabriel castellanos
Cuaderno de ventas de gabriel castellanosCuaderno de ventas de gabriel castellanos
Cuaderno de ventas de gabriel castellanosgabcaste
 

Andere mochten auch (7)

Calendário de atividades do mês de julho forever - sp
Calendário de atividades do mês de julho   forever - spCalendário de atividades do mês de julho   forever - sp
Calendário de atividades do mês de julho forever - sp
 
Lição de portugues
Lição de portuguesLição de portugues
Lição de portugues
 
Transfondo anaranjando-1
Transfondo anaranjando-1Transfondo anaranjando-1
Transfondo anaranjando-1
 
Vision
VisionVision
Vision
 
Cuaderno de ventas de gabriel castellanos
Cuaderno de ventas de gabriel castellanosCuaderno de ventas de gabriel castellanos
Cuaderno de ventas de gabriel castellanos
 
Test watir
Test watirTest watir
Test watir
 
Достижения мбдоу № 10
Достижения мбдоу № 10Достижения мбдоу № 10
Достижения мбдоу № 10
 

Ähnlich wie Analyzing DIRAC's Behavior using Model Checking

Testability for developers – Fighting a mess by making it testable
Testability for developers – Fighting a mess by making it testableTestability for developers – Fighting a mess by making it testable
Testability for developers – Fighting a mess by making it testableAlexander Tarlinder
 
Dynamic Analysis And Profiling Of Multi Threaded Systems
Dynamic Analysis And Profiling Of Multi Threaded SystemsDynamic Analysis And Profiling Of Multi Threaded Systems
Dynamic Analysis And Profiling Of Multi Threaded SystemsKashif Dayo
 
Erjang - A journey into Erlang-land
Erjang - A journey into Erlang-landErjang - A journey into Erlang-land
Erjang - A journey into Erlang-landKresten Krab Thorup
 
CYBER INTELLIGENCE & RESPONSE TECHNOLOGY
CYBER INTELLIGENCE & RESPONSE TECHNOLOGYCYBER INTELLIGENCE & RESPONSE TECHNOLOGY
CYBER INTELLIGENCE & RESPONSE TECHNOLOGYjmical
 
Using PSL for Assertions and Coverage at Analog Devices
Using PSL for Assertions and Coverage at Analog DevicesUsing PSL for Assertions and Coverage at Analog Devices
Using PSL for Assertions and Coverage at Analog DevicesDVClub
 
report
reportreport
reportbutest
 
Sand Piles and Software - Madison Ruby Conference
Sand Piles and Software - Madison Ruby ConferenceSand Piles and Software - Madison Ruby Conference
Sand Piles and Software - Madison Ruby ConferenceZach Dennis
 
Extent 2013 Obninsk Trading Systems: Testing at the Confluence of FT & NFT
Extent 2013 Obninsk Trading Systems: Testing at the Confluence of FT & NFTExtent 2013 Obninsk Trading Systems: Testing at the Confluence of FT & NFT
Extent 2013 Obninsk Trading Systems: Testing at the Confluence of FT & NFTextentconf Tsoy
 
Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking...
Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking...Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking...
Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking...RIA RUI Society
 
Barnan Das PhD Preliminary Exam
Barnan Das PhD Preliminary ExamBarnan Das PhD Preliminary Exam
Barnan Das PhD Preliminary ExamBarnan Das
 
A software monitoring framework for quality verification
A software monitoring framework for quality verificationA software monitoring framework for quality verification
A software monitoring framework for quality verificationDileepa Jayathilake
 
Validation of Spacecraft Behaviour Using a Collaborative Approach
Validation of Spacecraft Behaviour Using a Collaborative ApproachValidation of Spacecraft Behaviour Using a Collaborative Approach
Validation of Spacecraft Behaviour Using a Collaborative ApproachDaniele Gianni
 
Middleware Solutions for Simulation & Modeling
Middleware Solutions for Simulation & Modeling Middleware Solutions for Simulation & Modeling
Middleware Solutions for Simulation & Modeling Leila Jalali
 
POD-Diagnosis: Error Detection and Diagnosis of Sporadic Operations on Cloud ...
POD-Diagnosis: Error Detection and Diagnosis of Sporadic Operations on Cloud ...POD-Diagnosis: Error Detection and Diagnosis of Sporadic Operations on Cloud ...
POD-Diagnosis: Error Detection and Diagnosis of Sporadic Operations on Cloud ...Liming Zhu
 
Trading Systems: Testing at the Confluence of FT and NFT
Trading Systems: Testing at the Confluence of FT and NFTTrading Systems: Testing at the Confluence of FT and NFT
Trading Systems: Testing at the Confluence of FT and NFTIosif Itkin
 
Preventing the Next Deployment Issue with Continuous Performance Testing and ...
Preventing the Next Deployment Issue with Continuous Performance Testing and ...Preventing the Next Deployment Issue with Continuous Performance Testing and ...
Preventing the Next Deployment Issue with Continuous Performance Testing and ...Correlsense
 

Ähnlich wie Analyzing DIRAC's Behavior using Model Checking (20)

Testability for developers – Fighting a mess by making it testable
Testability for developers – Fighting a mess by making it testableTestability for developers – Fighting a mess by making it testable
Testability for developers – Fighting a mess by making it testable
 
Dynamic Analysis And Profiling Of Multi Threaded Systems
Dynamic Analysis And Profiling Of Multi Threaded SystemsDynamic Analysis And Profiling Of Multi Threaded Systems
Dynamic Analysis And Profiling Of Multi Threaded Systems
 
Erjang - A journey into Erlang-land
Erjang - A journey into Erlang-landErjang - A journey into Erlang-land
Erjang - A journey into Erlang-land
 
CYBER INTELLIGENCE & RESPONSE TECHNOLOGY
CYBER INTELLIGENCE & RESPONSE TECHNOLOGYCYBER INTELLIGENCE & RESPONSE TECHNOLOGY
CYBER INTELLIGENCE & RESPONSE TECHNOLOGY
 
Kl assertions 081705
Kl assertions 081705Kl assertions 081705
Kl assertions 081705
 
Larson assertions 081705
Larson assertions 081705Larson assertions 081705
Larson assertions 081705
 
Using PSL for Assertions and Coverage at Analog Devices
Using PSL for Assertions and Coverage at Analog DevicesUsing PSL for Assertions and Coverage at Analog Devices
Using PSL for Assertions and Coverage at Analog Devices
 
ICPW2007.Delugach
ICPW2007.DelugachICPW2007.Delugach
ICPW2007.Delugach
 
report
reportreport
report
 
Sand Piles and Software - Madison Ruby Conference
Sand Piles and Software - Madison Ruby ConferenceSand Piles and Software - Madison Ruby Conference
Sand Piles and Software - Madison Ruby Conference
 
Extent 2013 Obninsk Trading Systems: Testing at the Confluence of FT & NFT
Extent 2013 Obninsk Trading Systems: Testing at the Confluence of FT & NFTExtent 2013 Obninsk Trading Systems: Testing at the Confluence of FT & NFT
Extent 2013 Obninsk Trading Systems: Testing at the Confluence of FT & NFT
 
Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking...
Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking...Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking...
Bug deBug Chennai 2012 Talk - Driving innovation using pattern based thinking...
 
Barnan Das PhD Preliminary Exam
Barnan Das PhD Preliminary ExamBarnan Das PhD Preliminary Exam
Barnan Das PhD Preliminary Exam
 
Test Doubles
Test DoublesTest Doubles
Test Doubles
 
A software monitoring framework for quality verification
A software monitoring framework for quality verificationA software monitoring framework for quality verification
A software monitoring framework for quality verification
 
Validation of Spacecraft Behaviour Using a Collaborative Approach
Validation of Spacecraft Behaviour Using a Collaborative ApproachValidation of Spacecraft Behaviour Using a Collaborative Approach
Validation of Spacecraft Behaviour Using a Collaborative Approach
 
Middleware Solutions for Simulation & Modeling
Middleware Solutions for Simulation & Modeling Middleware Solutions for Simulation & Modeling
Middleware Solutions for Simulation & Modeling
 
POD-Diagnosis: Error Detection and Diagnosis of Sporadic Operations on Cloud ...
POD-Diagnosis: Error Detection and Diagnosis of Sporadic Operations on Cloud ...POD-Diagnosis: Error Detection and Diagnosis of Sporadic Operations on Cloud ...
POD-Diagnosis: Error Detection and Diagnosis of Sporadic Operations on Cloud ...
 
Trading Systems: Testing at the Confluence of FT and NFT
Trading Systems: Testing at the Confluence of FT and NFTTrading Systems: Testing at the Confluence of FT and NFT
Trading Systems: Testing at the Confluence of FT and NFT
 
Preventing the Next Deployment Issue with Continuous Performance Testing and ...
Preventing the Next Deployment Issue with Continuous Performance Testing and ...Preventing the Next Deployment Issue with Continuous Performance Testing and ...
Preventing the Next Deployment Issue with Continuous Performance Testing and ...
 

Analyzing DIRAC's Behavior using Model Checking

  • 1. Analysing DIRAC's Behavior using Model Checking with Process Algebra Daniela Remenska - Jeff Templon - Tim Willemse - Henri Bal - Kees Verstoep - Wan Fokkink Philippe Charpentier - Ricardo Graciani - Elisa Lanciotti - Krzysztof Daniel Ciba - Stefan Roiser Motivation From DIRAC to mCRL2 Verification DIRAC background DIRAC (Python) ~150000 loc ▪ Properties (Satefy / Progress / Deadlock) ▪ production activities and user analysis for LHCb Model-checker automatically probes them. Abstracting the implementation depends ▪ distributed services and light-weight agents on the focus of the analysis. ▪ Property violated: counter-example trace is provided. Check for race-conditions "blackboard" or Agents update the state of shared entities. "shared-memory" paradigm Systems: Storage and Workload Mgmt Entities: Jobs, Cache-Replicas, Tasks Figure 1: DIRAC subsystems ▪ jobs often get into incorrect (or inconsistent) states Figure 6: Violation of progress and safety requirements ▪ staging requests become stuck ▪ difficult to trace the root of such unexpected behavior Figure 2: Job state machine many scenarios and components Agents and storage become processes. ▪ manual intervention necessary Control-flow is abstracted using mCRL2 non-deterministic choice and if-then-else constructs. There are formal or systematic States of entities are described using Figure 7: "Zombie" job starts running after being killed approaches to tackle this! custom abstract data types. Conclusions State-space generation Distributed systems are difficult to Why Formal Methods? reason about; many components, all run in parallel. Based on process algebra laws no ambiguity Formal methods are a more rigorous addition to testing, as a way to Model checking tools improve software quality. full control over the execution of parallel processes. This way one gains more insight A sound model needs to be written into the system behavior. manually. This requires experience and can be error-prone. Automatically explore the entire state-space and check if some Similar techniques can be re-applied "interesting" properties hold. to similar systems, once the learning curve has lapsed. Stronger than testing Some drawbacks... Future Work Abstraction of the "real" behavior is needed. Automate (to some degree) the This means one must build a sound model. translation from code to model. Expertise in formal methods and the system Figure 3: State-space visualisation with LTSView domain is necessary. The state-space of the model can explode. Analysis & Issues Problems can be discovered while building and debugging the model: Language & Toolset Actions: atomic building blocks can carry data parameters Processes: composed of actions, using algebra operators Figure 4a: XSim simulator trace of a job workflow Figure 4b: DIRAC logging info of a job workflow Built-in data types integers, booleans, lists, sets, bags Abstract data types Figure 5: State-transition visualisation with DiaGraphica