Fouten in software kosten de Amerikaanse economie ongeveer zestig miljard dollar per jaar, becijfert het National Institute for Standards and Technology. Falende systemen worden in veel gevallen opnieuw gestart. Dit is echter vaak tijdrovend en kostbaar. Bovendien kunnen gegevens verloren gaan. George Candea, wetenschapper aan de universiteit van Stanford, heeft onderzoek gedaan naar een ‘componentenherstart’.
Candea koppelt dataherstel los van procesherstel en kan daardoor een falende component opnieuw laten starten zonder dat de gebruikte data verloren gaat. In zijn onderzoeksverslag spreekt hij van een ‘microreboot’, een goedkoop proces dat gebruikt kan worden bij de eerste tekenen van falende processen.
Alle software bevat fouten, stelt Candea in zijn rapport. De meeste daarvan zijn moeilijk te vinden en lastig op te lossen. Wanneer deze fouten optreden hebben systeembeheerders niet de tijd om uitgebreide testen uit te voeren. Daarnaast blijkt dat 80 procent van het falen van systemen komt door fouten waarvoor op dat moment geen oplossing beschikbaar is. Volgens Candea zijn veel fouten op te lossen door een herstart, zelfs als de oorzaak onbekend is. Scheiding van proces- en dataherstel voorkomt dataverlies en onvoorspelbare herstarttijden. De componentenherstart levert veel van de voordelen van een complete herstart op, maar is aanzienlijk sneller. Bovendien gaat er minder werk verloren. Daarnaast kan een componentenherstart door de geringe kosten altijd als eerste herstelhulpmiddel worden gebruikt.
Geheugenlekken
In zijn proefopstelling maakte Candea gebruik van Jboss, een open broncode applicatieserver geschreven in Java. Sommige J2EE-applicaties kunnen nu al gebruikmaken van componentenherstarts en hebben slechts geringe aanpassingen nodig. Bij andere J2EE-applicaties moet de manier waarop het programma omgaat met de staat van de sessie los gekoppeld worden van de applicatielogica. Ook moet nagegaan worden of de huidige staat van de sessie spoort met de gedane transacties.
Volledige scheiding van proces- en dataherstel, maakt het mogelijk om ‘microreboots’ te gebruiken in een J2EE-applicatieserver, aldus Candea. Deze componentenherstarts hebben dezelfde resultaten als volledige herstarts, maar zijn minder ingrijpend en stukken goedkoper. Daarnaast zijn geheugenlekken terug te winnen zonder het systeem af te sluiten, waardoor een constante beschikbaarheid gegarandeerd wordt. Volgens Candea kan de componentenherstart-methode de komende drie tot zes jaar in applicaties worden geïmplementeerd.< BR>
Onderzoeksrapport: http://www.arxiv.org/abs/cs.OS/0406005