Web Developmentexpert

Čo je Sharding?

Sharding je technika horizontálneho rozdelenia databázy na menšie časti (shardy), ktoré sú distribuované na rôznych serveroch. Každý shard obsahuje podmnožinu celkových dát. Sharding umožňuje spracovať obrovské objemy dát, ktoré by jeden server nezvládol.

Definícia Sharding

Čo je sharding

Sharding (horizontálne partitioning) je architektúrny vzor, pri ktorom sa dáta v databáze rozdeľujú na menšie, nezávislé časti nazývané shardy. Každý shard beží na samostatnom serveri a obsahuje podmnožinu dát — napríklad zákazníci A-M na serveri 1, N-Ž na serveri 2.

Stratégie shardingu

  • Range sharding — dáta sa rozdeľujú podľa rozsahu hodnôt (napr. podľa dátumu, ID alebo abecedy)
  • Hash sharding — shard sa určí hash funkciou z kľúča, čím sa zabezpečí rovnomerné rozloženie
  • Geographic sharding — dáta sa rozdeľujú podľa geografickej lokácie používateľov
  • Directory sharding — centrálny register (lookup table) určuje, na ktorom sharde sa dáta nachádzajú

Kedy je sharding potrebný

Sharding je posledná možnosť škálovania — implementujte ho až keď vertikálne škálovanie (výkonnejší server), read repliky a caching nestačia. Sharding výrazne zvyšuje komplexitu systému — cross-shard dotazy, transakcie a správa dát sú oveľa zložitejšie.

Praktický príklad

Príklad: Sociálna sieť má 500 miliónov používateľov. Jeden databázový server nedokáže spracovať toľko dát a dotazov súčasne.

Riešenie — geographic sharding: Európski používatelia sú na serveroch v Amsterdame, americkí v Virgínii, ázijskí v Singapure. Každý shard obsahuje dáta relevantné pre svoj región.

Výsledok: Každý server obsluhuje tretinu záťaže a používatelia majú nízku latenciu, pretože dáta sú geograficky blízko.

Často kladené otázky

Čo je sharding v databáze?

Sharding je rozdelenie databázy na menšie časti (shardy) distribuované na viacerých serveroch. Každý shard obsahuje podmnožinu dát a obsluhuje časť záťaže, čo umožňuje horizontálne škálovanie.

Aký je rozdiel medzi shardingom a replikáciou?

Sharding rozdeľuje dáta — každý shard má inú podmnožinu dát. Replikácia kopíruje dáta — každá replika má rovnaké dáta. Často sa používajú spoločne: každý shard má svoje repliky.

Kedy by som mal zvážiť sharding?

Sharding zvažujte až keď jeden server nestíha napriek optimalizácii dotazov, indexovaniu, cachingu a read replikám. Pre väčšinu webových aplikácií sharding nie je potrebný.

Súvisiace pojmy

Potrebujete pomôcť s webom?

Napíšte mi a poradím vám s vaším projektom. Prvá konzultácia je zadarmo a nezáväzná.