Szerző: Gálffy Csaba

2013. november 27. 15:49

Új jelentkező a skálázódó relációs adatbázisok között

Félkészen is ígéretes a szabad szoftveres InfiniSQL adatbázis-motor. Az új rendszer komplex tranzakciók végrehajtására készült, erőssége a skálázódás és így a gyakorlatilag korlátlan teljesítmény.

Nagy ígérettel indul az InfiniSQL, az új, jelenleg fejlesztés alatt álló adatbázis "sharding", vagyis darabolás nélkül ígér strukturált adattárolást, NoSQL-hez fogható skálázódás mellett. Az új adatbázis-szerver legnagyobb előnye a sebessége lehet, a fejlesztő Mark Travis szerint jelenleg reprodukálhatóan képes félmillió komplex tranzakciót végrehajtani másodpercenként és százezer kapcsolatot fenntartani, mindössze 12 kis teljesítményű, egyfoglalatos x86 szerveren.

Work in progress

Az InfiniSQL alapoktól in-memory működésre készült, az adatokat a rendszermemóriában tárolja, a merevlemezre gyakorlatilag csak biztonsági mentésként kerülnek ki az adatok. Ez egyelőre a rendszer egyik problémája is, ha a szerver teljesen áram nélkül marad, akkor felléphet adatvesztés, mivel a lemezre írt és a memóriában tárolt adatok között lehet eltérés. A készítő szerint ez még a fejlesztés alatt álló rendszer sajátossága, a végleges, élesben használható verzióban ez a probléma megoldódik.

Kicsiben már jól skálázódik (x tengely: node-ok, y tengely: tranzakció/sec)

Travis korábban a Visánál dolgozott, a cégnél komoly műszaki problémának látta a ma elérhető adatbázis-motorok teljesítményének és skálázódásának korlátozottságát. Az Oracle vagy a Sybase relációs adatbázisai "egyszerűen nem elég jók, így úgy döntöttem, írok egyet saját magam". Travis szabadidejében kezdte el programozni az InfiniSQL alapjait, tavasz óta pedig főállásban, startupként foglalkozik a szoftverrel. Az InfiniSQL teljesen nyílt forráskódú, szabad szoftver, a fejlesztők jelenleg igyekeznek közösséget kialakítani, ami nagyban felgyorsítaná a készülő szoftver tesztelését és az új funkciók kifejlesztését.

A tranzakcionális adatbázisok rákfenéjének a skálázódás számít. Ugyanis míg egy weboldal kiszolgálásához elegendő az oldalt néhány szerverre replikálni, majd ezek között a forgalmat szétosztani, a tranzakcionális adatbázisok nem csak olvasásnak, hanem gyakori írásnak is ki vannak téve, ez pedig konzisztencia-problémákat vet fel a párhuzamosan futó példányok között. A hagyományos RDBMS-ek (adatbázis-kezelők) gyökerei a 70-es évekig nyúlnak vissza, erre a problémára pedig egyszerűen nincsenek felkészítve.

Az InfiniSQL fejlesztője az aktor-modell bevezetésében látja az áttörést, vagyis az adatbázis-kezelőre háruló feladatokat igyekszik atomizálni, az alfeladatok végrehajtását pedig aktorokra bízza. A modellben tranzakció-aktorok korlátozás nélkül kommunikálnak egymással és az adatpartíció-aktorokkal, előbbiek egy-egy tranzakció végrehajtásáért, utóbbiak egy-egy adatszegmens kezeléséért felelnek. A megközelítés előnye, hogy egy rekordért egyetlen aktor felelős, amely nyilvántartja a hozzáféréseket, így nagyrészt elkerülhető a rekordok zárolása, amely a hagyományos adatbázisok esetén a skálázódás egyik fő korlátját jelenti. A szoftver működéséről a fejlesztő itt ír egyszerűen, itt pedig részletekbe menően.

A rendszer kritikus eleme Travis leírása szerint a Lockless Inc. által fejlesztett memóriaallokátor, amely jóval nagyobb teljesítménnyel rendelkezik, mint a klasszikus malloc(), free(), realloc(), ezzel a memóriakezelővel másodpercekénként egy node sokmillió üzenetet képes létrehozni, küldeni, fogadni és törölni.

Igény, az lenne rá

A strukturált adatbázisok skálázása hatalmas probléma a webes méretű cégeknél. A Facebook, amely MySQL-t használ, rendkívül komplex saját fejlesztésű szoftverekkel kénytelen megtámogatni a nyílt forrású adatbázist ahhoz, hogy megfelelően tudja kiszolgálni 1,2 milliárd aktív felhasználóját. Nincs jobb helyzetben a többi hagyományos adatbázis-motor sem, ez is magyarázza, hogy a "big data" feladatok alatt népszerű NoSQL szoftverek egyik legismertebbje, a MongoDB 150 millió dolláros befektetéshez jutott. Az InfiniSQL ígérete, hogy hagyományos tranzakciós környezetben képes hasonló teljesítményt és skálázódást mutatni

a címlapról