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…