Szerző: Bodnár Ádám

2014. július 4. 11:30

Júliusban rajtol az Oracle in-memory adatbázisa

Júliusban érkezik meg az első nagy frissítés az Oracle Database 12c-hez, az ügyfelek számára ezzel válik elérhetővé az in-memory opció, amely az Oracle csattanós válasza az SAP HANA jelentette fenyegetésre.

Az Oracle már a tavaly őszi OpenWorld konferencián bejelentette az in-memory opciójának érkezését, a technológia azonban csak idén júliustól hozzáférhető a felhasználók számára, ekkor érkezik az Oracle Database 12c-hez az aktiváláshoz szükséges patch. Az in-memory adatbázist egy frankfurti eseményen mutatta be a vállalat a legnagyobb európai ügyfeleinek, valamint az újságíróknak.

Gyors lekérdezések

Alapvetés, hogy a vállalatok az üzleti döntéseket adatok alapján szeretik meghozni, de a rendelkezésre álló adatokból a releváns információkat kinyerni sokáig tarthat. A tranzakciófeldolgozásra szolgáló adatbázisok mellett egy jó ideje léteznek olyanok, amelyek kifejezetten analitikai feladatokra tartanak fent. Az analitikai adatbázisoknál bevett szokás az oszlopalapú tárolás, ekkor nem a sorok (rekordok) követik egymást az adatbázisban, hanem az oszlopok, mivel az analitikai feladatok jellemzően oszlopokon történnek, azokon kell például sorba rendezést, szűrést, összegzést vagy átlagolást végezni.

Az analitikai feladatok során a komplex lekérdezések futása akár órákat is igénybe vehet, az informatikai szállítók célja, hogy ezt a lehető legrövidebb időre tudják leszorítani. Az oszlopalapú tárolás szerencsére lehetőséget ad hatékony tömörítési algoritmusok bevetésére, ami a memória egyre olcsóbbá válásával, és a nagy memóriakapacitású rendszerek elterjedésével az in-memory analitikai adatbázisok megjelenéséhez vezetett. A memóriában az analitikai lekérdezések egy hagyományos háttértáron helyet foglaló adatbázishoz képest szélsőséges esetben kétszázszoros sebességgel futhatnak, a korábban órákig futó lekérdezések néhány másodperc alatt eredményt adhatnak. Így a felhasználók sokkal gyakrabban hozhatnak döntést adatokra alapozva.

Az in-memory analitikai adatbázist természetesen nem az Oracle „találta fel”, ilyenek már régóta léteznek, például az IBM vagy újabban az SAP kínálatában. Az Oracle in-memory adatbázisának nagy dobását az jelenti, hogy nincs szükség hozzá új technológiára. Az eddigi in-memory adatbázisok jellemzően kifejezetten analitikai feladatokra lettek „kitenyésztve”, nem pedig tranzakciófeldolgozásra, ami azt jelenti, hogy eltérő technológiát használtak, egyedi kompetenciát igényelt az üzemeltetésük, ráadásul a lekérdezésekhez az adatokat folyamatosan át kellett tölteni az OLTP rendszerekből, ami időigényes feladat.

OLTP és analitika egyben

Ezzel szemben az Oracle in-memory adatbázisa egy, az Oracle Database 12c-hez megvásárolható opció, amely in-memory képességgel ruházza fel az egyébként is használt adatbázist. Az Oracle rendszerében a tranzakciófeldolgozáshoz szükséges soralapú adatbázis mellett párhuzamosan létezik a memóriában egy oszlopalapú adatbázis a villámgyors lekérdezésekhez, a soralapú adatbázis pedig továbbra is biztosítja a magas tranzakciókezelési sebességet. Az Oracle a tranzakciókat nem logolja kétszer, a hagyományos soralapú adatbázis logjait nem ismétli meg az oszlopalapú adatbázison feleslegesen, így a két formátumban történő tárolás nem jár kétszer annyi munkával.

Sőt, az Oracle in-memory adatbázisa esetén elhagyhatók a soralapú adatbázison az analitikai indexek, amelyek frissítése minden tranzakciónál időigényes feladat. Egy soralapú adatbázisban egy új rekord felvétele vagy egy meglevő módosítása akár tucatnyi index frissítését is szükségessé teheti, de mivel az adatbázis oszlopalapú változata úgyis megvan a memóriában, és egy modern processzor ezt másodpercenként több milliárd soros sebességgel tudja felolvasni, többé nincs szükség analitikai indexekre, így a tranzakciók végrehajtásakor az indexek frissítése el is hagyható. Így az in-memory adatbázis még OLTP feladatok alatt is gyorsabb lehet, ráadásul az oszlopalapú tárolás lehetővé teszi minden lekérdezés egyforma gyors futtatását, nem csak azokban az adatokban lehet gyorsan keresni, amelyekhez rendelkezésre állnak a megfelelő indexek.

A megközelítés további előnye, hogy egyáltalán nem igényli az alkalmazások vagy a lekérdezések módosítását, érvel az Oracle. Elhagyható a vállalati infrastruktúrában egy új elem bevezetése, nem szükséges új DBA-kat (adatbázis adminisztrátorokat) felvenni, sőt, igazából a meglevő DBA-k munkája is egyszerűbb lesz, mivel nem kell az OLTP és analitikai adatbázist szinkronizálni, nincsenek index rebuildek és nem kell külön backup sem – összességében kevesebb az emberi hiba lehetősége. Az analitikai teljesítményhangolással járó feladatok alól is mentesülhetnek a DBA-k.

A kaliforniai cég megközelítésének hátránya, hogy a tranzakciófeldolgozási és az analitikai adatbázis egy és ugyanaz, vagyis ha az egyik megáll, a másik is megáll, ha az egyikkel valamilyen probléma van, az a másikat is érinti. Az in-memory adatbázis inicializálása pedig akár fél órát is eltarthat egy hidegindításkor, hiszen ekkor el kell végezni a diszken tárolt soralapú adatbázis oszlopalapú transzformációját és be kell tölteni a memóriába.

Mindenen fut, amin a 12c

Az Oracle Database In-Memory egy Oracle 12c Enterprise-hoz megvásárolható opció, nem önálló termék. Használatához nincs szükség architektúraváltásra, az alkalmazások átírására, a meglevő adatbázis módosítására vagy adatok migrációjára egy másik adatbázisba – az aktiválás pedig csupán néhány sornyi konfigurációval jár. Az In-Memory opcióval rendelkező adatbázis továbbra is egy "hagyományos" Oracle Database 12c, az in-memory feldolgozás bevezetése nem követel meg az alkalmazások oldaláról módosításokat, a többi adatbázis-opcióval is együttműködik, kiépíthető belőle Real Applications Cluster konfiguráció is például.

Az Oracle in-memory adatbázisa minden olyan platformon elérhető, amelyen a Database 12c fut, vagyis x86 rendszereken Windows, Linux és Solaris alatt, valamint az elterjedt UNIX platformokon (Solaris, AIX, HP-UX). Természetesen az in-memory képesség kiaknázásához nem árt egy nagy memóriakapacitású szerver, de az Xeon E7 v2 generáció megjelenése óta ez már x86 környezetben is elérhető, az Intel tavasszal kiadott szerverchipjei foglalatonként 1,5 terabájtot is kezelnek, egy maximális kiépítésű rendszernél 12 terabájt memória lehet a csúcs.

Az Oracle-nek is van persze Xeon E7 v2 processzoros rendszere, a nemrég piacra dobott Sun X4-4 és X4-8, előbbi 4, utóbbi pedig 8 processzorfoglalattal és legfeljebb 6 terabájt memóriával rendelhető. Azon ügyfelek számára, akik a SPARC-ra esküsznek és hatalmas adatbázisokkal dolgoznak, az M6-32 rendszert ajánlja az Oracle az in-memory feladatok alá, ebben 32 darab SPARC M6 processzor dolgozik (egyenként 16 maggal) és összesen 32 terabájt lehet a maximális memóriakapacitása, de Andy Mendelsohn, az Oracle szervertechnológiákért felelős vezetője szerint az Oracle Exadata is tökéletesen alkalmas az in-memory futtatására.

Az árát még nem tudni

Az Oracle ezzel a megoldással megvédheti a hatalmas globális installált bázisát az analitikára szakosodott in-memory megoldások „támadásától”. Andy Mendelsohn szerint a Database12c in-memory opció megjelenése egyben „az SAP fekete napja is”, utalva arra, hogy a német vállalatnak mostantól biztosan nehezebb lesz eladnia saját in-memory analitikai platformját, a HANA-t. Ebben a csatában sok múlik az Oracle 12c in-memory opció árán is, ez azonban cikkünk írásakor még nem szerepel a cég árlistáján.

a címlapról