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.

Rust? Kubernetes? FinOps? Melyiket válasszam?

Egy jó karrierdöntéshez sok apróság szükséges. Egy alapos hazai technológiai körkép azoban még hiányzott. Végre van ilyen, és a 21. kraftie adásban kidumáltuk.

Rust? Kubernetes? FinOps? Melyiket válasszam? Egy jó karrierdöntéshez sok apróság szükséges. Egy alapos hazai technológiai körkép azoban még hiányzott. Végre van ilyen, és a 21. kraftie adásban kidumáltuk.

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