Blog | Ať žije Riak!

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.

Programování

Předejte zkušenosti i dalším a sdílejte tento článek!

Předchozí článek
Následující článek


Jiří Knesl
Business & IT konzultant

Jiří Knesl poprvé začal programovat v roce 1993. Od té doby, díky skvělým učitelům a později zákazníkům, měl možnost neustále růst v oboru vývoje webových aplikací a informačních systémů. v roce 2002 se přidal zájem o ekonomii a v roce 2006 o organizaci práce. Vším tím se konstantně profesně zabývá jak ve svém podnikání, tak i u zákazníků. Za posledních 5 let vydal na tato témata přes 400 článků.

Prohlédněte si moje reference

Mám zkušenosti z rozsáhlých projektů pro korporace, velké podniky, střední i malé firmy, ale i pro startupy v cloudu. Zvyšoval jsem jejich know-how, pomáhal nastavovat jejich organizační strukturu, byl lektorem a mentorem v náročných situacích. Podívejte se, jak vidí můj přínos samotní klienti.

Sledujte mé postřehy na sociálních sítích