Using Application-Driven Checkpointing Logic for Hot Spare High Availability
No Thumbnail Available
URL
Journal Title
Journal ISSN
Volume Title
Helsinki University of Technology |
Diplomityö
Checking the digitized thesis and permission for publishing
Instructions for the author
Instructions for the author
Authors
Date
2004
Department
Major/Subject
Ohjelmistotekniikka
Mcode
T-106
Degree programme
Language
en
Pages
85
Series
Abstract
For critical services, downtime is not an option. The downtime of a service can be addressed by replicating the units which provide the service. However, if the session state is important, it is not enough to simply replicate units: sharing the continuously updated internal state of the units must also be made possible. If execution can be continued on another unit after the point-of-failure without any significant loss of state, the unit is said to have a Hot Spare. Saving the state of a unit so that it can be restored at a later point in time and space is known as check pointing. For the check pointing approach to be a viable option in interactive services, it must not disrupt the normal program operation in any way noticeable to the user. The goal of this work is to present a check pointing facility which can be used in applications where check pointing should and cannot disrupt normal program operation. To accomplish this, the responsibility of taking a checkpoint is left up to the application. The implications are twofold: check pointing will be done at exactly the right time and for exactly the right set of data, but each application must be individually modified to support check pointing. A framework is provided for the application programmer so that it is possible to concentrate on the important issues when adding Hot Spare capabilities: what to checkpoint and when to checkpoint. Check pointing efficiency is further increased by introducing kernel functionality to support incremental checkpoints.Kriittisillä palveluilla ei ole varaa olla epäkunnossa. Palvelun saatavuutta voidaan parantaa monistamalla yksiköt, jotka tarjoavat palvelua. Jos istunnon sisäinen tila on tärkeä, ei pelkkä yksiköiden monistaminen riitä; istunnon sisäinen tila tulee myös kyetä siirtämään varayksiköihin. Jos suoritusta voidaan jatkaa varayksikössä ilman merkittävää sisäisen tilan häviötä, sanotaan yksikön olevan kuumavarmennettu. Yksikön tilan tallentamista mahdollista palautusta varten sanotaan tarkistuspisteen ottamiseksi. Jotta tarkistuspisteen ottaminen interaktiivisessa palvelussa olisi mahdollista, se ei saa häiritä normaalia suoritusta haitaksi asti. Tämän työn päämääränä on luoda tarkistuspisteiden ottamista varten kehys, jonka avulla tarkistuspisteiden ottaminen täyttää aiemmin määritellyn tehokkuuskriteerin. Ongelman ratkaisemiseksi tarkistuspisteiden ottaminen jätetään sovelluksen vastuulle. Tämän hyvänä puolena on se, että oman semanttisen käyttäytymisensä tuntevana sovellus voi ottaa tarkistuspisteen juuri oikealle datajoukolle juuri oikeaan aikaan. Huonona puolena on luonnollisesti se, että jokainen sovellus pitää yksitellen muokata tukemaan tarkistuspisteiden ottamista. Työssä laaditun ohjelmointikirjaston tarkoitus on päästää sovelluksen muokkaaja painimaan keskeisten kysymysten parissa: milloin tarkistuspiste otetaan ja mitä siihen sisältyy. Tarkistuspisteiden ottamista tehostetaan entisestään muokkaamalla käyttöjärjestelmän ydintä niin, että se tarjoaa tarkistuspisteiden ottamiseen sopivia rajapintoja.Description
Supervisor
Soisalon-Soininen, EljasThesis advisor
Honkanen, MikaKeywords
hot spares, kuumavarmennus, high availability, korkea käytettävyys, checkpointing, tarkistuspisteiden ottaminen, application-driven checkpointing, sovellusvetoiset tarkistuspisteet, kernel support for checkpointing, käyttöjärjestelmän ytimen tuki tarkistuspisteille