V mém předchozím příspěvku jsme viděli některé zásadní rozdíly mezi relačními a nerelačními databázemi. V tomto příspěvku si promluvme o škálovatelnosti těchto dvou.
Škálovatelnost
Je to schopnost systému, který dokáže snadno pojmout rychle příchozí data bez větších problémů s výkonem. To je hlavním faktorem, aby každý systém poskytoval dobrou škálovatelnost. Existují dva typy metod změny měřítka známé jako vertikální a horizontální měřítko.
Vertikální měřítko
Všechny nástroje relační databáze podporují vertikální škálování. Toto je metoda zvýšení výkonu systému přidáním dalšího CPU, paměti a diskového prostoru. Aby bylo možné rychle přijímat data, je jediný produkční server optimalizován pro rozšíření. V této škálovací technice je vždy jeden produkční server, ke kterému mohou být připojeny všechny aplikace a uživatelé. Clusterové prostředí lze vytvořit s některými uzly a replikovat data mezi uzly.
Kvůli vlastnostem ACID by všechny uzly měly mít stejnou sadu dat a synchronizace dat se komplikuje, pokud je v clusteru několik uzlů. To je velmi optimalizováno pro čtení měřítka. Vertikální škálování je také známé jako škálování
Výhodou této metodologie škálování je těsná integrace dat a jejich konzistence napříč uzly v clusteru. Všechny uzly budou mít stejnou sadu dat a pokud dojde k problému s produkčním serverem, aplikace automaticky připojí další uzel. Tento cluster je tedy známý jako cluster s přepnutím při selhání.
Horizontální měřítko
Všechny nerelační databázové nástroje podporují horizontální škálování. Jedná se o metodu přidání více počítačů do sítě, aby bylo možné rychle přijímat data. Je snadné přidat další uzly do clusteru, aby se umožnil růst dat. Data jsou automaticky rozdělena a zpracovávána mezi uzly v clusteru. Toto je distribuované datové prostředí. Hadoop Distributed File System (HDFS) je toho klasickým příkladem. Horizontální změna měřítka se také nazývá Scale-out.
Výhodou této techniky škálování je to, že jelikož jsou data rozdělena a replikována mezi uzly, pokud některý z uzlů přejde do režimu offline, aplikace může stále mít data z jiných uzlů a to zaručuje dostupnost dat po celou dobu. Tato metoda je velmi užitečná v případech, kdy mezi daty uzlů nejsou vyžadovány žádné JOINy. To je také užitečné při oddělování dat a jejich umístění v různých geografických lokalitách.
Zatímco obě tyto techniky škálování mají výhody a nevýhody, dobré prostředí může obě tyto kombinovat, aby bylo dosaženo vynikajícího škálování a škálování. Můžeme mít škálovatelnou databázi pro čtení a zápis na jediném serveru, který vyžaduje vlastnosti ACID, a mít škálovaná distribuovaná historická data napříč několika uzly pro účely dolování dat.