Management

Zakelijke software

Weg met de database-index

1 november 2013

Het wegschrijven van tabellen naar opslagmedia en het weer ophalen van de gegevens − wanneer ze weer bewerkt moeten worden − is een sterk vertragende stap in de processen die een database uitvoert. Door alle frequent gebruikte gegevens in het werkgeheugen te houden, kan deze stap worden vermeden. Of in ieder geval worden uitgesteld zodat het bewaren van de gegevens de real-time verwerking niet hindert. DRAM-geheugen is tegenwoordig zo goedkoop dat het gebruik van in-memory databases in steeds meer gevallen een kosteneffectieve investering is.

Het geheel of gedeeltelijk laden van een database in het geheugen van de databaseserver wordt dan ook al enige tijd toegepast. Bijvoorbeeld IBM, Oracle en Microsoft hebben al gespecialiseerde databases die in-memory kan draaien. SAP zette in 2010 in op de in-memory trend met zijn High-Performance Analytic Appliance (HANA). Aartsrivaal Oracle volgde met de Exalytics Business Intelligence Machine, nadat de overname van Sun het bedrijf in staat stelde de hard- en software op elkaar af te stemmen.

Structuur op de schop

Oracle presenteerde eind september tijdens zijn jaarlijkse gebruikersconferentie Oracle-World ook een in-memory uitbreiding voor het standaard werkpaard van het bedrijf, de Oracle 12c database. Interessanter nog is de nieuwe werkwijze van deze in-memory variant. Die maakt de in-memory database een factor 100 sneller dan de standaard database 12c. De snelheidswinst kan zelfs oplopen tot een factor 1000 of meer.

Traditioneel werkt een relationele database met het verwerken van gegevens in rijen of in kolommen. Afhankelijk van de bevragingen (queries) die het meest worden uitgevoerd, heeft de rij -of kolomgebaseerde database de voorkeur. Bij het verwerken van transacties bijvoorbeeld werkt een rijgebaseerde database efficiënter, terwijl voor het maken van analyses juist de kolomgebaseerde opbouw beter werkt. In beide gevallen legt de databasesoftware analytische indexen aan om het gemis aan de andere structuur te compenseren bij het snel analyseren van de gegevens in de database. Een database kan wel 10 tot 20 van dergelijke analytische indexen aanhouden. Een toevoeging of wijziging aan de database is dus snel gebeurd, maar leidt vervolgens tot het opnieuw opstellen van alle indexen. Het up-to-date houden van die indexen is een zeer rekenintensieve taak voor de databaseserver.

1354 keer sneller

Met de in-memory optie van Oracle 12c stapt het bedrijf over de traditionele scheiding tussen databasevarianten heen. De in-memory 12c database creëert tegelijk een rij- én kolomgebaseerde variant die zijn gekoppeld. Een wijziging van de rijgebaseerde database wordt onmiddellijk overgenomen in de kolomgebaseerde database. Hoewel dit een verdubbeling van de bewerking op de database is, levert de aanpak een enorme prestatiewinst op doordat de analytische indexen−en vooral het bijwerken daarvan−niet meer nodig zijn.

Overschakelen naar deze nieuwe structuur lijkt een ingrijpende klus. Toch zijn volgens topman Larry Ellison slechts drie eenvoudige stappen nodig. Eerst moet met de interface worden ingegeven hoeveel werkgeheugen de database mag gebruiken, dan geeft de gebruiker de tabellen aan die ‘in-memory’ moeten komen en vervolgens kunnen de indextabellen worden weggegooid.

Het doel was volgens Ellison een 100-voudige prestatieverhoging te bewerkstelligen. In één demonstratie−waarbij een actie werd uitgevoerd op 3 miljoen records−was de in-memory optie 1354 keer sneller dan de voorgaande versie van de database. Volgens Ellison maakt het voor de applicaties die gebruikmaken van de database niet uit welke variant gekozen wordt en of deze in het eigen datacentrum of in de cloud draait. Wanneer de in-memory optie van 12c beschikbaar komt is nog onduidelijk. Pas dan kunnen de claims van Oracle met onafhankelijke tests worden beoordeeld.

Veel potentieel

“De in-memory optie heeft veel potentieel”, constateert Gerard Stam, vice-voorzitter van de Oracle Benelux Gebuikersgroep (OBUG). Toch toont hij wat reserves. “Dat heeft te maken met dat Oracle 12c vorig jaar op Oracle OpenWorld werd aangekondigd maar dat het product uiteindelijk pas bijna een jaar later algemeen beschikbaar kwam. De manier waarop het nieuws hier nu werd gebracht, komt daarom wat grappig over.” Volgens Stam moeten gebruikers nu eerst aan de slag met Oracle 12c om het product daadwerkelijk te doorgronden.”

Hij is overigens wel overtuigd van de voordelen van 12c ten opzichte van de voorgaande Oracle databaseversies. Door verschillende ‘pluggable’ databases in een container-database te plaatsen en als een geheel te beheren kunnen organisaties veel op ‘total cost of ownership’ besparen. Ook de mogelijkheid een containerdatabase voor meer klanten in te zetten (multi-tenant) zonder dat zij elkaars gegevens kunnen bekijken, betekent een grote stap vooruit ten opzichte van de voorgaande versies van de Oracle database.

Vergelijking met HANA gaat mank

Oracle presenteerde tegelijkertijd de M6-32 Big Memory Memory Machine die wel al direct beschikbaar is. De krachtpatser met maar liefst 32 terabyte aan DRAM-geheugen is ontworpen voor het in-memory bewerken van grote databases. De verwerkingskracht komt van 32 door Oracle zelf ontworpen Sparc M6-chips die ieder 12 processorkernen hebben en 96 threads aankunnen. De kernen communiceren met elkaar en met het gedeelde geheugen over een silicium netwerk dat 24 terabit (3 terabyte) per seconde kan transporteren. “Het is ongelofelijk hoeveel geheugen er in is verwerkt”, zegt Stam. Maar het verbaast hem wel dat Oracle hiervoor met een machine komt die zich weer heel erg onderscheid van de Exa-reeks. “Ik vraag me af of er echt veel bedrijven op zitten te wachten. Zeker niet nu direct.”

Het lijkt erop alsof Oracle zich met de M6-32 Big Memory Memory Machine en de in-memory option voor de 12c-database heeft willen afzetten tegen SAP’s HANA. Mark Hurd, co-president van Oracle, bestreed die suggestie onmiddellijk tijdens OpenWorld 2013. “Ik hou er niet van als er een vergelijking met HANA wordt gemaakt. HANA moet geprogrammeerd worden, bij de in-memory optie van 12c is het overhalen van een schakelaar enige dat je hoeft te doen. Alles gebeurt onder de motorkap.”

Ook Kevin Chew, bij SAP vicepresident Managed Cloud as a Service, wil de vergelijking niet aan. Hij wijst er op dat SAP zich veel meer concentreert op specifieke bedrijfsapplicaties terwijl Oracle een veel breder terrein bestrijkt. Chew categoriseert 12c en het vergelijkbare aanbod van concurrenten als gebouwd op antieke technologie. Bij HANA is de hardware helemaal ingericht op de SAP-applicaties en niet alleen op de database. Het gevolg is dat de apps veel dichter op de databaselaag kunnen werken.

 
Lees het hele artikel
Je kunt dit artikel lezen nadat je bent ingelogd. Ben je nieuw bij AG Connect, registreer je dan gratis!

Registreren

  • Direct toegang tot AGConnect.nl
  • Dagelijks een AGConnect nieuwsbrief
  • 30 dagen onbeperkte toegang tot AGConnect.nl

Ben je abonnee, maar heb je nog geen account? Neem contact met ons op!