PolarDB: Una base de datos de código abierto basado en PostgreSQL
PolarDB: Una base de datos de código abierto basado en PostgreSQL
  • Tiempo de lectura:4 minutos de lectura
  • Categoría de la entrada:BBDD

PolarDB para PostgreSQL (PolarDB para abreviar) es un sistema de base de datos de código abierto basado en PostgreSQL que extiende PostgreSQL para convertirse en una base de datos distribuida sin compartir.

Admite la coherencia de datos global y ACID en todos los nodos de la base de datos, el procesamiento SQL distribuido, la redundancia de datos y la alta disponibilidad a través de la replicación basada en Paxos.

PolarDB está diseñado para agregar valores y nuevas características a PostgreSQL en dimensiones de alto rendimiento, escalabilidad, alta disponibilidad y elasticidad.

Al mismo tiempo, PolarDB sigue siendo compatible con SQL con PostgreSQL de un solo nodo.

PolarDB evolucionará y ofrecerá sus funciones y características en dos partes principales: Una extensión y un parche para Postgres.

La parte de extensión incluye componentes implementados fuera del kernel de PostgreSQL, como administración de transacciones distribuidas, servicio de tiempo distribuido o global, procesamiento SQL distribuido, metadatos adicionales y funciones internas y herramientas para administrar clústeres de bases de datos y realizar tolerancia a fallas o recuperación.

Al tener la mayoría de sus funciones en una extensión de Postgres, PolarDB tiene como objetivo una actualización sencilla, una migración sencilla y una adopción rápida.

La parte del parche incluye los cambios necesarios para el kernel, como MVCC distribuido para diferentes niveles de aislamiento. Las funciones y los códigos en la parte del parche sean limitados.

Como resultado, PolarDB se puede actualizar fácilmente con versiones más recientes de PostgreSQL y mantener una compatibilidad total con PostgreSQL.

Arquitectura y hoja de ruta

PolarDB utiliza una arquitectura de compartir nada. Cada nodo almacena datos y también ejecuta consultas y se coordinan entre sí a través del paso de mensajes. La arquitectura permite escalar la base de datos agregando más nodos al clúster.

PolarDB divide una tabla en fragmentos mediante el hash de su clave principal. El número de fragmentos se puede configurar. Los fragmentos se almacenan en los nodos PolarDB.

Cuando una consulta accede a fragmentos en varios nodos, se utilizan una transacción distribuida y un coordinador de transacciones para mantener ACID en todos los nodos.

Cada fragmento se replica en tres nodos y cada réplica se almacena en un nodo diferente. Para ahorrar costos, podemos implementar dos de las réplicas para almacenar datos completos.

La tercera réplica solo almacena el registro de escritura anticipada (WAL), que participa en la elección pero no puede ser elegido como líder.

Documentación

👉 VISITA EL PROYECTO DE POLARDB