High-availability Databases

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

Date

2007

Major/Subject

Ohjelmistotekniikka

Mcode

T-106

Degree programme

Language

en

Pages

59

Series

Abstract

In short, high availability usually means that the investigated system is able to continue operation and accept new connections 99.999% of time. However, the concept of availability and the definition of high availability involve many other individual concepts and aspects, like reliability, recoverability, redundancy-based fault tolerance and requirement criteria for successful operation under failures. In this study, concepts of availability and high availability arc first examined. Methods for reaching high availability in computing systems are discussed at a general level, then putting the focus on high-availability database management system details. Hotstandby database process failures are described in more detail and failover time in the primary server process is measured. The tested database is based on replicating the database transaction log and sending heartbeat messages between the active and the standby server process. Both processes are monitored and instructed by a custom high-availability controller application. In the measurements, the system was put under a load by using TM1 performance benchmark and simulating a failure of the active or standby server process. The tests revealed no significant differences in the measured failover times when using different replication methods, but the effect of a server process failure in the system throughput is more clearly visible. An average failover time in primary server process failure was measured to be about 500 milliseconds. Recovery from degraded availability state back to full availability state was noted to be considerably slower with 1-safe replication than using 2-safe replication.

Korkea saatavuus (aikakäytettävyys) tarkoittaa saatavuusluokituksen tasoa 5, jossa järjestelmä tai sen osa on valmiina palvelemaan uusia pyyntöjä 99,999 % osuuden ajasta. Vikasietoisuus, ohjelmistojen kohdalla erityisesti häiriöistä toipuminen, on ratkaisevassa asemassa korkean saatavuuden saavuttamisessa. Tutkimuksessa esitellään korkean saatavuuden järjestelmien ja ohjelmistojen toteutuksen teknisiä ratkaisuja. Erityisenä sovelluskohteena käsitellään korkean saatavuuden toteuttavia tietokannan hallintajärjestelmiä. Työ koostuu kirjallisuustutkimuksesta ja mittauksista, joissa tavoitteena oli havainnoida järjestelmähäiriöiden aiheuttamia muutoksia palvelun saatavuuteen ja tietokannan suorituskykyyn sekä mitata primääripalvelimen toipumisaika. Testeissä käytettiin transaktiopohjaista levylle tallentavaa relaatiotietokantaa. Järjestelmä koostui kahdesta erillistä rinnakkaistietokannan solmusta, jotka yhdessä muodostivat korkean saatavuuden tason toteuttavan tietokantaparin. Järjestelmää kuormitettiin tietokantojen suorituskykytestausohjelmiston avulla. Mittaustuloksissa raportoidaan tilanmuutoksiin kuluva palautumisaika primäärissä tietokantasolmussa sekä tutkitaan järjestelmän toipumisaikaa alentuneen saatavuuden tilasta täydellisen saatavuuden tilaan käytettäessä eri replikointimenetelmiä. Tuloksissa ei havaittu merkittäviä eroja toipumisajassa eri replikointimenetelmien välillä. Vaihdettaessa primääripalvelinta järjestelmähäiriön takia, keskimääräinen palautumisaika oli noin 500 millisekuntia. Lisäksi 1-safe -replikoinnin todettiin palautuvan 2-safe -replikointia huomattavasti hitaammin täydellisen saatavuuden tilaan.

Description

Supervisor

Soisalon-Soininen, Eljas

Thesis advisor

Lindström, Jan

Keywords

thesis, diplomityö, high availability, tietokanta, database, korkea saatavuus, replication, aikakäytettävyys, failover

Other note

Citation