Membase je další z NoSQL databází. Je to key-value databáze, která koncepčně blízká známé paměťové cache memcached. Ovšem na rozdíl od memcached data „přežijí“ restart databázového démona a množství uložených dat není limitováno velikostí paměti.
Dalo by se říci, že Membase je key-value databází v té nejčistší podobě. API databáze můžeme přirovnat k javové Mapě. Membase dodržuje key-value princip důsledně – není k dispozici k datům žádný iterátor, takže pokud pokud neznáte klíč, k datům se nedostanete. Omezení je i v ukládaných datech – jde o řetězec limitované délky. Toto omezení překonávají ovladače – jednak pomocí javové serializace je možné do dat uložit objekt libovolné struktury. Jednak ovladače podpoují možnost transparentní komprese dat.
Z výše uvedených vlastností je zřejmé, že databáze je optimalizována na rychlost. Další zvýšení rychlosti umožňují ovladače, které implementují rozhraní Future. Díky tomu můžeme zapisovat do databáze asynchronně – můžeme zadat pokyn k zápisu do databáze, ale nemusíme čekat na výsledek.
Membase má stejné programové rozhraní jako memcached, takže ovladače i aplikační kódy této cache budu beze změny fungovat. Pro Javu existují tři implementace ovladačů, a to oficiální SpyMemCached a alternativní xmemcached a Memcached-Java-Client.
Výhody
- rychlost, jednoduchost, dynamická škálovatelnost (elasticita)
- komprese aplikačních dat je součástí ovladače
- ovladače umožňují asynchronní zápis
- přehledné administrační rozhraní
- základní statistiky součástí administračního rozhraní
- binární i textový protokol mezi klientem a serverem
Nevýhody
- omezená velikost datového záznamu
- nemá iterátor ani dotazovací jazyk
Závěr
Membase nelze srovnávat s relačními databázemi a tato databáze není ani zamýšlena jako jejich náhrada. Nad Membase informační systém nepostavíte… Přesto najde své uplatnění, například u rozsáhlejších webových aplikací – jako cache sezení, cache fragmentů html, pro asynchronní komunikaci mezi uzly v clusteru…
Napsat komentář