2014-11-26 13 views
6

Dopo un po 'googling ho trovato:Può database relazionale essere scala orizzontale

Nota da mysql docs:

MySQL Cluster automaticamente cocci (partizioni) tavoli in tutta nodi, consentendo database di scalare orizzontalmente su basso costo , commodity hardware per servire carichi di lavoro di lettura e scrittura intensiva, accesso sia a da SQL e direttamente tramite API NoSQL.

Il database relazionale può essere orizzontale? Sarà in qualche modo basato sul database NoSQL?

Qualcuno ha qualche esempio del mondo reale?

Come posso gestire richieste SQL, transazioni e così via in tale database?

+0

Dai un'occhiata alla [JetPants] (https://github.com/tumblr/jetpants) e vedere cosa ne pensi. Questa domanda è troppo ampia per il formato StackOverflow. – tadman

+0

In definitiva, tutti i database sono NoSQL fino a quando non si aggiunge SQL su di essi. Sto scherzando ma serio. Tutto ciò che fa un dbms è organizzare i file in coppie chiave-valore rapidamente accessibili. – theMayer

+0

Il teorema CAP è una risposta. – Maksym

risposta

7

Penso che la risposta sia, inequivocabilmente, sì. Devi tenere a mente che SQL è semplicemente un linguaggio di accesso ai dati. Non c'è assolutamente alcun motivo per cui non possa essere esteso su più computer e partizioni di rete. È un problema impegnativo? Sicuramente, ed è per questo che il software che lo fa è nella sua infanzia.

Ora, penso che quello che stai cercando di chiedere è "Tutte le funzionalità che conosco e che arrivano in un sistema di gestione di database relazionale standard di tipo SQL possono essere sviluppate per funzionare con più server in questo modo?" Mentre ammetto che non ho approfondito il problema, ci sono teoremi là fuori che dicono "No, non può". Consistency-Availability-Partition Theorem afferma che non possiamo avere tutte e tre le qualità allo stesso livello.

Ora, per tutti gli scopi pratici, "sharding" o "partitioning" o qualsiasi altra cosa si voglia chiamare non sta andando via; al contrario. Ciò significa che, dato il grado in cui detiene il teorema CAP, dovremo spostare il modo in cui pensiamo ai database e al modo in cui interagiamo con essi (almeno in una certa misura). Molti sviluppatori hanno già effettuato il passaggio necessario per avere successo su una piattaforma No-SQL, ma molti altri no. In definitiva, si svilupperà una maturità sufficiente del modello e saranno elaborate soluzioni alternative efficaci che i database SQL tradizionali, nel senso che si riferiscono, saranno più o meno pratici su più macchine. Questo sta già iniziando a fare i conti, e direi di dargli qualche altro anno e saremo a quel punto. O avremo collettivamente spostato il pensiero al punto in cui non è più necessario, e il mondo sarà un posto migliore. :)

+0

Grazie, non ho mai sentito parlare di CAP, mentre leggendo su di esso ho trovato un utile link sulle transazioni per NoSQL http://www.infoq.com/articles/MarkLogic-NoSQL-with-Transactions. – Maksym

+0

Siete i benvenuti, lieto che sia stato utile – theMayer

2

Grazie per la domanda e la risposta. Stavo cercando di spiegarlo a qualcuno come questo:

In termini di teorema CAP, non è possibile avere tutti e tre. Così, quando si verifica una partizione (rete o guasto del server):

  • Un relational database su un singolo server che si sta dando C (consistenza). Così, quando un P - si verifica (partizione/server guasto della rete), non si può avere A (disponibilità - db va giù)

  • Un nosql datastore ti dà A, in modo che quando si verifica un P, non è possibile hanno C (una o più delle partizioni replicate sarà fuori dalla sincronizzazione , fino a quando il n/w torna e si sincronizzano tutte).Quindi sarà solo essere eventually consistent

Problemi correlati