Hace pocas semanas se publicó la última versión de este magnífico motor RDBMS. Como es habitual cada nueva versión trae consigo nuevas funcionalidades y mejoras sobre las versiones anteriores. Vamos a comentar algunas de estas novedades.
Novedades y mejoras en PostgreSQL 17
Backup incrementales
Funcionalidad muy esperada, sobre todo en grandes entornos que los backups pueden llevarnos mucho tiempo y gran consumo de recursos, como cpu, espacio en disco, ancho de banda de nuestra red.
Se ha incorporado una nueva opción en la funcionalidad pg_basebackup ( -i, –incremental=OLDMANIFEST) que realiza captura solo los datos que se han modificado desde la última copia de seguridad completa o incremental.
Para que esto sea posible, se ha añadido un nuevo proceso de background (llamado walsummarizer) controlado por el parámetro summarize_wal
Para restaurar una copia de seguridad a partir de varias copias se ha añadido la funcionalidad pg_combinebackup, que recombina el backup full y las copias incrementales.
Replicación lógica
En esta nueva versión se han añadido varias mejoras en la replicación lógica desde el punto de vista de la alta disponibilidad y upgrades.
- Se ha añadido un nuevo binario “pg_createsubscriber” que nos permite convertir una réplica física en una réplica lógica. Esto nos evita tener que hacer la copia inicial de los datos. Lo cual es muy útil en bases de datos grandes.
- Control del failover. En un entorno de alta disponibilidad, esta función permite que la replicación lógica continúe operando incluso en caso de un failover. Anteriormente, cuando ocurría un failover, los replication slots asociados a nuestras bases de datos standby se eliminaban. Con esta nueva funcionalidad, dichos slots se conservan, garantizando una replicación más robusta y estable.
- Retención de los replication slots durante el upgrade major version. Ahora cuando se lanza un pg_upgrade se mantienen los replication slots entre los publicadores y los suscriptores. Antes durante el proceso de un major upgrade se tenía que reconstruir la réplica.
Mejoras en el rendimiento
- PostgreSQL 17 introduce una nueva estructura de memoria interna para vacuum que consume hasta 20 veces menos memoria. Esto mejora la velocidad de vacuum y reduce el uso de recursos compartidos, ofreciendo una mayor cantidad de memoria disponible para las cargas de trabajo.
- Se mejora el rendimiento de las querys tipo common table expression (CTE) al propagar las estadísticas y el orden de clasificación de las columnas a las que se hace referencia en cláusulas de salida de filas anteriores. Lo que permite que el optimizador mejore los planes de ejecución.
- Mejoras en el soporte de compresión de WAL, lo que permite compresión una compresión más eficiente de los archivos de WAL, reduciendo el espacio en disco y los tiempos de transferencia en réplicas.
- Se ha mejorado la velocidad de exportación del comando “COPY” y se ha añadido el comando ON_ERROR, que garantiza que la importación continúe aunque se produzca un error en la carga de algunos datos.
Otras mejoras
- Se han incorporado nuevas funcionalidades para JSON, ya que los usuarios ahora pueden consultar tipos de datos JSON utilizando comandos SQL estándar, que transforma los datos JSON en una estructura tabular.
- Se han introducido mejoras en el comando MERGE que permiten ahora modificar vistas actualizables y se ha incorporado la cláusula RETURNING, que permite un seguimiento más detallado de los datos modificados.
- El comando EXPLAIN ha añadido información sobre el consumo de memoria y tiempo durante la entrada y la salida. Con la ayuda de las opciones SERIALIZE y MEMORY es posible recuperar información exacta sobre el tiempo y la memoria utilizados para la modificación de datos para su posterior transmisión;
- Se ha añadido una vista de sistema pg_wait_events que almacena los diferentes tipos de eventos de esperas, que es muy útil para añadir una descripción a los eventos de esperas reportados por la vista pg_stat_activity
Conclusiones
En esta nueva versión vemos que la comunidad sigue apostando por seguir añadiendo funcionalidades demandadas como la capacidad de los backup incrementales. Sigue mejorando en la replicación lógica, el rendimiento y otras características que hace que cada vez más PostgreSQL 17 sea más potente y robusto. Las mejoras son especialmente útiles para organizaciones que requieren escalabilidad, seguridad avanzada y flexibilidad para gestionar grandes volúmenes de datos y configuraciones en entornos híbridos o en la nube.