NewSQL-adatbázisok

Befejeződött

A NoSQL-adatbázisok meglehetősen sikeresek voltak bizonyos tartományokban. A NoSQL-rendszerek legnépszerűbb használati esete a big data típusú adatok tárolása webes cégeknél, amelynek alkalmazásai alacsonyabb konzisztenciagaranciát is elfogadnak. Ez a módszer azonban az alkalmazásfejlesztőre hárít bizonyos tárolási kihívásokat. A nem relációs adatmodellben például a fejlesztőknek kellhet saját csatlakozásokat megvalósítani, ha két tábla adatait szeretnék egyesíteni. Emellett konzisztens adatokat kell kezelniük, és gondoskodniuk kell arról, hogy az alkalmazásokban nem fordul elő helyességi problémák a tranzakciók hiányának következtében. Azonban nem minden alkalmazás fosztható meg az erős tranzakciós szemantikától. Van igény olyan adatbázisrendszerekre, amelyek a relációs és a NoSQL-rendszerek előnyeit egyesítik. Ezek a rendszerek egy relációs modellt, SQL-t és ACID-tranzakciókat használnak, emellett pedig a NoSQL-rendszerekhez fogható méretezhető teljesítményt nyújtanak.

A NewSQL-adatbázisok olyan, következő generációs relációs DBMS-ek, amelyek a NoSQL-rendszerekhez hasonlóan méretezhetők anélkül, hogy teljes mértékben fel kellene adni az SQL-t vagy a tranzakciók ACID-tulajdonságait. Ez több módszerrel is kivitelezhető, itt pedig a legnépszerűbbet ismertetjük:

  • Megosztott-semmi architektúrák: A NewSQL-rendszerek gyakori tervezési mintája egy megosztott-semmi architektúra bevezetése. Ez egy olyan rendszer, amelyben minden csomópont teljesen független (néha egészen a különálló szálak szintjéig lemenően), ami gondoskodik arról, hogy a rendszerben nincs egyetlen pont, amelyben a csomópontok versengenének az erőforrásokért. A rendszerek így nagy teljesítményt nyújthatnak nagy méretekben is, mivel nincs szükség költséges zárolási protokollokra.
  • Memórián belüli rendszerek: Az adatbázis-rendszerek teljesítményének javítására szolgáló másik lehetőség, hogy csökkenti a lemezre egy adott lekérdezéshez megtett utak számát. Ennek egy szélsőségesebb verziója egy adatbázis a memóriában való üzemeltetése, hogy az soha ne forduljon a lemezhet.

H-Store és VoltDB

Az H-Store egy kísérleti NewSQL-rendszer, amelyet a Brown University, a Carnegie Mellon University, a Massachusetts Institute of Technology, és a Yale University csapata fejlesztett ki. Az H-Store-t csomópontfürtökön helyezik üzembe egy shared-nothing architektúrával. Az H-Store középpontjában egy nagy mértékben optimalizált, egyszálas adatbázismotor áll, amely gyorsan feldolgozza a lekérdezéseket. Az adatbázis tovább van particionálva a fürtön, hogy minden map az adatok egy különálló részhalmazáért feleljen. Az H-Store adatai a rendszer csomópontjainak memóriájában vannak tárolva.

Mivel az egyes motorok exkluzív hozzáféréssel rendelkeznek a partíciók összes adatához, a partícióban tárolt adatokat egyszerre csak egy tranzakció érheti el, így a rendszerben nincs szükség zárolásra. Ennek eredményeképpen egyetlen tranzakció sem várakozik más tranzakciókra az indítás után, legalábbis a nem egypartíciós lekérdezések esetén.

Az H-Store-nak is megvannak a maga korlátai. A tartós tár hiánya (az H-Store minden adatot memórián belül tárol) és a shared-nothing architektúra miatt a csomóponthibák adatvesztést eredményezhetnek.

Az H-Store egy egyetemi projekt volt, amelynek kereskedelmi változata VoltDB néven vált ismertté. A VoltDB saját hiányosságainak pótlása érdekében folyamatosan fejlesztette és funkciókkal bővítette az H-Store-t, így például egy naplózási móddal, amely javítja a tárrendszer tartósságát.

Tesztelje tudását

1.

Mik a legtöbb NoSQL-adatbázis elsődleges kompromisszumai?

2.

Egy online művészeti és terjesztési webhelyen a felhasználók feltölthetik saját műalkotásaikat és megoszthatják azokat másokkal. Más felhasználók megjegyzéseket fűzhetnek az alkotásokhoz, és a feltöltő engedélyével át is alakíthatják azokat. A webhely nagy népszerűségnek örvend, és a webhely népszerűségének növekedésével együtt méretezhető tárolási lehetőségeket kutat fel. A webhely igényeinek megfelelően milyen típusú adatbázis lenne a legmegfelelőbb a felhasználók alkotásainak tárolásához?