Automatic retrieval and analysis of high availability scenarios from system execution traces: A case study on hot standby router protocol

Abstract High availability (HA) is becoming an increasingly important requirement in a growing number of domains. It is even mandatory for critical systems, such as networking and communications, that cannot afford downtime. Such systems often monitor the state of crucial services and produce huge amounts of execution trace data, where functional and non-functional log entries are intertwined; hence they are hard to dissociate and analyze. Dynamic analysis aims at capturing and analyzing run-time behavior of a system based on its execution traces. In this paper, we apply dynamic analysis to retrieve and analyze HA scenarios from system execution traces. Our proposed approach aims to help analysts understand and report on how a highly available system detects and recovers from failures. As a proof of concept, we have selected the Hot Standby Router Protocol (HSRP) in order to demonstrate the applicability of our approach. We have evaluated empirically the effectiveness of our technique using four real-world case studies of IP networks running HSRP. Results have shown that high availability scenarios were successfully retrieved and analyzed. Moreover, results have shown that our prototype tool HAAnalyzer was able to effectively unveil high availability behavioral and temporal errors, that were seeded in the execution traces.

[1]  Abdelwahab Hamou-Lhadj,et al.  Techniques for Reducing the Complexity of Object-Oriented Execution Traces , 2003, VISSOFT.

[2]  Arie van Deursen,et al.  Execution trace analysis through massive sequence and circular bundle views , 2008, J. Syst. Softw..

[3]  Yann-Gaël Guéhéneuc,et al.  On feature traceability in object oriented programs , 2005, TEFSE '05.

[4]  Juan Gonzalez,et al.  Automatic detection of parallel applications computation phases , 2009, 2009 IEEE International Symposium on Parallel & Distributed Processing.

[5]  Hermann Kopetz,et al.  Dependability: Basic Concepts and Terminology , 1992 .

[6]  Kevin Downs,et al.  Internetworking Technologies Handbook , 1997 .

[7]  David Harel,et al.  Towards Trace Visualization and Exploration for Reactive Systems , 2007 .

[8]  Karen L. Karavanic,et al.  Scalable Event Trace Visualization , 2009, Euro-Par Workshops.

[9]  Andy Zaidman,et al.  Scalability solutions for program comprehension through dynamic analysis , 2006, Conference on Software Maintenance and Reengineering (CSMR'06).

[10]  Wil M. P. van der Aalst,et al.  Activity Mining by Global Trace Segmentation , 2009, Business Process Management Workshops.

[11]  Denys Poshyvanyk,et al.  When and how to visualize traceability links? , 2005, TEFSE '05.

[12]  Jameleddine Hassine Describing and assessing availability requirements in the early stages of system development , 2013, Software & Systems Modeling.

[13]  Cláudio T. Silva,et al.  Visualization and Analysis of Parallel Dataflow Execution with Smart Traces , 2014, 2014 27th SIBGRAPI Conference on Graphics, Patterns and Images.

[14]  Jameleddine Hassine,et al.  Exploring Early Availability Requirements Using Use Case Maps , 2011, SDL Forum.

[15]  P ReissSteven Dynamic detection and visualization of software phases , 2005 .

[16]  Katsuro Inoue,et al.  Feature-level phase detection for execution trace using object cache , 2008, WODA '08.

[17]  Arie van Deursen,et al.  A Controlled Experiment for Program Comprehension through Trace Visualization , 2011, IEEE Transactions on Software Engineering.

[18]  S. Winkler On Usability in Requirements Trace Visualizations , 2008, 2008 Requirements Engineering Visualization.

[19]  Smita Paira,et al.  A brief study and analysis of different searching algorithms , 2017, 2017 Second International Conference on Electrical, Computer and Communication Technologies (ICECCT).

[20]  Adrian Kuhn,et al.  Exploiting the Analogy Between Traces and Signal Processing , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

[21]  David Harel,et al.  On tracing reactive systems , 2011, Software & Systems Modeling.

[22]  M. R. Peters Girls Teaching Girls: Free-Choice Collaborative Learning Through Social Computing , 2007 .

[23]  Jameleddine Hassine,et al.  Toward a UCM-Based Approach for Recovering System Availability Requirements from Execution Traces , 2014, SAM.

[24]  Erwin Laure,et al.  Automatic On-Line Detection of MPI Application Structure with Event Flow Graphs , 2015, Euro-Par.

[25]  Thomas A. Corbi,et al.  Program Understanding: Challenge for the 1990s , 1989, IBM Syst. J..

[26]  Jameleddine Hassine,et al.  Modeling Early Availability Requirements Using Aspect-Oriented Use Case Maps , 2013, SDL Forum.

[27]  Hanspeter Mössenböck,et al.  Scene: using scenario diagrams and active text for illustrating object-oriented programs , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[28]  Arie van Deursen,et al.  A Systematic Survey of Program Comprehension through Dynamic Analysis , 2008, IEEE Transactions on Software Engineering.

[29]  Mario Martinelli,et al.  Optical Network Survivability: Protection Techniques in the WDM Layer , 2002, Photonic Network Communications.

[30]  Josef Horalek,et al.  Gateway redundancy protocols , 2014, 2014 IEEE 15th International Symposium on Computational Intelligence and Informatics (CINTI).

[31]  Jameleddine Hassine Early Availability Requirements Modeling Using Use Case Maps , 2011, 2011 Eighth International Conference on Information Technology: New Generations.

[32]  Steven P. Reiss Dynamic detection and visualization of software phases , 2005, WODA '05.

[33]  Fredric C. Gey,et al.  The relationship between recall and precision , 1994 .

[34]  Yann-Gaël Guéhéneuc,et al.  A Heuristic-Based Approach to Identify Concepts in Execution Traces , 2010, 2010 14th European Conference on Software Maintenance and Reengineering.

[35]  C MurphyGail,et al.  Visualizing dynamic software system information through high-level models , 1998 .

[36]  Iulian Ober,et al.  Seeing errors: model driven simulation trace visualization , 2012, MODELS'12.

[37]  Abdelwahab Hamou-Lhadj,et al.  Stratified sampling of execution traces: Execution phases serving as strata , 2013, Sci. Comput. Program..

[38]  Carl E. Landwehr,et al.  Basic concepts and taxonomy of dependable and secure computing , 2004, IEEE Transactions on Dependable and Secure Computing.

[39]  Jane Cleland-Huang,et al.  Visualization and Analysis in Automated Trace Retrieval , 2006, 2006 First International Workshop on Requirements Engineering Visualization (REV'06 - RE'06 Workshop).

[40]  Steven P. Reiss,et al.  Visualizing program execution using user abstractions , 2006, SoftVis '06.

[41]  Arie van Deursen,et al.  Trace visualization for program comprehension: A controlled experiment , 2009, 2009 IEEE 17th International Conference on Program Comprehension.

[42]  Pankaj Jalote,et al.  Fault tolerance in distributed systems , 1994 .

[43]  Abdelwahab Hamou-Lhadj,et al.  Summarizing the Content of Large Traces to Facilitate the Understanding of the Behaviour of a Software System , 2006, 14th IEEE International Conference on Program Comprehension (ICPC'06).

[44]  Abdelwahab Hamou-Lhadj,et al.  Measuring various properties of execution traces to help build better trace analysis tools , 2005, 10th IEEE International Conference on Engineering of Complex Computer Systems (ICECCS'05).

[45]  Miryung Kim,et al.  Validity concerns in software engineering research , 2010, FoSER '10.

[46]  Abdelwahab Hamou-Lhadj,et al.  Challenges and requirements for an effective trace exploration tool , 2004, Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004..

[47]  Swapna S. Gokhale,et al.  System Availability Analysis Considering Hardware/Software Failure Severities , 2005, 29th Annual IEEE/NASA Software Engineering Workshop.

[48]  Thomas Ball,et al.  The concept of dynamic analysis , 1999, ESEC/FSE-7.

[49]  Stefan Kugele,et al.  Visualization of Trace Links and Change Impact Analysis , 2016, 2016 IEEE 24th International Requirements Engineering Conference Workshops (REW).

[50]  Wilhelm Hasselbring,et al.  Comparing trace visualizations for program comprehension through controlled experiments , 2015, ICPC 2015.

[51]  Jameleddine Hassine,et al.  A framework for the recovery and visualization of system availability scenarios from execution traces , 2018, Inf. Softw. Technol..

[52]  Bjørn N. Freeman-Benson,et al.  Visualizing dynamic software system information through high-level models , 1998, OOPSLA '98.