23
11/2009
0

Hibrid adatbáziskezelő rendszerek

Majd tíz éve folynak kutatások hibrid, sor és oszlop alapú adatbáziskezelő rendszerek elméletének megalapozására, de az elméletet gyakorlatba ültető első fecskék csak mostanában kezdenek kibukdácsolni a fészekből.

Az oszlop illetve a sor alapú adatbázisok más-más területen jeleskednek, valójában ahol az egyik nagyot alakít, ott a másik rendszerint elvérzik.
Ezt a problémát hivatottak feloldani a két paradigmát kombináló hibridek.

Daniel Abadi, a Yale egyetem ass. professzora blogjában olyan jól összefoglalja az imént említett hibrid rendszerek építésének három, legelterjedtebb módszertanát, hogy ennek kivonatát muszájak vagyunk itt és most leközölni.

Az első, 2001-ben publikált módszertan a PAX.

Az alap ötlet szerint tároljuk adatainkat - a hagyományos blokkon belüli soronkénti tárolás helyett - blokkonként, de oszlopok szerint.
Azaz egy blokkban továbbra is a tábla összes mezőjét megtaláljuk, azonban úgy rendezzük át a blokk adatszerkezetét, hogy az oszlopok adatait sorfolytonosan helyezzük el. A sorfolytonos tárolás segítségével lehetővé válik, hogy a CPU cache egy oszlop adatait tartalmazza. Mivel a DBMS operátorok többsége egyszerre egy vagy két oszlop adatain dolgozik, így a releváns fetchelt adatoknak köszönhetően javul a cache találati aránya.

A PAX hozza az oszlop alapú tárolás előnyeinek nagy részét, lehetővé teszi az oszlop alapú kompressziót a megnövelt adatlokalitásnak köszönhetően, és könnyen implementálható; ugyanakkor a sor alapú tárolással megegyező I/O performancia mutatókkal rendelkezik. A modern processzorokkal a jobb cache találati arány veszít a jelentőségéből, de a korlátozott memória sávszélességigény és a vektoros feldolgozás képessége a PAX módszertant továbbra is jól használhatóvá teszi.

A Fractured mirrors

megközelítés alapjául az a feltételezés szolgál, hogy backup és/vagy rendelkezésreállási megfontolásokból mindenképpen replikálják a vállalati adatbázisokat. Ha ez így van, akkor ezt használjuk ki, és alkalmazzunk az egyes replikáknál más-más tárolási eljárást.
Az egyes lekérdezéseket annak függvényében, hogy lookup vagy scan típusúak (aggregációk) irányítjuk egyik vagy másik replikához. 

Mindezt arra alapozzuk, hogy a sor alapú rendszerek több mint egy nagységrenddel gyorsabbak lookup query-kre, hiszen row storage esetén csak az adott rekordot tartalmazó blokk beolvasására van szükség, míg column storage-nál minden egyes attribútumhoz új blokkot kell beolvasnunk (ha az indexeket mindkét esetben memóriában tároljuk).
Scan query-k esetén, ha a lekérdezés az attribútumok kevesebb mint 10%-át használja, a column store rögtön egy nagyságrenddel jobban teljesít. A legtöbb esetben az oszlop alapú tárolók CPU hatékonyságuk révén még egy nagyságrendnyi előnyre tehetnek szert.

A módszer alkalmazásának határt szab, hogy az összes adatot replikálni kell, és a gyakorlatba ültetése igen sok fejlesztést igényel (mivel a két eltérő paradigmát követő adatbázisok lekérdezés tervező és végrehajtó egysége teljesen különböző felépítésű)

Fine-grained hibridek

A 2003-as publikációra alapozott módszertan lényege, hogy a sor/oszlop alapú tárolásról akár tábla szinten is dönthetünk. Ha két mező értékére rendszerint együttesen vagyunk kíváncsiak (pl. megrendelés és kiszállítás dátuma) akkor ezeket együtt, sor alapon; míg a maradék attribútumot külön-külön, oszlop alapon tárolhatjuk.

Mindezt megtehetjük adatblokk, tábla, vagy még magasabb szinten. A gyakran loookup-olt táblákat (vevő) sor, míg az inkább scannelt táblákat (számlasor) oszlop alapon tárolhatjuk.
A módszert szakértelemmel alkalmazva szert tehetünk a Fractured mirrors módszer előnyeire, a replikáció okozta overhead kikerülésével. Ugyanakkor a módszer implementálása körülményes, és a megfelelő típusú storage beállítása előzetes ismereteket feltételez az adatbázison futtatandó lekérdezésekről.

Alkalmazások

A PAX alkalmazására példaként az új Oracle 11gR2 Exadata és a VectorWise szolgálhat. A Fine-grained hibrid módszert a Vertica Flexstore és legújabban a Greenplum MPP adatbázisban Polimorf adatrétegként (Polimorf Data Storage) köszön vissza. A replikációt alkalmazó Fractured mirrors módszerre mindezidáig nem született commercial termék.

Forrás: DBMS Musings

 

A bejegyzés trackback címe:

https://dwbi.blog.hu/api/trackback/id/tr921546019

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása