Ať žije Riak!


Můj vztah k NoSQL je tak trochu jako italská domácnost. Nejdřív mě štvalo, že je tu zas další buzzword (no co, v PHP napíšete key-value storage na 20 řádek). Pak jsem vzal NoSQL na milost a dokonce jsem si vlastní NoSQL službu rozepsal. Měla umět map-reduce, indexy i rychlý k-v přístup. Přestože to byla hračka, pořád se mi vracelo to, že svět je relační a relační databáze jsou pro většinu situací výhodné. Přesto jsem téma sledoval a občas četl něco víc. Dokonce jsem do jedné soutěže napsal key-value filestorage s map-reduce, který měl včetně testů kolem 2 kilobajtů.

Po dlouhé době, kdy mi NoSQL přišly obtížně použitelné v problémech běžného světa, jsem objevil Riak, který dost problémů řeší.

  1. umí relace – bez relací se NoSQL dá skvěle používat na logy, cache, ale jinak… jinak… nevím. Riak umožňuje provázat (a poměrně snadno i procházet) jednotlivé objekty v databázi.
  2. umí dobře indexy – rozuměj: umí indexy jak nad políčky, tak i vlastní „ruční indexy“ (tzv. sekundární indexy).
  3. škáluje – totiž ono je o NoSQL „veřejně známo že skvěle škáluje“ a není to vůbec pravda. Běžné NoSQL uložiště nemá lepší horizontální škálovatelnost, než běžná SQL databáze. Riak nemá master-slave replikaci ani nic podobného. Připojíte uzel a síť se o všechno postará sama.
  4. nemá Single Point Of Failure – před časem jsem psal o tom, jak škálovat v cloudu a pravidlo 7 bylo – vyvíjejte systém bez centrálního bodu. Pokud by vás zajímalo, jak to udělat, tak například pomocí Riaku můžete udržovat informace, konfigurace, události apod. a pád jakéhokoliv uzlu neshodí celý systém.
  5. neobětoval z CAP teorému Availability – tohle je neskutečně „flamewar“-tvorné téma a hodně záleží na účelu. Přesto když už hledám použití pro NoSQL, tak právě možnost kdykoliv spolehlivě zapisovat je pro mě důležitá a užitečná. Výhodou je, že když se vzdám rychlosti, je možné zajistit i obětovanou Consistency a pojistit si, že dostanu celý CAP (ale to platí o více NoSQL uložištích).

Nebudu dělat Riaku dlouhá představování. Ve zkratce je to uložiště napsané v Erlangu, které umí key-value přístup, map-reduce v Erlangu a Javascriptu. Komunikace probíhá pomocí JSONu přes REST. Je v lecčems hodně podobný CouchDb. Cílem je skvělá horizontální škálovatelnost, jednoduchost a snadná přístupnost dat.

Už nezobrazovat

Nabídky práce na míru

Ať už vás práce baví, nebo ne, vždycky si můžete polepšit. A já občas zveřejňuju nabídky práce, s kterými se mi ozývají různé firmy. Jestli máte zájem občas dostat e-mail, kde budou ony nabídky nalinkované.

Slibuji, že váš e-mail nebudu zaměstnavatelům nijak dávat (ani vašim stávajícím ani potenciálním jiným).


Copyright © 2010-2014 Jiří Knesl; 777 002 104 jiri@sprintmasters.cz RSS
Followujte mě na twitteru