Databases benutten snelle hardware niet
De reden hiervoor is de inefficiënte wijze waarop een DBMS omspringt met de gegevens. De processors zijn in de afgelopen jaren aanzienlijk sneller geworden, de geheugens zijn echter nauwelijks versneld. "De toegangstijd van geheugenchips is bijna niet korter geworden. Wil je dus winst boeken, dan zul je op een andere manier het geheugen moeten aanspreken", aldus promovendus Manegold. Optimalisatie De databases van tegenwoordig zijn, zoals dat heet, geoptimaliseerd, zodat ze zo efficiënt mogelijk gegevens kunnen spuien. "Die optimalisatie is echter wel gebaseerd op de hardware van twee decennia geleden. Dat wil dus zeggen dat er absoluut geen rekening wordt gehouden met versnellende onderdelen zoals cachegeheugens. De makers van de databasesoftware hebben vooral gekeken naar het minimaliseren van het aantal lees/schrijfhandelingen met betrekking tot het schijfgeheugen. Ook dat is weer een verouderde aanpak", aldus Manegold. De tegenwoordige hardware heeft zoveel werkgeheugen, dat het doorgaans helemaal niet meer nodig is om de gegevens doorlopend van en naar schijf te transporteren. De hele database, of een groot gedeelte daarvan, past gewoon in het werkgeheugen. Manegold: "Een pc met een geheugen van 1 gigabyte en een harde schijf van 160 GB is tegenwoordig geen uitzondering meer. En bovendien, dergelijke hardware is betaalbaar en zal dus door veel mensen worden gebruikt om een database op bij te houden." De komst van 64bitsprocessors heeft een grote invloed gehad op de groei van databases. Dergelijke chips hebben een groot aantal adreslijnen, waarmee een uitgebreid werkgeheugen in één keer kan worden geadresseerd. Bijbehorende grote werkgeheugens zijn mogelijk gemaakt door geheugenIC’s van een steeds grotere capaciteit. Deze factoren bereidden de weg voor de ‘very large database’, kortweg VLDB. In het begin was dit type gegevensbestand alleen voorbehouden aan gebruikers van grote servers. Tegenwoordig is de VLDB ook binnen het bereik van de doorsneegebruiker gekomen. De toegangstijd van de geheugenchips was vroeger redelijk afgestemd op de rekensnelheid van de processor. Tegenwoordig is die processor aanzienlijk sneller dan het geheugen. Om te voorkomen dat de centrale chip doorlopend moet wachten tot de gewenste gegevens uit het geheugen zijn gehaald wordt cachegeheugen toegepast. Doorgeefluik Manegold: "Beschouw de cache maar als een snel doorgeefluik tussen processor en geheugen. Als de gegevens die de processor nodig heeft netjes in de cache staan, heb je een zeer snel werkend systeem. Het grote probleem is het op toepasselijke wijze vullen van die cache. De standaard DBMSpakketten schieten te kort waar het gaat om de juiste vulling van de cache." Anders gezegd: door de verkeerde manier van werken duurt het beantwoorden van een databasequery erg lang. "Je introduceert een ongewenste wachttijd, wat betekent dat het geheugen een kostenpost is geworden. Die mag je niet negeren, daar moet je je software beter op afstemmen. Dit was een belangrijke conclusie van het promotieonderzoek", aldus Manegold. Efficiency In het kader van zijn onderzoek ontwikkelde de promovendus software waarmee de efficiency van de diverse cachegeheugens gemeten kan worden. Deze programmatuur draagt de naam Calibrator en meet een aantal zaken, waaronder het aantal en de snelheid van de caches, de bandbreedte tussen processor en geheugens en de toegangstijd van de geheugens. Op basis van die gegevens kan een rekenmodel worden gemaakt, dat aangeeft hoeveel tijd een DBMS nodig zal hebben om gegevens uit het geheugen op te halen. Die tijd kan vertaald worden in een geldbedrag, zodat de gebruikers van een DBMS beter inzicht krijgen in de kosten die hun werkzaamheden met zich meebrengen. "Door een geautomatiseerde techniek te gebruiken, kunnen de kostenmodellen snel worden opgezet. Het grote aantal meetgegevens zorgt ervoor, dat er niet meer handmatig gerekend hoeft te worden. Het opstellen van zo’n kostenformule is een ingewikkelde zaak. Met de verzamelde gegevens kan een nieuw, efficiënt databasemodel worden opgesteld, dat de beschikbare hardware veel beter gebruikt. In de praktijk zijn al versnellingen met een factor tien gemeten, in vergelijking met de traditionele situatie", aldus Manegold. In zijn proefschrift heeft Manegold de basis gelegd voor een nieuwe aanpak van databases. De gegeven technieken zijn nog niet allemaal uitgerijpt en gebruiksklaar, verder onderzoek moet daar voor zorgen.