Sdílet prostřednictvím


Škálovatelnost v Azure DocumentDB

Azure DocumentDB nabízí možnost škálovat clustery vertikálně i horizontálně. Zatímco úroveň výpočetního clusteru a disk úložiště funkčně závisí na sobě, škálovatelnost a náklady na výpočetní prostředky a úložiště jsou oddělené.

Vertikální škálování

Vertikální škálování nabízí následující výhody:

  • Aplikační týmy nemusí mít vždy jasnou cestu k logickému roztřídění dat. Kromě toho je logické horizontální dělení definované pro každou kolekci. V datové sadě s několika nehardovanými kolekcemi se modelování dat pro rozdělení dat může rychle stát zdlouhavým. Pouhé vertikální navýšení kapacity clusteru může obejít potřebu logického horizontálního dělení a současně splnit rostoucí potřeby úložiště a výpočetních prostředků aplikace.
  • Vertikální škálování nevyžaduje vyrovnávání dat. Počet fyzických shardů zůstane stejný, zvýší se pouze kapacita clusteru, což nemá žádný dopad na aplikaci.
  • Zvyšování a snižování kapacity probíhá bez prostojů a bez narušení služby. Nejsou potřeba žádné změny aplikace a operace stabilního stavu můžou pokračovat bez přerušení.
  • Výpočetní prostředky je možné také snížit v době nízké aktivity. Zmenšením se opět vyhnete nutnosti znovu vyvážit data napříč méně fyzickými shardami a jedná se o operaci s nulovým výpadkem bez přerušení služby. Tady také nejsou potřeba žádné změny aplikace po vertikálním snížení kapacity clusteru.
  • Nejdůležitější je, že výpočetní prostředky a úložiště je možné škálovat nezávisle na sobě. Pokud potřebujete více jader a paměti, můžete velikost disku ponechat tak, jak je, a úroveň clusteru je možné vertikálně navýšit. Stejně tak platí, že pokud je potřeba více úložiště a IOPS, úroveň clusteru se dá nechat tak, jak je, a velikost úložiště se dá vertikálně navýšit nezávisle. V případě potřeby je možné nezávisle škálovat výpočetní prostředky i úložiště tak, aby se optimalizovaly pro jednotlivé požadavky jednotlivých komponent, aniž by to mělo vliv na požadavky na elasticitu obou komponent.

Horizontální škálování

Nakonec se aplikace rozrůstá až do bodu, kdy vertikální škálování nestačí. Požadavky na pracovní zatížení mohou překročit kapacitu největší úrovně klastru a nakonec je potřeba více shardů. Horizontální škálování v Azure DocumentDB nabízí následující výhody:

  • Logicky shardované datové sady nevyžadují zásah uživatele k vyvážení dat mezi základními fyzickými oddíly. Služba automaticky mapuje logické shardy na fyzické shardy. Když se uzly přidají nebo odeberou, data se automaticky znovu vyrovnávají v databázi pod kryty.
  • Požadavky se automaticky směrují do relevantního fyzického dílu (shard), který vlastní rozsah hash hodnot pro dotazovaná data.
  • Geograficky distribuované clustery mají homogenní konfiguraci s více uzly. Proto jsou logická mapování fyzických shardů konzistentní napříč primárními a replikačními oblastmi clusteru.

Škálování výpočetních prostředků a úložiště

Výpočetní prostředky a prostředky paměti ovlivňují operace čtení v Azure DocumentDB více než IOPS disku.

  • Operace čtení nejprve kontrolují mezipaměť ve výpočetní vrstvě a pokud z ní data nelze získat, přecházejí na disk. Zvýšením kapacity vrstvy clusteru pro úlohy s vyšší mírou operací čtení za sekundu získáte více prostředků procesoru a paměti, což vede k vyšší propustnosti.
  • Kromě propustnosti čtení můžou úlohy s velkým objemem dat na operaci čtení využívat také škálování výpočetních prostředků clusteru. Například úrovně clusteru s větší pamětí umožňují větší velikosti záložních balíčků na dokument a větší počet menších dokumentů na každou odpověď.

IOPS disku ovlivňuje operace zápisu v Azure DocumentDB více než kapacity procesoru a paměti výpočetních prostředků.

  • Operace zápisu vždy uchovávají data na disk (kromě zachování dat v paměti za účelem optimalizace čtení). Větší disky s větším počtem vstupně-výstupních operací za sekundu poskytují vyšší propustnost zápisu, zejména při spouštění ve velkém měřítku.
  • Služba podporuje až 32 TB disky na shard s větším počtem operací vstup/výstup za sekundu, aby bylo možné využít pro náročné úlohy zápisu, zejména ve velkém měřítku.

Úlohy náročné na úložiště a velké disky

Žádné minimální požadavky na úložiště na úroveň clusteru

Jak už bylo zmíněno dříve, úložiště a výpočetní prostředky jsou oddělené pro fakturaci a zřizování. I když fungují jako soudržná jednotka, dají se škálovat nezávisle. Úroveň clusteru M30 může mít zřízené 32TB disky. Podobně může mít clusterová úroveň M200 zřízené disky o kapacitě 32 GB k optimalizaci nákladů na úložiště i výpočetní výkon.

Nižší celkové náklady na vlastnictví s velkými disky (32 TB a více)

Databáze NoSQL obvykle omezují úložiště každého fyzického dílu na 4 TB. Azure DocumentDB poskytuje až osminásobek této kapacity s disky o velikosti 32 TB. U úloh náročných na úložiště vyžaduje kapacita úložiště 4 TB na fyzický shard obrovské množství výpočetních prostředků, aby byly splněny požadavky těchto úloh na úložiště. Výpočetní prostředky jsou dražší než úložiště a nadměrné přidělování výpočetních prostředků kvůli omezením kapacity ve službě může rychle zvýšit náklady.

Pojďme se podívat na úlohy náročné na úložiště s 200 TB dat.

Velikost úložiště na fragment Minimální shardy potřebné pro udržení 200 TB
4 TiB 50
32 TiB 7

Snížení požadavků na výpočetní prostředky prudce klesá u větších disků. I když může být k zajištění požadavků na propustnost úlohy potřeba více než minimální počet fyzických oddílů, i zdvojnásobení nebo ztrojnásobení počtu oddílů je cenově výhodnější než 50 oddílů s menšími disky.

Vyhnout se vrstvení úložiště s velkými disky

Okamžitou reakcí na náklady na výpočetní prostředky ve scénářích náročných na úložiště je "vrstvit" data. Data v transakční databázi jsou omezena na nejčastěji přístupná "horká" data, zatímco větší objem "studených" dat se odpojí do studeného úložiště. To způsobuje provozní složitost. Výkon je také nepředvídatelný a závisí na datové vrstvě, ke které se přistupuje. Dostupnost celého systému je navíc závislá na odolnosti horkých i studených úložišť dat v kombinaci. U velkých disků ve službě není potřeba vrstvené úložiště, protože se minimalizují náklady na úlohy náročné na úložiště.

Další kroky