PostgreSql 18. ¡La nueva versión!

¡Ya está aquí PostgreSQL 18! Hace solo unos días salió la nueva versión y viene cargada con mejoras que pintan bastante bien para el futuro de nuestras bases de datos y aplicaciones. Trae novedades interesantes respecto a versiones anteriores, así que vale la pena echarle un ojo a este pequeño resumen de estas novedades.

Novedades y mejoras en PostgreSQL 18

Cambios en la arquitectura de procesos

Se han incorporado unos nuevos procesos denominados worker io (AIO). Estos procesos gestionan las operaciones de lectura de forma asincrónica, descargando las tareas de E/S de los procesos backend habituales, que mejoran el rendimiento de E/S para:

Nuevos procesos de IO Worker
Imagen: Nuevos procesos de IO Worker
  • Reducir tiempos de espera de E/S: Evita bloqueos iniciando operaciones antes de que los datos sean necesarios.
  • Superponer E/S con trabajo útil: Permite que el backend continúe procesando otras operaciones  mientras se realiza la E/S.
  • Soporte para E/S directa (DIO): Omite la caché del kernel, reduce uso de CPU y mejora latencia. Al permitir realizar operaciones de E/S directamente entre la aplicación y el dispositivo de almacenamiento. 

Hasta ahora el comportamiento por defecto era que los procesos de backend cuando emiten una llamada de E/S, la base de datos queda a la espera de la respuesta del sistema operativo o del disco, antes de realizar otra operación (método sync). Con esta mejora se intenta mitigar o reducir estos tiempos de espera (método worker).

Parámetros relacionados: 

  • io_method (sync, worker, io_uring)  para controlar este comportamiento. 
  • io_workers para especificar el número de procesos io workers 
  • pg_aios, vista para observar las operaciones en tiempo real.

Mejoras para desarrolladores

Ahora se pueden crear columnas virtuales que permiten calcular valores en momento de ejecución sin tener que almacenar dicho valor en la tabla.

CREATE TABLE pedidos (    
    id SERIAL PRIMARY KEY,    
    coste DECIMAL(10,2),    
    iva DECIMAL(5,4) DEFAULT 1.2100,    
    — Columna virtual por defecto    
    total DECIMAL(10,2) GENERATED ALWAYS AS (coste * iva))
);

Mejoras en la cláusula RETURNING para permitir un acceso más flexible a valores antiguos y nuevos en operaciones DML, lo que facilita el seguimiento de los cambios.

UPDATE pedidos
SET coste = 25
WHERE id = 1
RETURNING
    OLD.coste as coste_anterior,
    NEW.email as coste_nuevo;

Mejoras en la seguridad

  • La autenticación con contraseña MD5 ha quedado obsoleta y se ha sustituido por el método SCRAM-SHA-256, más seguro. El método MD5 seguirá funcionando (por compatibilidad), pero se espera que se elimine en la próxima major version
  • Por defecto se añade la opción initdb –data-checksums durante la inicialización del cluster, que permite de forma predeterminada mejorar la validación de datos.
    Sin embargo se puede desactivar esta verificación con la opción –no-data-checksums, que puede ser útil en las operaciones con pg_upgade (podría fallar si la opción no está habilitada en ambos cluster)
  • Se añade soporte al tipo OAuth authentication en el pg_hba.conf, lo que le permite conectarse a su base de datos utilizando tokens de proveedores de identidad como Google, Auth0 o el sistema SSO de su empresa en lugar de administrar las contraseñas de la base de datos.
    No obstante, la compatibilidad con OAuth debe estar habilitada cuando se compila PostgreSQL
# Ejemplo de entrada en el pg_hba.conf
host  myapp  all  0.0.0.0/0  oauth  issuer=https://provider.com  scope=»openid»  map=oauth_map

Otras mejoras

pg_upgrade:

  • Ahora se pueden mantener las estadísticas del planificador durante el proceso de upgrade, evitando tener que realizar nuevamente todo el proceso de ANALYZE.
  • Se añade la nueva funcionalidad –swap, que permite mover los archivos y directorios del antiguo DATA  al nuevo. Aunque con este método una vez se inicia la transferencia de archivos, el clúster antiguo sufrirá modificaciones destructivas y, por lo tanto, ya no será seguro iniciarlo.

Parámetros:

  • log_line_prefix. Se añade la opción %L que permite generar la dirección IP del cliente

Conclusiones

PostgreSQL 18 sigue evolucionando en el motor de base de datos, con mejoras que no solo apuntan a optimizar el rendimiento, sino también a facilitar el trabajo de desarrolladores y administradores. En conjunto, PostgreSQL 18 no solo mejora lo que ya funcionaba bien, sino que abre nuevas posibilidades para construir sistemas más rápidos, seguros y mantenibles.

Incorpora soporte profesional en PostgreSQL para optimizar los procesos en tu empresa: Conocer más

Referencias: 

Share on:

Categories

Latest posts

¿Tus apps corren bien en desarrollo pero fallan al desplegarlas? ¿El onboarding tarda días y cada actualización rompe una dependencia? [...]

Las empresas necesitan adoptar soluciones tecnológicas rápidamente, pero sin descuidar la seguridad de su infraestructura ni los requisitos de cumplimiento [...]

Gemelos digitales
Los gemelos digitales (digital twins) son representaciones virtuales detalladas de objetos, sistemas o procesos físicos que recrean su comportamiento en [...]
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.