Dependability and performance evaluation

Software rejuvenation, checkpointing, and the performance and availability of cloud and 5G networks.

How do you keep a continuously running system from going down, and how do you bring it back quickly when it does? We approach both questions with stochastic models.

Operating systems, middleware and communication applications frequently show software ageing. A software failure depends not only on defects introduced during development but on the running environment — consumed resources, fragmented files — and so becomes more likely as time passes. Software rejuvenation counters this by applying preventive action, such as a restart, before failure occurs. Our laboratory was among the first to ask when rejuvenation should be performed.

For data integrity we work on checkpointing. Parallel redundancy can guarantee high reliability, but its development and operating costs are extreme and its applicability limited. Checkpointing instead saves intermediate state periodically and rolls back on failure, securing reliability at a far lower cost. We derive the optimal interval between checkpoints from stochastic models.

More recently we have widened the scope to cloud and network systems: performance evaluation using CPU utilisation data from data centres, modelling of server clusters, and handover analysis for 5G heterogeneous networks using stochastic Petri nets and Poisson point processes.

Research highlights in this area

Software from this area

gospn Go

A tool for analysing stochastic Petri nets.

relibmss Python

A Python package for binary and multi-state system reliability using BDD/MDD.

Install

relib-rs Rust

Rust libraries for decision diagrams (BDD, ZDD, MDD) and reliability analysis.