««« | »»»
Sharding: un diverso approccio per scalare i databases
Come dicevo ieri, High Scalability è una miniera di informazioni. In questo articolo viene discusso lo sharding per scalare in orizzontale applicazioni che si appoggiano ad un database SQL – praticamente il 90%, direi – per la gestione dei dati.
L’idea è quasi banale. Di solito il DBMS gira su una sola macchina e solo gli strati più alti dell’architettura, come l’application server e il server web vengono scalati in orizzontale; se si vogliono aumentare le prestazioni del DBMS si aggiorna l’hardware. Lo sharding cerca di risolvere questo problema segregando i dati in blocchi (o se preferite, in schegge, traducendo direttamente shard). Ogni blocco è indipendente e quindi diventa possibile rendere più lineare la scalabilità del sistema, aggiungendo hardware in modo progressivo solo quando richiesto.
Ho qualche dubbio sul fatto che i dati debbano essere necessariamente denormalizzati: credo dipenda molto dallo schema; anzi, direi che l’evitare la denormalizzazione dovrebbe essere uno dei criteri per “scheggiare” la base dati. Ovviamente, i vari sistemi DBMS sono anch’essi interpellati da problematiche e soluzioni come queste: è il loro settore, no?
Per proseguire
Commenti e trackback sono disabilitati.
Commenti su Sharding: un diverso approccio per scalare i databases
Una risposta
ReFactor.it » Dati, RDBMS e scalabilità (14/08/07)
[…] Qualche giorno fa segnalando un articolo su High Scalability mi chiedevo in quale misura i vari RDBMS – o meglio, i loro sviluppatori – si sentissero interpellati da articoli come quello, in cui si buttano alle ortiche alcuni punti fermi dello sviluppo dei database come la normalizzazione dei dati, i vincoli d’integrità. […]