Se ha publicado la base de datos distribuida Citus 13.0

La compañía Citus Data, que pertenece a Microsoft, ha publicado la base de datos distribuida Citus 13.0, implementada como una extensión de PostgreSQL 17. Citus proporciona escalabilidad horizontal para PostgreSQL en clusters basados en hardware estándar y permite dispersar los datos a través de nodos mediante sharding, con la configuración de separación a nivel de columnas y esquemas de almacenamiento. Para las aplicaciones, el cluster Citus se presenta como un gran servidor PostgreSQL que combina los recursos de los nodos que lo componen. El código está escrito en lenguaje C y se distribuye bajo la licencia AGPLv3.

El sharding permite organizar el almacenamiento de volúmenes de datos muy grandes, cuyo tamaño total excede significativamente la capacidad de almacenamiento local de cada uno de los nodos del cluster. Las tablas individuales pueden replicarse forzosamente en todos los nodos para acelerar las operaciones de fusión y el trabajo con claves externas. Para ahorrar espacio en disco, los datos distribuidos en diferentes nodos pueden almacenarse de manera comprimida.

Las consultas distribuidas pueden enviarse a cualquiera de los nodos del cluster, pero la gestión y modificación del esquema de datos debe realizarse únicamente a través del nodo que coordina el funcionamiento del cluster. Las solicitudes de los clientes se distribuyen entre los nodos necesarios y, si abarcan múltiples nodos, su procesamiento se paraleliza. El cluster se puede expandir a medida que crece el tamaño de los datos almacenados, añadiendo nodos adicionales e iniciando el rebalanceo.

Como ejemplos típicos del uso de Citus se destacan la ejecución de consultas analíticas y el manejo de grandes volúmenes de datos en forma de series temporales (por ejemplo, logs o encuestas del estado de sensores). Citus también es adecuado para modernizar la infraestructura existente basada en un solo servidores PostgreSQL, cuya capacidad y rendimiento se han vuelto insuficientes debido a un aumento en la carga o en el volumen de datos entrantes. Con la herramienta Patroni, se pueden crear configuraciones tolerantes a fallos con nodos de respaldo replicados, capaces de ocupar el lugar de los nodos principales en caso de fallos.

Cambios en la versión Citus 13.0:

  • Transición al uso de la rama PostgreSQL 17.
  • La posibilidad de utilizar en consultas distribuidas la función JSON_TABLE() para convertir datos del formato JSON a una representación relacional, con la que se puede trabajar como con tablas normales de PostgreSQL.
  • Soporte para la sintaxis «MERGE … WHEN NOT MATCHED BY SOURCE».
  • Posibilidad de definir el método de acceso para tablas particionadas distribuidas mediante la expresión «CREATE TABLE … USING», así como modificar el método de acceso a través de «ALTER TABLE … SET ACCESS METHOD».
  • Se ha añadido soporte para la especificación de columnas de identificación generadas automáticamente en tablas particionadas distribuidas.
  • Se permite la aplicación de restricciones de exclusión en tablas particionadas distribuidas.
  • Se han solucionado problemas de sincronización de roles entre nodos.
  • Se ha mejorado la distribución de datos para el sharding al añadir nuevos nodos al clúster.
  • Se han añadido las opciones «MEMORY» y «SERIALIZE» al comando «EXPLAIN», que permiten determinar el tamaño de la memoria utilizada y el tiempo empleado en la conversión de datos para su transmisión a través de la red.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster