Da IBM developerWorks: Fornisci scalabilità dei dati a livello di cloud con database NoSQL
La scalabilità è il sistema che dovrebbe essere in grado di supportare database di grandi dimensioni con percentuali di richieste molto elevate a latenza molto bassa.
I sistemi NoSQL hanno in comune una serie di funzionalità di progettazione:
- La capacità di ridimensionare orizzontalmente la velocità effettiva su molti server.
- Una semplice interfaccia o protocollo a livello di chiamata (in contrasto con un'associazione SQL).
- Supporto per modelli di coerenza più deboli rispetto alle transazioni ACID nella maggior parte dei RDBMS tradizionali.
- Uso efficiente di indici distribuiti e RAM per l'archiviazione dei dati.
- La capacità di definire dinamicamente nuovi attributi o schemi di dati.
Perché i database relazionali potrebbero non essere ottimali per il ridimensionamento
In generale, i sistemi di gestione di database relazionali sono stati considerati per decenni "una soluzione unica per la persistenza e il recupero dei dati". Sono maturati dopo numerosi sforzi di ricerca e sviluppo e hanno creato con successo un grande mercato e soluzioni in diversi settori aziendali.
La sempre crescente necessità di scalabilità e nuovi requisiti applicativi hanno creato nuove sfide per RDBMS tradizionale, inclusa una certa insoddisfazione per questo approccio unico per tutte le applicazioni su scala web. La risposta a questo è stata una nuova generazione di software di database a basso costo e ad alte prestazioni progettato per sfidare il dominio dei sistemi di gestione di database relazionali. Un grande motivo del movimento NoSQL è che le diverse implementazioni delle applicazioni di web, enterprise e cloud computing hanno requisiti diversi per i loro database, ad esempio non tutte le applicazioni richiedono una coerenza dei dati rigida.
Un altro esempio: per i siti Web di grandi volumi come eBay, Amazon, Twitter o Facebook, la scalabilità e l'elevata disponibilità sono requisiti essenziali che non possono essere compromessi. Per queste applicazioni, anche la minima interruzione può avere conseguenze finanziarie significative e influire sulla fiducia dei clienti.
Su DBA.SE: cosa significa ridimensionamento orizzontale?
Il ridimensionamento orizzontale si sviluppa essenzialmente anziché su. Non vai a comprare un server più robusto e trasferisci tutto il carico su di esso, invece acquisti 1+ server aggiuntivi e distribuisci il carico su di essi.
Il ridimensionamento orizzontale viene utilizzato quando si ha la possibilità di eseguire più istanze sui server contemporaneamente. In genere è molto più difficile passare da 1 server a 2 server, quindi è da 2 a 5, 10, 50, ecc.
Una volta risolti i problemi legati all'esecuzione di istanze parallele, puoi trarre grande vantaggio da ambienti come Amazon EC2, Rackspace's Cloud Service, GoGrid, ecc. In quanto puoi aumentare e ridurre le istanze in base alla domanda, riducendo la necessità di pagare per l'alimentazione del server non stai usando solo per coprire quei carichi di picco.
I database relazionali sono uno degli elementi più difficili da eseguire in lettura / scrittura completa in parallelo.