Sobes.tech
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.