Qual è la differenza tra MySQL Fabric e MySQL Cluster


Risposte:


20

Queste 3 cose non hanno nulla a che fare l'una con l'altra. Ti darò un'introduzione e potrai cercare o chiedere ulteriori dettagli separatamente:

MySQL Cluster è il nome commerciale di ciò che molti di noi chiamano - per evitare confusioni come quella di cui si soffre attualmente - "NDB Cluster" o "MySQL NDB Cluster". Si tratta di un archivio di valori-chiave sincrono, prevalentemente di sola memoria, che consente un'architettura a nulla condiviso per MySQL (che fornisce un back-end al motore NDB). Fornisce lo sharding automatico (quindi, una migliore velocità di lettura e scrittura) e un'elevata disponibilità. Funziona bene con i sistemi di dati di piccole dimensioni con valori-chiave ad alto rendimento, ma è relativamente complesso da configurare (portando a problemi se non è configurato correttamente o se viene utilizzato in modo non intenzionale) e non è la migliore latenza- saggio (velocità grezza). Questa è una versione semplificata (può essere utilizzata per qualcosa di più della sola memoria e del valore-chiave, ma è stata progettata attorno ad essa). A mio avviso, un ottimo pezzo di ingegneria, ma ha casi d'uso limitati, in quanto è un prodotto diverso rispetto al normale server MySQL con download separati (e richiede l'uso di un motore specifico).

MySQL Fabric è un set di strumenti / middleware scritti in Python che consente la gestione di un set di normali server MySQL in un ambiente GTID replicato . Non è un cluster di per sé, ma facilita la gestione di uno. Ha collegamenti a (per ora) connettori Java e Python, quindi può gestire automaticamente lo sharding e l'alta disponibilità dei server, ma è uno strato sopra i normali server MySQL e la replica regolare (è possibile utilizzare motori di archiviazione regolari come InnoDB) . La replica, fino ad ora, è asincrona (o semi-sincrona), quindi potrebbe non fornire da sola la migliore coerenza e sicurezza; questo potrebbe cambiare nelle future versioni 5.7. Tuttavia, questo approccio ha un sovraccarico minore in termini di latenza e utilizza la tecnologia di replica più familiare di MySQL DBA. MySQL Fabric è un ragazzo relativamente nuovo nel vicinato, quindi non ancora molto esteso, ma sembra essere la reazione di Oracle (insieme alla replica sincrona annunciata) ai cluster basati su Galera della concorrenza.

Se hai bisogno di sharding e HA, puoi usare uno dei 2 prodotti precedenti, ma probabilmente per scenari totalmente diversi.

WebScaleSQL non è una soluzione HA, come le precedenti, è solo il nome che diverse aziende hanno dato a un fork / versione di MySQL in cui condividono patch specifiche di cui hanno bisogno e che forse Oracle non ha applicato. Per quanto ne so, è stato creato da Facebook, Twitter, LinkedIn e Google e hanno ribattezzato le proprie versioni di MySQL su quella base comune. Non forniscono supporto o versioni binarie. Se sei un utente finale, probabilmente non dovresti preoccuparti di usarlo, ma dovresti tenere d'occhio il progetto per vedere cosa si evolverà da esso o la risposta di altri fornitori.

Se stai cercando di imparare / iniziare con MySQL HA / ridimensionamento, inizia con la replica di base di MySQL (potrebbe non essere la migliore, ma è la cosa più semplice con cui iniziare), quindi puoi continuare da lì ad altre soluzioni: DRBD [ sic], replica GTID, NDB, Galera, Tungsteno.


Perché metti il ​​"[sic]" dopo il nome DRBD? Li ho guardati e sembrano essere abbastanza impressionanti dal punto di vista tecnologico.
Vérace,

DRBD è una tecnologia a livello di blocco, il che significa che non sa nulla del DB o dei suoi buffer. Non aspettarti grandi prestazioni per i sistemi OLTP; non può essere attivo-attivo (nemmeno come in modalità di sola lettura), se MySQL si arresta in modo anomalo, è necessario ripristinare poiché si è arrestato in modo locale e non protegge dalla corruzione del database. Non è una pura tecnologia "nulla condiviso" a livello logico, è più un RAID distribuito, quindi non è adatto al 100% per MySQL. È utile per un carico a bassa scrittura o se è necessario distribuire più protocolli contemporaneamente. In caso contrario, la replica semi-sync basata su riga è superiore.
jynus

@Vérace ... In sintesi, si tratta di un'obiezione sul caso d'uso (clustering MySQL), in altri casi non ho nulla contro la tecnologia, dove protocolli di livello superiore potrebbero non essere disponibili / potrebbe adattarsi meglio.
jynus

Ho capito perfettamente - il punto sul buffering è ben fatto - DRBD, come dici tu, non sa nulla degli interni di MySQL - vale a dire che le cose impegnate ma non ancora scritte su disco andranno perse in caso di crash.
Vérace,

2

MySQL Fabric è implementato come nodo / processo MySQL Fabric (che esegue funzioni di gestione) e connettori compatibili con Fabric che sono in grado di indirizzare query e transazioni direttamente al server MySQL più appropriato. Il nodo MySQL Fabric archivia le informazioni sullo stato e sul routing nel suo archivio di stato (che è un database MySQL).

MySQL Cluster è una tecnologia che consente il clustering di database in memoria in un sistema a nulla condiviso. L'architettura a nulla condiviso consente al sistema di funzionare con hardware molto economico e con un minimo di requisiti specifici per hardware o software.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.