Alibaba ha abierto el código de PolarDB, un DBMS distribuido basado en PostgreSQL.

Alibaba, una de las mayores empresas chinas de TI, ha abierto el código fuente del DBMS distribuido PolarDB, basado en PostgreSQL. PolarDB amplía las capacidades de PostgreSQL con herramientas para el almacenamiento de datos distribuidos con integridad y soporte para transacciones ACID en el contexto de toda la base de datos global distribuida en diferentes nodos del clúster. PolarDB también admite procesamiento distribuido de consultas SQL, tolerancia a fallas y almacenamiento de datos redundante para recuperar información después de que fallan uno o más nodos. Si necesita ampliar su almacenamiento, simplemente puede agregar nuevos nodos al clúster. El código está abierto bajo la licencia Apache 2.0.

PolarDB consta de dos componentes: extensiones y un conjunto de parches para PostgreSQL. Los parches amplían las capacidades del núcleo de PostgreSQL y las extensiones incluyen componentes implementados por separado de PostgreSQL, como un mecanismo de gestión de transacciones distribuidas, servicios globales, un procesador de consultas SQL distribuido, metadatos adicionales, herramientas para la gestión de clústeres, implementación de clústeres y simplificación de la migración. de los sistemas existentes.

Los parches añaden al núcleo de PostgreSQL una versión distribuida del mecanismo para controlar el acceso paralelo a los datos mediante multiversión (MVCC, control de concurrencia multiversión) para diferentes niveles de aislamiento. La mayor parte de la funcionalidad de PolarDB está incluida en extensiones, lo que reduce la dependencia de PostgreSQL y simplifica la actualización e implementación de soluciones basadas en PolarDB (simplifica la transición a nuevas versiones de PostgreSQL y mantiene la compatibilidad total con PostgreSQL). Para administrar el clúster, se utiliza el kit de herramientas pgxc_ctl, basado en una utilidad similar de PostgreSQL-XC y PostgreSQL-XL.

Hay tres componentes básicos en un clúster: nodos de base de datos (DN), administrador de clúster (CM) y servicio de gestión de transacciones (TM). Además, se puede utilizar un equilibrador de carga proxy. Cada componente es un proceso independiente y se puede ejecutar en un servidor diferente. Los nodos de la base de datos atienden consultas SQL de los clientes y al mismo tiempo actúan como coordinadores de la ejecución distribuida de consultas con la participación de otros nodos de la base de datos. El administrador del clúster monitorea el estado de cada nodo de la base de datos, almacena la configuración del clúster y proporciona herramientas para administrar, realizar copias de seguridad, equilibrar la carga, actualizar, iniciar y detener los nodos. El servicio de gestión de transacciones es responsable de mantener la integridad general en todo el clúster.

Alibaba ha abierto el código de PolarDB, un DBMS distribuido basado en PostgreSQL.

PolarDB se basa en la arquitectura informática distribuida Shared-nothing, según la cual los datos se distribuyen cuando se almacenan en diferentes nodos, sin utilizar un almacenamiento común para todos los nodos, y cada nodo es responsable de la porción de datos asociados con él y realiza consultas relacionadas. a los datos. Cada tabla se divide en partes (fragmentación) mediante hash basado en la clave principal. Si la solicitud abarca datos ubicados en diferentes nodos, se activa un motor de ejecución de transacciones distribuidas y un coordinador de transacciones para garantizar la atomicidad, la coherencia, el aislamiento y la confiabilidad (ACID).

Para garantizar la tolerancia a fallos, cada segmento se replica en al menos tres nodos. Para ahorrar recursos, los datos completos incluyen solo dos réplicas y una se limita a almacenar el registro de reescritura (WAL). Uno de los dos nodos con réplicas completas es elegido líder y participa en el procesamiento de solicitudes. El segundo nodo actúa como repuesto para el segmento de datos en cuestión, y el tercero participa en la selección del nodo líder y puede usarse para restaurar información en caso de falla de dos nodos con réplicas completas. La replicación de datos entre nodos del clúster se organiza mediante el algoritmo Paxos, que garantiza una definición consistente de consenso en una red con nodos potencialmente poco confiables.

Cabe señalar que está previsto revelar la funcionalidad completa del DBMS PolarDB en tres versiones: en la primera versión, se publicarán herramientas de replicación, alta disponibilidad y gestión de clústeres. La segunda versión contará con un sistema de ejecución de transacciones distribuidas que admite la ejecución de ACID entre nodos y SQL distribuido. La tercera versión incluirá un complemento para PostgreSQL y herramientas para la distribución flexible de datos entre nodos, incluida la ubicación adaptable de segmentos para lograr un rendimiento óptimo y la capacidad de expandir el clúster agregando nuevos nodos.

Fuente: opennet.ru

Añadir un comentario