Checkpointing A Main-Memory Database
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
Tik-106
Degree programme
Language
en
Pages
98
Series
Abstract
In the modern world, with ever growing main-memory sizes and the need for faster and guaranteed response times for accessing and updating of data, main-memory databases have become a viable option for data management in several application fields, such as data communications, finance, and embedded databases. While disk based databases, developed to excellence over several decades, still hold their ground for most applications, they structure data for optimal disk access and are thus inherently incapable of fully realizing the performance offered by main-memory solutions. A key aspect of main-memory databases is the independence of transaction processing from disk access, essential for providing predictable response times. Check pointing a main-memory database can interfere with this independence if not designed properly. Traditionally, fuzzy checkpoints have offered a non-blocking method for producing a checkpoint, but require a mandatory undo/redo transaction log to bring the fuzzy checkpoint back into a consistent state. Consistent checkpoints offer more flexibility for transaction logging, but have other drawbacks, such as a major memory usage overhead when using the copy-on-update method. This Thesis presents a new consistent main-memory database checkpoint method that avoids extraneous memory usage and other limitations of traditional consistent methods. This method is part of the main-memory database engine called Solid In-memory Relational ENgine (SIREN). By using a consistent checkpoint method, SIREN is able to use logical redo-only logging and to function without logging at all, providing checkpoint only recovery. SIREN does not use traditional physical pages consisting of tuples in contiguous memory blocks, but logical pages, collections of freely floating tuples. SIREN uses a method of pending changes, similar to copy-on-update, but performed on a per tuple basis. This allows SIREN to rearrange the tuples between pages for optimal check pointing order, effectively eliminating the memory usage overhead of copy-on-update. Furthermore, SIREN offers a complete algorithm for executing SQL standard compliant transactions. The transaction processing is also main-memory optimized by utilizing pure main-memory indexes and an efficient version of shadow updating. SIREN compares favourably to other methods presented in the current research, and allows for great flexibility by its straightforward consistent checkpoints and optional logging.Nykypäivänä, tietokoneiden keskusmuistien ja nopeamman sekä taatun vasteajan tarjoavan tiedonhallinnan vaatimusten kasvaessa, on keskusmuistitietokannoista tullut houkutteleva vaihtoehto tietoliikenteessä, taloussovelluksissa ja erilaisissa sulautetuissa tiedonhallintajärjestelmissä. Levypohjaiset tiedonhallintajärjestelmät ovat kehitetty huippuunsa vuosikymmenien aikana ja toimivat erinomaisesti omassa maailmassaan, mutta levykäyttöön optimoidut algoritmit eivät pysty täysin hyödyntämään keskusmuistin tarjoamia etuja. Yksi keskusmuistikantojen avaintekijöitä on transaktiosuorituksen riippumattomuus levyn käytöstä, mikä on tärkeää pyrittäessä takaamaan ennustettavat vasteajat. Tarkistuspisteen ottaminen keskusmuistitietokannasta häiritsee helposti tätä riippumattomuutta, jos tiedonhallintajärjestelmä ei ole suunniteltu oikein. Perinteisesti sumeat tarkistuspisteet ovat tarjonneet ei-pysäyttävän tarkistuspisteen, mutta riippuvat tapahtumalokista, jonka avulla epäkonsistentti tarkistuspiste tuodaan konsistettiin tilaan. Konsistentit tarkistuspisteet, kuten kopioi-päivitettäessä, taas syövät huomattavasti ylimääräistä muistia tai sisältävät muita rajoitteita. Solid In-memory Relational ENgine (SIREN) on tarkistuspistettä ja tapahtumalokia käyttävä keskusmuistitietokannan moottori. Toisin kuin kirjallisuudessa usein käytetyt sumeat tarkistuspisteet, SIREN käyttää konsistenttia tarkistuspistettä ja vapaaehtoista loogista toistolokia. SIREN:in tarkistuspistemetodi myös ratkaisee muiden konsistenttien tarkistuspistemetodien ongelmia ja rajoituksia. SIREN ei käytä perinteistä yhtenäisestä muistialueesta koostuvaa fyysistä sivua, vaan sijoittaa monikot vapaasti muistiin loogiseksi rakenteeksi. SIREN käyttää monikkokohtaista kopioi-päivitettäessä-ratkaisua, joka vähentää ylimääräistä muistin ja prosessoriajan kulutusta. Lisäksi tämä mahdollistaa monikkojen siirtämisen sivujen välillä. optimaalista tarkistuspisteen muodostamisjärjestystä varten. SIREN tarjoaa lisäksi täyden algoritmin SQL-standardin mukaisten transaktioiden suorittamiseen keskusmuistioptimoidusti käyttäen keskusmuistioptimoituja indeksirakenteita ja tehokasta transaktiokohtaista varjoaluetta. SIREN vertautuu hyvin muihin nykyisessä tutkimuksessa esitettyihin algoritmeihin ja tarjoaa erityisesti joustavuutta konsistentin tarkistuspisteen muodossa.Description
Supervisor
Soisalon-Soininen, EljasKeywords
main-memory database, keskusmuistitietokanta, checkpoint, tarkistuspiste, logging, tapahtumaloki, recovery, toipuminen