Szabad Szoftver Konferencia

Ma volt a Free Software Foundation Hungary Alapítvány által szervezett Szabad Szoftver Konferencia és Kiállítás 2009. Úgy látszik, mostanában főleg konferenciabeszámolókat írok, de nagy a termés, érdemes ellátogatni ezekre, nyomon követni a trendeket. A mostani konferenciáról is a meglátogatott előadásokról fogok írni, címszavakban az érdekességekről. A konferencia oldaláról letölthető egy közel kétszáz oldalas kiadvány is.

Dr. Szentiványi Gábor A felhőkön túl című előadásából kiderült, hogy az előadó kicsit szkeptikus a felhők jelenlegi felhasználását illetően. A semmibe vezető hídhoz hasonlította a jelenlegi állapotot. Számolni kell a vendor lock-innel, a kisebb versenyzők a “nagyokat” (Amazon, Google) követve próbálnak felemelkedni, nincs kiforrott, all-in-one üzleti modell. Érdemes figyelni, merre tartanak, de merészség teljes lendülettel beszállni.

Trencséni Márton: Skálázható elosztott rendszerek

A kulcs-érték alapú adatbázisokról, MapReduce-ról, CouchDB-ről már írtam egy előző posztban.

Keyspace
Az előadó cége (Scalien) által BSD alatt fejlesztett kulcs-érték adatbázis. A NoSQL irányvonal megtestesítője, mely azon adatbázisok gyűjtő neve, melyek használatához nem szükséges SQL. C/C++-ban íródott, BerkleyDB-n alapul, de a következő verzióban ezt szeretnék kiváltani. Alapvetően konzisztenciát tart, de minden műveletnek van egy ún. dirty párja, mely könnyen párhuzamosítható, de sérülhet a konzisztencia. Szóba került még a Paxos és a Vector Clock algoritmusok is.
Shared nothing architektúra
Az SN egy olyan elosztott architektúra, ahol nincs verseny egy közös erőforrásért, mint pl. egy központi adatbázis. Most a webes fejlesztéseknél, valamint a felhők világában különösen fontos, hiszen nagyon jól skálázható, újabb alacsony költségű gépek beállításával növelhető a teljesítmény, és nincs szűk keresztmetszet, illetve olyan meghibásodási pont, mely a teljes rendszert megbénítaná (single point of failure). Ezt a Google is bebizonyította, az ilyen típusú adattárolást shardingnak hívja, aminek lényege, hogy az adatokat valamilyen osztályozás szerint külön tárolja (horizontális partícionálás), ezáltal egyszerre kisebb adatmennyiségen kell dolgozni.
Eventual consistency
Olyan konzisztencia modell (elosztott rendszerek esetén használatos, van-e ellentmondás a tárolt adatok között), melynek használatával lehetséges, hogyha egy adatot módosítunk, majd visszaolvasunk, nem a módosított értéket kapjuk. Ez úgy lehetséges, hogy a konzisztenciát feláldozzuk a teljesítmény oltárán, azaz nem blokkoljuk a módosítást addig, míg az szét nem terjed a replikátumokon. Pl. egy közösségi oldal képfeltöltésénél elfogadható, de banki rendszernél ne használjuk. Hátránya, hogy amikor inkonzisztencia lép fel, nem kezelhető automatikusan, hanem az alkalmazást kell rá felkészíteni, ami vagy feloldja, vagy a felhasználóra bízza a konfliktus feloldását.
Distributed lock manager
A megosztott erőforráshoz való hozzáféréseket vezérli.
Memcached
Nagy teljesítményű, elosztott, memóriában helyet foglaló cache rendszer, mely nagyszerűen tehermentesítheti az adatbázist. Legnagyobb felhasználója pl. a Facebook, ahol a tartalom 95%-a cache-ből jön.
Redis
A Memcachedhez hasonló, memóriában tartott kulcs-érték adatbázis, azzal a különbséggel, hogy az adatokat bizonyos időközönként képes aszinkron módon lemezre menteni, valamint szövegen kívül halmazokat és listákat is kezel, valamint képes replikációra.
MemcacheDB
Bár nevében hasonlít a Memcachedre, és másra asszociálnánk, nem egy cache, hanem egy BerkleyDB-t használó perzisztens megoldás, mely API szinten nagyon hasonlít a Memcachedre, és C-ben lett megírva.
Google stack
Google File System (GFS), Chubby distributed lock manager, BigTable adatbázis kezelő és a MapReduce.
Hypertable
Nyílt forráskódú adatbázis a BigTable hasonlatosságára, C++-ban.
Dynamo
Az Amazon kulcs-érték adatbázisa.
Dynomite
Dynamo klón, nyílt forráskóddal, Erlangban megvalósítva.
Apache Hadoop
A Yahoo! által használt nyílt forráskódú, Javaban fejlesztett szoftverek gyűjtőprojektje a megbízható, skálázható, elosztott rendszerek fejlesztéséhez. Része a HBase, mely egy nyílt forrású BigTable klón.
PNUTS
A Yahoo! által használt elosztott adatbázis, mely nem nyílt.
Cassandra
Facebook mögött lévő adatbázis, Javaban.
Project Voldemort
LinkedIn mögött lévő kulcs-érték adatbázis, Javaban.
MongoDB
Nyílt forráskódú, dokumentum-orientált adatbázis, C++-ban.
Tokyo Cabinet
Egy újabb kulcs-érték adatbázis, C-ben.
Neo4j
Beágyazható, lemezre perzisztáló, tranzakcionált gráf alapú adatbázis.
Eucalyptus
Amazon API kompatibilitást ígérő nyílt forráskódú megoldás.
Hail
Célja nyelv- és platformfüggetlen, felhő építését lehetővé tévő, nyílt forráskódú infrastruktúra szolgáltatások kifejlesztése.
Deltacloud
Egységes REST API a különböző felhők (cloud) kezelésére, megszabadulva ezzel a vendor lock-intől. Jelenleg támogatott felhők: EC2, RHEV-M, RackSpace; VMWare ESX.