Database als Dinosaurus
Relationele databases gaan net zoals dinosaurussen verdwijnen

Bij Lizatec  - offshore Oracle ontwikkelaar van het eerste uur - zijn wij altijd scherp alert op nieuwe ontwikkelingen. Dat moeten wij, want vanuit onze software fabriek in St. Petersburg voeren wij uitsluitend vaste prijs opdrachten uit. Als dan een geloofwaardige nieuw soort database technologie wordt gedemonstreerd, die 9000 keer zo snel is als bestaande technologie, dan wordt je natuurlijk wakker.  
Wij zijn ontzettend tevreden over Oracle als zodanig, het is natuurlijk niet eenvoudig te beheersen, maar qua mogelijkheden is het superieur, ook vergeleken met grote concurrent Microsoft. Maar als je iets kan vinden dat 9000 keer zo snel, is wat zouden onze klanten hiermee blij zijn! De architectuur van onze systemen wordt totaal anders met een database die veel sneller is.

Relationele database is niet zo logisch
Veel ontwikkelaars denken dat het relationele paradigma een techniek is om de werkelijkheid te modeleren. Het is echter precies andersom, het relationele denken is juist vanuit de beperkingen van de technologie ontstaan.   Eind jaren 70 van de vorige eeuw werden bestanden opgedeeld in records en velden. Het was echter erg lastig binnen een programma om met deze records en velden om te gaan, als je een veld toevoegde aan een bestand moest je het bestand converteren en alle programma's aanpassen die het bestand benaderden. Na een paar mislukte pogingen (Codasyl, IMS), bedacht men binnen IBM (Codd) een beter theoretisch raamwerk. Helaas voor IBM ging Oracle er met de buit vandoor en realiseerde de eerste relationele database.  Eindelijk kon je de database veranderen, en werd je niet  gedwongen tegelijk ook alle programma's te  veranderen.
Hierna werden allerlei belangrijke en onbelangrijke functies toegevoegd, en zo onstond de huidige databases. Het uiteindelijke resultaat is ongelofelijk ingewikkeld en complex. Als je Oracle nu naast de Eiffeltoren zou zetten, is Oracle ongetwijfeld hoger.

De gevolgen van overvloedig RAM
Iedere DBA'er die een beetje oplette heeft al geconstateerd dat veel databases volledig in het RAM van een computer passen. En is er zich hopelijk ook van bewust dat veel van de complexiteit van een DBMS het gevolg is van het vreemde ronddraaiende ding dat harde schijf  heet.
Indien de hele database in RAM wordt gezet is het grootste deel van het DBMS terstond overbodig, en wat overblijft is een veel sneller en eenvoudiger systeem.    
Dergelijke databases worden ' in memory' databases genoemd.

Voordelen van ' in memory databases'
Een dergelijk Database Management Systeem heeft vele voordelen:

  • Enorm veel sneller.
    Het is natuurlijk logisch dat zodra de onderliggende techniek eenvoudiger en sneller is, ook het resultaat eenvoudiger en sneller is. Overbodige tussenstappen kunnen worden weggelaten, de structuur van het schema is eenvoudiger. En alles staat in RAM.
  • betrouwbaarder
    De hoeveelheid programmatuur is kleiner, en daardoor meer betrouwbaarder. Door de hogere snelheid zijn er minder Servers nodig en zaken als load balancing kan achterwege worden gelaten. Processen zijn sneller klaar, en hebben hierdoor minder fout kans.
  • Minder beheer
    Door de eenvoudige structuur zijn ze makkelijker te installeren en te onderhouden. Het beheer is veel minder werk.
  • Eenvoudiger schema
    Er kunnen ook andere structuren dan tabellen worden opgenomen in het schema, wat applicatie ontwikkeling eenvoudiger maakt. Bijna alle moderne applicaties werken nu met objecten, het opslaan van deze objecten in een relationele database is vaak erg gekunsteld. Een applicatie die gebruik maakt deze technologie is dan ook robuuster, en makkelijker te onderhouden.

Net zoals nu bij een Database moeten alle mutaties op een harde schijf worden weggeschreven, zodat bij calamiteiten de database opnieuw kan worden opgebouwd. Bij eenvoudige implementaties kan dit gebeuren op dezelfde computer als de database, bij meer complexe kan men hiervoor aparte computers nemen.

Web Sites
De combinatie in memory database en veel RAM is cruciaal voor grote Web Sites. Onze ervaring is dat het aantal servers drastisch wordt verminderd (10 keer minder Servers),   de software wordt stukken eenvoudiger (helft van de source), de beheerskosten dalen met factoren en de perforance gaat behoorlijk omhoog.

Een in memory database in de praktijk
Er is met de ontwikkeling van dergelijke databases  een begin gemaakt, waarbij de bekende hectische technische discussies plaatsvinden tussen techneuten die het fantastisch vinden, en techneuten die het helemaal niets vinden.  Op de site www.prevayler.org  is een werkende 'in memory database' te vinden die een performance verbetering van 9000 x ten opzichte van Oracle en 3000 x ten opzichte van MySQL heeft gemeten. Men heeft dit zo zuiver mogelijk gedaan: op dezelfde hardware, en ook de concurrerende databases zijn geheel in RAM geplaatst
Dit is nogal veel in een wereld waarbij 0,2 x (20%) verbetering t.o.v. de concurrentie door Oracle als beslissend concurrentie voordeel wordt gezien, en miljoenen uitgeeft om wereldwijd dit fantastische resultaat aan iedereen te vertellen, tot de achterkant van de Economist toe. 
Toch is de meetmethode niet helemaal eerlijk. Er wordt immers een prototype vergeleken met een productie systeem. Een productie systeem heeft extra functies, zoals bijvoorbeeld functies als recovery, en replicatie.
Onze  inschatting is dat volwassen 'in memory' database systemen  behoorlijk veel sneller zullen zijn dan een Oracle database, maar dat niet meer dan een factor 10 tot 50 kan worden verwacht. 
Overigens gebruiken wij deze database niet. Wij houden ervan om technisch de kat uit de boom te kijken.  Laat eerst anderen maar hun tanden stuk bijten op dit prachtige stukje open source techniek. Voorlopig realiseren wij in memory databases door object structuren in RAM te maken. Dat is nog veel sneller dan deze database, en veel betrouwbaarder.

De komst van 64 bit Windows
Allemaal mooi en prachtig, maar de praktische grens in Windows is 1,5 Gbyte aan data.  Sinds de komst van 64 Bit Windows, en de lagere kosten van RAM is dat echter verleden tijd. Een 10 Gbyte Server kost nu tussen de 10.000 en 20.000 Euro. 
Onze medewerkers in St. Petersburg gebruiken nu 64-bit Windows op hun desktop. Dat vinden ze mooier (het zijn ingenieurs) en alle ontwikkelsoftware draait er goed op. Niet goed draait Microsoft Office, dus voor de desktop is 64 bit Windows nog niet aan te bevelen.


Is it time to say goodbye to SQL? 16 mei 2003 Phil Howard Bloor Research

©1996-2008 Lizatec
<  Web Services Soms verbonden   >