El 24 de septiembre, el equipo de desarrolladores anunció el lanzamiento de la nueva versión de Postgresql, la número 13. En esta nueva entrega, se ha puesto un enfoque particular en mejorar el rendimiento, acelerar los servicios internos de mantenimiento y simplificar la monitorización de la base de datos, así como en un control de acceso más confiable al sistema.
Se continuó el trabajo en la optimización del índice de tablas en cuanto al tratamiento de duplicados entre los datos indexables en los árboles binarios de índices, lo que no solo ha acelerado la ejecución de las consultas, sino que también ha reducido el espacio en disco que ocupa el índice.
Además, se añadió un algoritmo de ordenación incremental, el cual permite que la reordenación de los datos ya ordenados en pasos anteriores se realice más rápidamente, y se puede lograr un mayor rendimiento en algunas consultas gracias a la aplicación de una nueva estadística avanzada (a través del comando CREATE STATISTICS) al calcular un plan de pasos más eficaz.
Asimismo, se ha optimizado la ejecución de consultas con agregación de datos costosa mediante un uso más generalizado de la agregación hash y la descarga de parte de los datos agregados en disco si no caben en la memoria RAM. Se ha observado un aumento significativo en la velocidad de las uniones de tablas que se encuentran en diferentes particiones.
Se ha llevado a cabo un considerable trabajo también en la simplificación del mantenimiento y la administración de bases de datos Postgresql. La tarea incorporada de 'vacuumming', que implica el uso del espacio en disco liberado tras la eliminación o reescritura de filas, ahora se puede ejecutar en hilos paralelos, lo que permite al administrador especificar su número. Además, se han añadido nuevas herramientas para monitorear la actividad actual de la base y se han prevenido errores en la sincronización de los logs de escritura previa entre el maestro y las réplicas, que podían haber llevado a conflictos al desconectar réplicas o comprometer la integridad de la base de datos distribuida después de su recuperación a partir de los datos del log.
Entre las novedades para desarrolladores se destaca la función datetime(), que convierte varios formatos estándar de registro de tiempo en el tipo incorporado de Postgresql; la función de generación de UUID v4 gen_random_uuid() disponible de forma predeterminada; la normalización del trabajo con Unicode; un sistema más flexible para la distribución de datos de tablas en nodos de red vinculados, con replicación completa a nivel lógico, así como otros cambios en las consultas y nuevos disparadores disponibles para réplicas.
El control de acceso a la base de datos se presenta como uno de los componentes clave del sistema, y en esta nueva versión se han dado grandes pasos en este aspecto. Ahora, solo un usuario privilegiado (superusuario) puede instalar extensiones a la base. Los usuarios normales solo podrán instalar aquellas extensiones que hayan sido marcadas por ellos como seguras, o un pequeño conjunto de extensiones que se consideran seguras por defecto (como pgcrypto, tablefunc o hstore). Al autenticar a los usuarios mediante el mecanismo SCRAM (al utilizar el controlador libpq), ahora se requiere la "vinculación del canal", y la función envoltura para datos externos postgres_fdw con la versión 13 admite la autorización mediante certificados.
Fuente: linux.org.ru
