Blog

PostgreSQL

Lanzamiento de PostgreSQL 14 Beta 1

El Grupo Global de Desarrollo de PostgreSQL anuncia que ya puede descargarse la primera versión beta de PostgreSQL 14. Esta versión ofrece avances de todas las características que estarán disponibles en la versión final de PostgreSQL 14, aunque algunos detalles podrían cambiar antes del lanzamiento.

La información sobre todas las características y cambios introducidos en PostgreSQL 14 se encuentra en las notas de la versión:

https://www.postgresql.org/docs/14/release-14.html

De acuerdo con el espíritu de la comunidad de código abierto de PostgreSQL, recomendamos vivamente que prueben las nuevas características de PostgreSQL 14 en sus sistemas. Esto nos ayudará a eliminar errores u otros posibles problemas. Aunque no recomendamos ejecutar PostgreSQL 14 Beta 1 en un entorno de producción, les invitamos a encontrar formas de ejecutar esta versión beta con cargas de trabajo típicas de sus aplicaciones.

Sus pruebas y comentarios ayudarán a la comunidad a asegurar que PostgreSQL 14 cumpla con nuestros estándares de entrega de una versión estable y confiable de la base de datos relacional de código abierto más avanzada del mundo. Por favor, lean más sobre nuestro proceso de pruebas beta y cómo pueden contribuir:

https://www.postgresql.org/developer/beta/

Características destacadas de PostgreSQL 14

Rendimiento

PostgreSQL 14 confirma la tendencia de las últimas versiones al proporcionar beneficios de rendimiento para cargas de trabajo de todo tamaño.

Esta versión presenta mejoras significativas en el rendimiento de las transacciones para los sistemas PostgreSQL que cuentan con un gran número de conexiones a la base de datos, independientemente de si están activas o inactivas.

PostgreSQL 14 presenta también beneficios adicionales en la reducción de la sobrecarga de indexación en los índices B-tree, incluyendo la reducción del sobredimensionamiento de las tablas con índices actualizados frecuentemente. Los índices GiST pueden ahora pre ordenar los datos durante su proceso de compilación, permitiendo una creación de índices más rápida así como índices más pequeños. Los índices SP-GiST admiten ahora índices de cobertura que permiten a los usuarios añadir al índice columnas adicionales no consultables mediante la cláusula INCLUDE.

PostgreSQL 14 ofrece muchas mejoras en las consultas en paralelo. Además de las mejoras generales de rendimiento para los escaneos secuenciales paralelos, la cláusula RETURN QUERY en PL/pgSQL y la sentencia REFRESH MATERIALIZED VIEW pueden ahora realizar consultas en paralelo.

PostgreSQL 14 introduce también la posibilidad de aprovechar las consultas en paralelo en bases de datos remotas utilizando conectores de datos externos. El conector de datos externos de PostgreSQL (postgres_fdw) añade soporte para esta funcionalidad en PostgreSQL 14 cuando la opción async_capable ha sido definida. postgres_fdw admite también inserciones masivas de datos y puede importar particiones de tablas usando IMPORT FOREIGN SCHEMA. Además, ahora puede ejecutar TRUNCATE en tablas foráneas.

Esta versión incluye también varias mejoras en el sistema de particionamiento, que incluyen un aumento del rendimiento al actualizar o eliminar filas en tablas en las que únicamente unas pocas particiones resultan afectadas. En PostgreSQL 14, las particiones pueden ahora ser separadas, sin que ocurra un bloqueo, usando el comando ALTER TABLE ... DETACH PARTITION ... CONCURRENTLY.

El ordenamiento incremental, introducido en la versión anterior, ahora puede ser utilizado por las funciones de ventana deslizante en PostgreSQL 14. Esta nueva versión añade más capacidades a las estadísticas extendidas, que ahora pueden ser aplicadas a las expresiones.

Durante décadas, PostgreSQL ha soportado la compresión en sus columnas de «datos de gran tamaño» (el sistema TOAST). Sin embargo, con esta versión se añade la posibilidad de elegir el algoritmo LZ4 para la compresión de las columnas.

Tipos de datos + SQL

Basándose en el soporte existente para los tipos de rango, PostgreSQL 14 añade un nuevo tipo de rango múltiple que permite especificar una lista ordenada de rangos no contiguos, como por ejemplo:

SELECT datemultirange( daterange('2021-07-01', '2021-07-31'), daterange('2021-09-01', '2021-09-30'), daterange('2021-11-01', '2021-11-30'), daterange('2022-01-01', '2022-01-31'), daterange('2022-03-01', '2022-04-07') );

El nuevo tipo de rango múltiple soporta las operaciones existentes disponibles para los tipos de rango.

PostgreSQL 14 añade ahora un marco general de subíndices que permite recuperar información en objetos anidados. Por ejemplo, es posible recuperar información anidada en el tipo de datos JSONB utilizando una sintaxis de subíndices, como la siguiente:

SELECT ('{ "this": { "now": { "works": "in postgres 14!" }}}'::jsonb)['this']['now']['works'];

PostgreSQL 14 introduce también el soporte para parámetros OUT en procedimientos almacenados, y permite que la cláusula GROUP BY utilice la palabra clave DISTINCT para eliminar combinaciones duplicadas de GROUPING SET.

Para las expresiones recursivas de tablas comunes (consultas WITH), PostgreSQL 14 añade las conveniencias sintácticas de SEARCH y CYCLE que ayudan, respectivamente, a ordenar y detectar ciclos.

PostgreSQL cuenta también con la nueva función date_bin, que permite alinear los timestamps con intervalos específicos, una técnica conocida como «binning».

Administración

PostgreSQL 14 introduce numerosas mejoras en VACUUM, con optimizaciones orientadas a los índices. Autovacuum analiza ahora las tablas particionadas y puede propagar la información sobre la cantidad de filas a las tablas padre. Aumenta también el rendimiento de ANALYZE, que puede controlarse con el parámetro maintenance_io_concurrency.

PostgreSQL 14 incluye numerosas mejoras con respecto a la información que puede ser monitoreada, incluyendo la capacidad de seguir el proceso de COPY usando la vista pg_stat_progress_copy . Esta versión permite monitorear la actividad de WAL desde la vista pg_stat_wal, e inspeccionar las estadísticas de los slots de replicación desde la vista pg_stat_replication_slots.

Existen varios parámetros nuevos en PostgreSQL 14 que contribuyen a gestionar las conexiones. Estos incluyen idle_session_timeout, que puede terminar las conexiones inactivas tras el periodo especificado, y el parámetro client_connection_check_interval que permite a PostgreSQL anular las consultas de larga duración en caso de que un cliente se desconecte.

El comando REINDEX puede ahora procesar todos los índices hijos de una tabla particionada. Además, en PostgreSQL 14 se ha añadido la utilidad pg_amcheck que contribuye a detectar posibles datos corruptos.

Replicación y recuperación

PostgreSQL 14 añade numerosas ventajas de rendimiento para la replicación lógica, que incluyen la posibilidad de enviar las transacciones en curso a los suscriptores en lugar de esperar a que estas se completen. ALTER SUBSCRIPTION facilita la adición/eliminación de publicaciones mediante la nueva sintaxis ADD/DROP PUBLICATION.

Hay mejoras de rendimiento en PostgreSQL 14 en cuanto a la forma en la que PostgreSQL se reinicia al recuperarse tras una caída del sistema. Puede ahora utilizarse pg_rewind en una instancia de PostgreSQL en modo standby.

Seguridad

PostgreSQL 14 añade la posibilidad de otorgar a los usuarios privilegios universales de «sólo lectura» y «sólo escritura» en tablas/vistas/secuencias mediante el uso de los roles predefinidos pg_read_all_data y pg_write_all_data, respectivamente.

En esta versión también se utiliza por defecto SCRAM-SHA-256 para la gestión de contraseñas en las nuevas instancias de PostgreSQL. Además, el parámetro clientcert en el archivo pg_hba.conf deberá utilizar ahora los valores de verify-ca o verify-full en lugar de los valores heredados.

PostgreSQL 14 puede utilizar el «nombre distinguido» (DN) de un certificado para la autenticación basada en certificados con el parámetro clientname=DN en el archivo pg_hba.conf.

Características adicionales

Muchas otras nuevas características y mejoras han sido añadidas a PostgreSQL 14. Dependiendo del caso de uso, algunas de ellas pueden ser tan o más importantes que las mencionadas anteriormente. Para una lista completa de las características nuevas y de las modificadas, consulten las notas de la versión:

https://www.postgresql.org/docs/14/release-14.html

Pruebas de errores y compatibilidad

La estabilidad de cada versión de PostgreSQL depende en gran medida de que ustedes, la comunidad, prueben la próxima versión con sus cargas de trabajo y herramientas de prueba para detectar errores y regresiones antes del lanzamiento oficial de PostgreSQL 14. Dado que se trata de una versión beta, es posible que se produzcan pequeños cambios en los comportamientos de la base de datos, los detalles de las funciones y las API. Sus impresiones y pruebas ayudarán a determinar los ajustes finales de las nuevas funciones, así que les rogamos que la prueben lo antes posible. La calidad de las pruebas de los usuarios contribuirá a definir el momento en el que lanzaremos la versión final.

Una lista de los problemas abiertos está disponible al público en el wiki de PostgreSQL. Pueden reportar errores usando el siguiente formulario en el sitio web de PostgreSQL:

https://www.postgresql.org/account/submitbug/

Calendario de la versión beta

Este es el primer lanzamiento beta de la versión 14. El Proyecto PostgreSQL publicará betas adicionales, según se requiera, para pruebas. Serán seguidas por una o más versiones candidatas, hasta el lanzamiento de la versión definitiva a finales de 2021. Para más información, consulten la página de pruebas beta.

Enlaces

Haz clic aquí para leer la noticia original en inglés en la página web oficial de PostgreSQL.