Carefree databaseservers
Auteur: Rick F. van der Lans
Geschreven: mei 1999
Gepubliceerd in: CM Corporate.Net, nummer 132

Het is een bekend fenomeen. Als we een database installeren en er vervolgens gegevens in plaatsen, zal de performance van de database langzaam verslechteren. Hoe komt dat? Heel simpel, de database raakt vervuild. Bijvoorbeeld, omdat gegevens online toegevoegd, gewijzigd en verwijderd worden, ontstaan "gaten" die een negatief effect hebben op I/O. Om deze reden raken de statistische gegevens die zo essentieel zijn voor de optimiser uit de pas. En zo zijn er meer redenen.
Elke databasebeheerder weet dit en plant daarom periodiek jobs om gegevens te reorganiseren, om statistische informatie bij te laten werken (zodat de optimiser de meest recente gegevens heeft), enzovoorts. Daarnaast moet hij of zij continu diverse parameters bijstellen omdat bijvoorbeeld de workload verandert (er komen meer gebruikers bij) en andere applicaties worden geïnstalleerd. Deze parameters hebben onder andere invloed op de buffergrootte of de wijze van locken.
Kortom, een databaseserver moet de gehele dag in de gaten gehouden worden (ofwel, vertroeteld worden) willen we er een acceptabele performance uithalen. Zo was het vroeger en zo is het nog steeds. Omdat ervaren databasebeheerders dit werk al jaren doen en soms met een lichte draai aan een voor iedereen onbekend knopje de performance van heel slecht tot heel goed kunnen veranderen, worden ze veelal door hun collega's als magiërs beschouwd.
Eigenlijk hebben deze databaseservers iets weg van de oude stoomlocomotieven. Hier moest de machinist ook continue bezig zijn. Hij moest aan hendeltjes draaien, palletjes overhalen om klepjes meer open te zetten, of kolen op het vuur gooien, noem maar op. Dit in tegenstelling tot de moderne elektrische locomotieven, waar de machinist eigenlijk alleen maar gas hoeft te geven en te remmen.
De vraag is of dit nog een gewenste situatie is? Als we praten over klassieke, data-entry-achtige systemen, dan is het antwoord waarschijnlijk 'ja'. Hier willen we inderdaad honderd knoppen waaraan gedraaid kan worden om de perfecte/maximale performance te krijgen. Ook in zware datawarehouse-omgevingen zal deze noodzaak bestaan. Maar wat als we praten over databases die in kleine apparaatjes draaien of databases die meegeleverd worden met een of ander softwarepakket? Dan is het antwoord waarschijnlijk 'nee'.
Er komen steeds meer kleine apparaten op de markt waarbinnen databases draaien. Denk aan portable telefoons, palmtop computers, productenscanners in winkels, boordcomputers van auto's, en ga maar door. Al deze apparaten willen gegevens opslaan. Een database die vertroeteld wil worden, is hier onacceptabel. Stelt u zich eens voor dat als u uw portable telefoon meeneemt u ook een databasebeheerder moet meenemen, in het geval de performance van de database terugloopt. Of als u plotseling moet remmen, het dashboard in uw auto vertelt dat dat nu even niet kan, omdat de databaseserver heeft besloten eerst wat gegevens bij te werken. Nee, dit soort databases behoort zichzelf te regelen. Naar dit onderwerp is veel research gedaan en heeft geleid tot enkele interessante producten, waaronder Cloudscape, Solid en SQLBase. Zij worden heel toepasselijk carefree databaseservers genoemd.
De andere situatie betreft aangeschafte softwarepakketten. Veronderstel dat een tandarts een pakket koopt voor het beheer van zijn patiëntenadministratie. En stel dat dit pakket intern een klassieke databaseserver gebruikt. Dit zou betekenen dat de tandarts periodiek de database moet optimaliseren om de performance op een acceptabel niveau te houden. U kunt zich voorstellen dat een tandarts hier geheel niet in geïnteresseerd is en waarschijnlijk ook niet de tijd voor heeft. (Of zou dit de reden zijn waarom je 's ochtends soms zo lang moet wachten). Databases die in dit soort omgevingen worden ingezet, worden vaak aangeduid met de term embedded databases. Ook hier geldt dat hoe meer carefree deze producten zijn, hoe beter het is. De Progress-databaseserver is een prima voorbeeld van een dergelijk product.
Uiteraard zijn de carefree databaseservers nog niet geschikt voor het hele zware werk. Daar willen we nog steeds allerlei knoppen hebben om de performance te verbeteren. De carefree databaseservers rukken echter op. Waren ze in het begin alleen geschikt voor de opslag van alle namen van de goudvissen in je privé-collectie, tegenwoordig staan ze al hun mannetje in departementale omgevingen. Laten we hopen dat deze ontwikkeling doorgaat en dat we steeds minder tijd hoeven te besteden aan dit afstemmen van databases. Misschien kunnen we dan allemaal binnenkort onze stoomlocomotieven aan de kant zetten (of in het museum) en kunnen we allemaal overstappen op een elektrische. Het zou ons veel geld besparen.
Advies: Ga deze producten eens bekijken. Bestudeer of ze al krachtig genoeg zijn voor uw workload. Hiermee maken we in ieder geval de leveranciers van de stoomlocomotieven zenuwachtig en zullen ook zij meer gaan overwegen hun databaseservers carefree te maken.