sql >> Base de Datos >  >> RDS >> MariaDB

Una descripción general de MariaDB Xpand (anteriormente ClustrixDB)

MariaDB Xpand es un nuevo producto de MariaDB. Anteriormente se conocía como ClustrixDB, que fue adquirida en septiembre de 2018 por MariaDB Corporation.

ClustrixDB ya no está disponible como una entidad separada, pero ahora se incluye como parte de MariaDB Enterprise Server. Ahora llamado Xpand, amplía MariaDB Enterprise Server con datos distribuidos y procesamiento de transacciones, transformándolo en una base de datos SQL distribuida capaz de escalar a millones de transacciones por segundo con una arquitectura de nada compartido. Sin embargo, Xpand no es un todo o nada, ya que los administradores de bases de datos pueden optar por utilizar tablas tanto replicadas como distribuidas. Xpand es bueno para consultas complejas y procesamiento de análisis, ya que puede realizar consultas paralelas en los nodos disponibles dentro del clúster.

Básicamente, Xpand es una arquitectura compartida y diseñada como una base de datos SQL escalable, construida desde cero que originalmente podría ejecutarse en hardware básico con redistribución automática de datos (para que nunca necesite fragmentar ). Tiene tolerancia a fallas incorporada, todo accesible mediante una interfaz SQL simple y soporte para funciones MySQL críticas para el negocio (replicación, disparadores, rutinas almacenadas, etc.). Su licencia solo está disponible como propietaria, por lo que si desea aprovechar este producto, primero debe comunicarse con el departamento de ventas de MariaDB para adquirir una licencia válida.

Cuándo usar MariaDB Xpand

Xpand está diseñado para manejar grandes volúmenes de datos y eso le permite escalar su base de datos de manera más eficiente. Esto significa que el propio Xpand realiza fácil y automáticamente el escalado de su clúster. Desde el lanzamiento de MariaDB Platform X5, Xpand ya forma parte de la plataforma proporcionada a los clientes como parte de la solución SQL distribuida. El motor inteligente Xpand permite a los clientes escalar más allá del punto óptimo del motor de almacenamiento InnoDB de cargas de trabajo mixtas de lectura/escritura de alto rendimiento en un solo nodo con la opción de agregar escala a través de la replicación y emplear una solución distribuida tolerante a fallas de alta disponibilidad para grandes escalar cargas de trabajo.

Con Xpand, tiene la flexibilidad de escalar por tabla. Comience usando Xpand para una sola tabla y amplíe el uso a medida que sus necesidades crezcan más allá de lo que puede manejar un solo nodo. Aumente el uso de SQL distribuido a medida que su empresa necesite crecer más allá de la replicación o el agrupamiento. Cuando los volúmenes de datos o consultas aumentan hasta el punto de degradar el rendimiento, puede usar Xpand para distribuir tablas o toda la base de datos para mejorar el rendimiento y la concurrencia. Xpand tiene alta disponibilidad y elasticidad integradas, por lo que los nodos se pueden agregar o eliminar de forma transparente según sea necesario para escalar horizontalmente.

Al igual que con MariaDB ColumnStore, el motor inteligente en columnas, las JOIN entre motores son posibles (y recomendadas) entre tablas replicadas y distribuidas. A diferencia de otras implementaciones de SQL distribuido que distribuyen toda la base de datos y, por lo tanto, tienen una sobrecarga significativa en tablas más pequeñas, MariaDB permite el uso combinado de InnoDB para conjuntos de datos pequeños replicados y conjuntos de datos distribuidos masivos a través de Xpand.

Desafortunadamente, no hay documentación formal sobre el estado del cambio de ClustrixDB a MariaDB Xpand, por lo que es posible que desee confiar en https://docs.clustrix.com/ para obtener documentación sobre cómo funciona ClustrixDB. También se sabe que ClustrixDB no admite GTID, aunque esto podría haber cambiado desde el lanzamiento de MariaDB 10.5.

¿Cómo funciona MariaDB Xpand?

La implementación con MariaDB Xpand requiere que tenga MariaDB Enterprise Servers con el complemento Xpand instalado, luego los nodos Xpand ejecutándose al mismo tiempo. Es similar a cómo configura la configuración de replicación de MaxScale y MariaDB Server para alta disponibilidad y puede colocar MaxScale en la parte superior para administrar las conexiones y la conmutación por error transparente entre las instancias de frontend Enterprise Server con conjuntos de datos más pequeños replicados en InnoDB. También se recomienda que para obtener la mejor experiencia de rendimiento con Xpand, los servidores front-end y los nodos deben ejecutarse en servidores físicos separados. Vea la arquitectura de topología MariaDB Xpand a continuación de MariaDB sobre cómo funciona:

https://mariadb.com/resources/blog/mariadb-adds-xpand-for-distributed-sql /

Para explicar más arriba, Xpand divide una cantidad de segmentos para cada tabla que se construye usando Xpand. Cada segmento se almacena en un nodo principal y luego se replica en uno o más nodos para garantizar la tolerancia a fallas. Cada nodo Xpand puede realizar lecturas y escrituras. Y cada nodo tiene un mapa de distribución de datos.

Para las operaciones de lectura, la mayor parte de la consulta se envía a Xpand, donde se evalúa la consulta y las partes relevantes de la consulta se envían a los nodos Xpand apropiados. MariaDB Enterprise Server recopila los datos de retorno de los nodos Xpand para generar un conjunto de resultados.

Para las operaciones de escritura, MariaDB Xpand utiliza un componente llamado "reequilibrador" para distribuir datos de forma automática y transparente entre los nodos Xpand disponibles.

MariaDB Xpand como SQL Distribuido

Cada nodo Xpand puede realizar lecturas y escrituras. Cuando MariaDB Enterprise Server recibe una consulta, un optimizador de consultas la evalúa y partes de la consulta se envían a los nodos Xpand relevantes. Los resultados se recopilan y se devuelve un único conjunto de resultados al cliente.

MariaDB Xpand aprovecha una arquitectura de nada compartido; un solo nodo maneja cada solicitud y la memoria y el almacenamiento no se comparten.

MariaDB Xpand HA y tolerancia a fallas

MariaDB Xpand es tolerante a fallas por diseño. Xpand mantiene dos réplicas de todos los datos mediante un proceso de reequilibrio que se ejecuta en segundo plano. Xpand puede sufrir una falla de un solo nodo o zona sin pérdida de datos.

En caso de falla del nodo, los datos se reequilibran de los nodos restantes, reparando automáticamente la protección de datos sin intervención. En una falla de zona, el reequilibrador realiza la misma operación entre los nodos y las zonas restantes.

Cuando se reemplaza el nodo fallido, el reequilibrador redistribuye los datos, restaurando MariaDB Xpand a la cantidad de nodos prevista.

Escala horizontal horizontal con MariaDB Xpand

MariaDB Xpand es flexible por diseño. Si aumenta la carga en MariaDB Enterprise Server, puede agregar servidores adicionales a su implementación y equilibrar la carga entre ellos mediante MariaDB MaxScale. Cada servidor puede conectarse a los nodos Xpand para acceder a los datos almacenados en las tablas Xpand.

Si aumenta la carga en MariaDB Xpand, puede escalar agregando nuevos nodos. Cuando agrega un nodo Xpand a la implementación, el proceso de reequilibrio redistribuye los datos de los nodos existentes. Una vez completado, el nodo Xpand ahora puede manejar operaciones de lectura y escritura desde los servidores empresariales de MariaDB.

Si la carga en MariaDB Xpand disminuye, puede reducirla eliminando nodos. Cuando elimina un nodo Xpand de la implementación, el proceso de reequilibrio redistribuye los datos a los nodos restantes, lo que garantiza la tolerancia a fallas.

¿Qué hace que MariaDB Xpand sea escalable?

No hay cuellos de botella ni puntos únicos de falla. Todos los procesadores se alistan para admitir el procesamiento de consultas. Las consultas se paralelizan y distribuyen a través del clúster a los datos relevantes. Los nuevos nodos se reconocen automáticamente y se incorporan al clúster. Las cargas de trabajo y los datos se equilibran automáticamente en todos los nodos del clúster. El cálculo relacional de SQL en todo el clúster y las propiedades ACID eliminan la complejidad de varios nodos del desarrollo y la gestión de aplicaciones de varios niveles. Se elimina la complejidad comúnmente requerida para escalar modelos de base de datos existentes para manejar grandes volúmenes de datos. Y a medida que crezca su base de datos, simplemente agregue nodos.

Hay varias cosas que afectan la escalabilidad y el rendimiento:

  • Arquitectura de nada compartido, que elimina posibles cuellos de botella. Compare esto con las arquitecturas de disco compartido/caché compartida que generan cuellos de botella, no escalan y son difíciles de administrar.
  • Paralelización de consultas, que se distribuyen a los nodos con los datos relevantes. Los resultados se crean lo más cerca posible de los datos, luego se enrutan de vuelta al nodo solicitante para su consolidación y se devuelven al cliente.

Esto es muy diferente de otros sistemas, que rutinariamente mueven grandes cantidades de datos al nodo que está procesando la consulta, luego eliminan todos los datos que no se ajustan a la consulta (generalmente muchos datos) . Al mover solo datos calificados a través de la red al nodo solicitante, Xpand reduce significativamente el cuello de botella del tráfico de red. Además, más procesadores participan en el proceso de selección de datos. Al seleccionar datos en múltiples nodos en paralelo, el sistema produce resultados más rápidamente que si todos los datos fueran seleccionados por un solo nodo, que primero tiene que recopilar todos los datos requeridos del otro. nodos en el sistema.

Dado que cada nodo se enfoca en una partición particular y envía elementos de trabajo a otros nodos en lugar de solicitar datos sin procesar de otros nodos, el caché de cada nodo contiene más datos de ese nodo y menos datos redundantes de otros nodos. Esto significa que las tasas de aciertos de caché serán mucho más altas, lo que reducirá significativamente la necesidad de accesos lentos al disco.

Implementación de MariaDB Xpand

Hay dos implementaciones separadas de MariaDB Xpand para comenzar a usar MariaDB Xpand. Las implementaciones de Xpand consisten en instancias de MariaDB Enterprise Server, llamadas servidores front-end, que tienen instalado el complemento Xpand, luego los nodos Xpand se ejecutan junto con estos servidores front-end. Para obtener el mejor rendimiento, Enterprise Server y el nodo Xpand se pueden instalar en servidores físicos independientes.

  1. Debe configurar el nodo MariaDB Xpand. Los nodos Xpand se configuran en una implementación para proporcionar el back-end de almacenamiento para los servidores empresariales MariaDB con el complemento del motor de almacenamiento Xpand. Los servidores almacenan datos para tablas Xpand en nodos Xpand en lugar del sistema de archivos local. La instalación del nodo Xpand requiere una licencia, que es un objeto JSON, y solo puede adquirirla comunicándose con Ventas de MariaDB. El proceso de instalación no es tan rápido como un solo comando o clic, por lo que le sugerimos que vaya a su guía de instalación para el nodo Xpand.
  2. Implemente un servidor front-end. Como he notado aquí sobre los cambios que hicieron, parece que la forma más recomendada de usar Xpand es usar MariaDB Enterprise Server 10.5. El Xpand 

Compatibilidad de hardware MariaDB Xpand

Si tiene curiosidad acerca de su compatibilidad de hardware, la plataforma MariaDB puede ejecutarse en una variedad de entornos. Siempre que sus servidores MariaDB puedan ejecutarse o alojarse en los entornos que está utilizando actualmente, siempre que pueda configurar los nodos Xpand junto con los servidores MariaDB y tener los complementos Xpand instalados, esto definitivamente funcionará. A partir de su documentación, la lista de entornos físicos y de nube se incluye a continuación:

  • En las instalaciones (en las instalaciones)
  • Colocado (colo)
  • Nube privada
  • Nube pública
  • Híbrido

Para la arquitectura de hardware, vale la pena señalar que a partir de MariaDB Enterprise Server 10.4.10-4 (2019-11-18), MariaDB Enterprise Server solo admite plataformas de arquitectura de hardware x86_64.

Conclusión

MariaDB Xpand simplifica la eficiencia y la capacidad de expansión de una manera muy conveniente. El aspecto más atractivo de este producto es que también puede utilizar las funciones SQL estándar de MariaDB. Puede integrarse a través de su entorno MariaDB existente, que puede aprovechar sus características y escalabilidad. Aunque eso puede ser tentador, requiere una licencia especial y grandes tarifas para que pueda aprovechar este producto. Si cumple un propósito para su aplicación empresarial, entonces vale la pena probar MariaDB Xpand.