Mijn werkgever Caesar is door Oracle gevraagd om een pilot te gaan doen met een nieuw product, de Oracle Autonomous Datawarehouse Cloud (dat inmiddels al weer ongeveer een half jaar oud is) . Het lijkt me leuk om hier kennis van op te doen, dus ik mag het product “uitpakken”. Dit uitpakken is in dit geval het aanmaken van een database in de cloud , wat eigenlijk binnen 10 minuten wel is gebeurd. Het omvat het invullen van een schermpje met een aantal parameters (zie figuur1 voor een gedeelte ervan) en de database is “up and running”
Even een stapje terug.. Oracle is bezig om een nieuwe generatie cloud producten uit te rollen , nu zoveel mogelijk “autonomous”. Dit slaat niet alleen op het beheer van de database zelf , want nu een stuk minder nodig is, maar ook op automatisch patchen en bijwerken van alle software. Je levert hiervoor wat in, je kunt namelijk het moment van bijpatchen niet zelf kiezen, maar je krijgt er ook iets voor terug, je hoeft je er namelijk helemaal niet mee bezig te houden.
READ MY LIPS, NO MORE INDEXES
Bush verloor de verkiezingen van Clinton omdat hij in de periode daarvoor niet waar kon maken dat er geen nieuwe belastingen kwamen. (Read my lips, no new taxes). Oracle claimt met de komst van de ADWC dat er geen indexen meer nodig zijn om de queries te laten performen. Dat is nogal een statement. Zou men dit waar kunnen maken of zou hier later ook op terug gekomen moeten worden ? Een paar eerste grote queries performen in ieder geval wel goed “out of the box”. De database heeft zelf allerlei slimme opties die op de achtergrond werken om een query zo snel mogelijk terug te laten komen met resultaat, zonder dat een ontwikkelaar daar iets van meekrijgt.
AAN DE SLAG
Het eerste waar mijn oog op valt in de documentatie zijn de verschillende “Consumer Groups”. Het is mogelijk om bij het aanmaken van een connectie aan te geven hoeveel resources een gebruiker mag afnemen. Dit is onderverdeeld in 3 groepen : high, medium en low. (zie voor de kenmerken figuur 2).
Nou dat gaan we dan maar eens uitproberen, ik maak een drietal connecties aan met dezelfde user in de database, met ieder een andere consumer group. Ik kan hiervoor gebruik maken van sql developer waarmee ik via een wallet kan inloggen op de ADWC database in de cloud. Hierover is genoeg documentatie te vinden op internet, dus dat ga ik niet allemaal uitschrijven. Mocht je er toch nog vragen over hebben dan moet je maar even mailen…
Ik pak een redelijk zware query en voer hem uit via alle drie de connecties (enkele malen achter elkaar om rekening te houden met de effecten van caching). Tot mijn verbazing zie ik uiteindelijk geen verschil in doorlooptijd van de query. Na enig fronsen en nadenken blijkt dit eigenlijk precies wat ik zou moeten verwachten. Ik draai de database met 1 CPU, dus het is niet mogelijk om queries in parallelle modus uit te laten voeren. Er zijn op dit moment ook geen andere collega’s die gebruik maken van de ADWC, dus er zijn geen effecten van concurrency. Hmm, dan maar iets anders proberen om de verschillen te zien tussen de consumer groups. Het is mogelijk om, terwijl de database draait, het aantal CPU’s op te hogen. Dat gaan we dan maar eens doen..
Binnen een paar seconden is de database opgeschaald van 1 naar 2 CPU’s en ja hoor, nu zie ik dat de query dubbel zo snel is in de “high” consumer group vergeleken met de “low” consumer group. Test geslaagd.