Salta ai contenuti
Manuale LogoManuale Logo

Sharding

Lo sharding distribuisce i dati su più server. Invece di tenere tutto in una sola macchina, dividi il carico in più parti.

I dati vengono assegnati ai server secondo una regola, per esempio in base al cliente.

Quando un sistema cresce moltissimo, un solo server può non bastare più. In questi casi si può distribuire il carico e i dati su più nodi.

Per esempio, potresti mettere alcuni clienti su un server e altri clienti su un altro server, seguendo una regola precisa.

Aiuta a scalare sistemi molto grandi, ma aumenta parecchio la complessità tecnica e operativa.

Per questo non è una soluzione da applicare prima di aver esaurito alternative più semplici.

Con lo sharding diventano più difficili domande come:

  • dove si trova questo dato?
  • come faccio una query che attraversa più server?
  • come faccio backup e manutenzione?
  • cosa succede se uno shard ha molto più traffico degli altri?

Prima di pensare allo sharding, di solito conviene migliorare schema, indici, query e infrastruttura normale.

Molti progetti non ne avranno mai bisogno.