Napjainkban a legelterjedtebb reprezentációs forma a gráf. A közösségi oldalak baráti/ismerősi viszonyai, a mobiltelefonok közötti kapcsolások, a weboldalak közötti linkek, vagy egy felhasználó preferenciái mind-mind reprezentálhatóak gráfokban. Ez önmagában még nem követelné meg azt, hogy külön gráfadatbázisokat is készítsenek, hiszen egy gráf csúcsokból és élekből áll, ami bármilyen más adatbázisban tárolható mivel két elem közötti relációról van szó. A problémát az jelenti, hogy manapság nagyon nagy lehet egy ilyen adatbázis és általában több szerveren elosztva kell tárolni az adatokat, mindeközben pedig gyorsan és megbízhatóan kell kiszolgálni a ráépülő alkalmazásokat. Posztunkban két gráfadatbázisokat fejlesztő céget és termékeiket mutatjuk be, a Neo Technology-t és a GraphLab-et.
A Neo4j gráfadatbázis a Neo Technology terméke. Az adatbázis nyílt forráskódú, szabadon felhasználható, a fejlesztő cég a kapcsolódó szolgáltatásokból (tanácsadás, fejlesztés, support) termel bevételt. Legnagyobb előnye, hogy Java nyelven íródott és nagyon jól skálázható. Az adatbázis Cypher lekérdezőnyelve (query language) könnyen elsajátítható és intuitív. Ugyanakkor a Neo4j alapvetően "ipari" szempontok szerint készített adatbázis, kicsit sok "mérnökösködés" szükséges a beüzemeléséhez (ami nem feltétlenül jelenti azt, hogy nehéz telepíteni, ezen inkább azt értjük hogy sokszor az adatelemzésen kívüli szempontokat is figyelembe kell venni a munka során) és nem annyira természetes gyors prototípus készítéséhez használni. Az alábbi videó közérthetően foglalja össze mit is kínál ez a technológia.
A GraphLab kifejlesztői a Carnegie Mellon University híres Department of Machine Learning kutatói. A GraphLab C++-ban íródott, szintén jól skálázható, de ami még fontosabb, a manapság leginkább használt algoritmusok futtatására optimalizált adatbázis. Mivel a szakma nagyon jól fogadta az új eszközt, a megnövekedett igények kiszolgálására céget alapítottak az eszközt létrehozó kutatók, ami az ötletes GraphLab nevet kapta. A Neo4j-vel összevetni kicsit olyan mint amikor almát hasonlítunk a körtéhez. Gyorsaság tekintetében a GraphLab nyeri a versenyt, de ennek az az ára, hogy mélyebben bele kell ásnunk magunkat a dokumentáció bugyraiba az üzemeltetéséhez.
A GraphLab fejlesztői azonban rendes kutatók és gondoltak kollégáikra. A GraphChi adatbázis segítségével viszonylag nagy mennyiségű adatot (több gigabájt és egy terabájt között) emberi időben (pár perc és úgy egy, másfél óra között) lehet hatékonyan elemezni. Ezt a kutatók nagyon tudják értékelni, hiszen többségük nem szoftverfejlesztő, hanem programozni is tudó tudós. Gyors prototípusok készítésére, ötletek kipróbálására még mindig a desktop, vagy a laptop a legjobb megoldás és ilyenkor általában mai mércével mérve kis adatmennyiséggel szoktunk dolgozni (vagy kevés adatunk van, vagy mintával dolgozunk). A GraphChi előnye, hogy Java verzióban is elérhető, így Java-val, vagy az egyre kedveltebb JVM nyelvekkel könnyen használható. A GraphChi alkotója Aapo Kyrola OSDI előadásában alaposan bemutatta tavaly ezt a kedves kis gráfadatbázist, érdemes megnézni hogyan készült és mit is tud pontosan.
Adatbázisokkal ma már Dunát lehet rekeszteni, de a gráfadatbázisok előtt úgy tűnik nagy jövő áll. Az ipar a Neo4j híve, a kutatásvezérelt vállalkozások és kutatók számára azonban a GraphLab megoldásai lehetnek vonzóbbak. Reméljük az egészséges versenyben csak jobbá válnak ezek a remek adatbázisok.