Junior — Middle
Aké sú výhody a nevýhody rozdeľovania databázy na shardy?
sobes.tech AI
Odpoveď od AI
Sharding je metóda horizontálneho škálovania databázy, pri ktorej sa dáta rozdeľujú na časti (shardy), z ktorých každá je uložená na samostatnom serveri alebo klastre.
Výhody:
- Škálovateľnosť: umožňuje spracovávať viac dát a požiadaviek rozdeľovaním záťaže.
- Zlepšenie výkonu: požiadavky sa spracovávajú paralelne na rôznych shardoch.
- Odolnosť voči chybám: zlyhanie jedného shardu neovplyvňuje celý systém.
Nevýhody:
- Zložitosť správy: vyžaduje logiku smerovania požiadaviek na správny shard.
- Zložitosť transakcií: je ťažké zabezpečiť atomickosť a konzistenciu medzi rôznymi shardami.
- Vyvažovanie záťaže: nerovnomerné rozdelenie dát môže viesť k "horúcim" shardom, čo znižuje efektívnosť.
Príklad: ak máte databázu používateľov, môžete ju shard-ovať podľa geografického kritéria — používatelia z rôznych regiónov sú uložené na rôznych serveroch.