¿Cuál es la diferencia entre MySQL Fabric y MySQL Cluster?

Respuestas:

20

Estas 3 cosas no tienen nada que ver una con la otra. Te daré una introducción y puedes buscar o solicitar más detalles por separado:

MySQL Cluster es el nombre comercial de lo que muchos de nosotros llamamos, para evitar confusiones como la que padece actualmente, "NDB Cluster" o "MySQL NDB Cluster". Es un almacén de valores de clave síncrono, principalmente solo de memoria, que permite una arquitectura de nada compartido para MySQL (proporcionando un back-end al motor NDB). Proporciona fragmentación automática (mejor rendimiento de lectura y escritura) y alta disponibilidad.. Funciona bien para sistemas de datos pequeños de alto valor clave de alto rendimiento, pero es relativamente complejo de configurar (lo que genera problemas si no se configura correctamente o si se usa de manera no intencional) y no es la mejor latencia. sabio (velocidad bruta). Esta es una versión simplificada (se puede usar para algo más que solo memoria y valor clave, pero se diseñó en torno a ella). En mi opinión, es una muy buena pieza de ingeniería, pero tiene casos de uso limitados, ya que es un producto diferente al servidor MySQL normal con descargas separadas (y requiere el uso de un motor específico).

MySQL Fabric es un conjunto de herramientas / middleware escrito en python que permite la gestión de un conjunto de servidores MySQL regulares en un entorno GTID replicado . No es un clúster per se, pero facilita la gestión de uno. Tiene enlaces a (por ahora) conectores Java y Python, por lo que puede manejar automáticamente el fragmentación y la alta disponibilidad de los servidores, pero es una capa superior a los servidores MySQL normales y la replicación regular (se pueden usar motores de almacenamiento regulares como InnoDB) . La replicación, hasta ahora es asíncrona (o semisíncrona), por lo que puede no proporcionar por sí misma la mejor consistencia y seguridad; Esto puede cambiar en futuras versiones 5.7. Sin embargo, este enfoque tiene menos sobrecarga en la latencia y utiliza la tecnología de replicación más familiar de MySQL DBA. MySQL Fabric es un chico relativamente nuevo en el vecindario, por lo que aún no está muy extendido, pero parece ser la reacción de Oracle (junto con la replicación sincrónica anunciada) a los clústeres basados ​​en Galera de la competencia.

Si necesita fragmentación y HA, puede usar uno de los 2 productos anteriores, pero probablemente para escenarios totalmente diferentes.

WebScaleSQL no es una solución de alta disponibilidad, como las anteriores, es solo el nombre que varias compañías le dieron a una bifurcación / versión de MySQL donde comparten parches específicos que necesitan y tal vez Oracle no ha aplicado. Hasta donde yo sé, ha sido creado por Facebook, Twitter, LinkedIn y Google, y reajustan sus propias versiones de MySQL sobre esa base común. No proporcionan soporte o lanzamientos binarios. Si usted es un usuario final, probablemente no debería importarle usarlo, pero debe vigilar el proyecto para ver qué evolucionará a partir de él o la respuesta de otros proveedores.

Si está tratando de aprender / comenzar con MySQL HA / scaling, comience con la replicación básica de MySQL (puede que no sea la mejor, pero es la cosa más fácil para comenzar), entonces puede continuar desde allí a otras soluciones: DRBD [ sic], replicación GTID, NDB, Galera, Tungsteno.

jynus
fuente
¿Por qué pones el "[sic]" después del nombre DRBD? Los he mirado y parecen ser bastante impresionantes desde un punto de vista tecnológico.
Vérace
DRBD es una tecnología de nivel de bloque, lo que significa que no sabe nada sobre el DB o sus buffers. No espere un gran rendimiento para los sistemas OLTP; no puede ser activo-activo (ni siquiera en modo de solo lectura), si MySQL falla, debe recuperarse ya que se bloqueó localmente y no lo protege de la corrupción de la base de datos. No es una tecnología pura de "nada compartido" a nivel lógico, es más un RAID distribuido, por lo que no es 100% apto para MySQL. Es bueno para una carga de escritura baja o si necesita distribuir varios protocolos al mismo tiempo. La replicación de semi-sincronización basada en filas es superior en caso contrario
jynus
@ Vérace ... Es, en resumen, una objeción de caso de uso (agrupación MySQL), no tengo nada en contra de la tecnología en otros casos, donde los protocolos de nivel superior pueden no estar disponibles / podría ser una mejor opción.
jynus
Entendí perfectamente, el punto sobre el almacenamiento en búfer está bien hecho, DRBD, como usted dice, no sabe nada sobre los aspectos internos de MySQL, es decir, las cosas comprometidas pero aún no escritas en el disco se perderán en caso de un bloqueo.
Vérace
2

MySQL Fabric se implementa como un nodo / proceso de MySQL Fabric (que realiza funciones de administración) y conectores compatibles con Fabric que pueden enrutar consultas y transacciones directamente al servidor MySQL más apropiado. El nodo MySQL Fabric almacena información de estado y enrutamiento en su State Store (que es una base de datos MySQL).

MySQL Cluster es una tecnología que permite la agrupación de bases de datos en memoria en un sistema de nada compartido. La arquitectura de nada compartido permite que el sistema funcione con hardware muy económico y con un mínimo de requisitos específicos para hardware o software.

Elayachi
fuente