PostgreSQL 9.2 fue liberado ayer

Ayer, abrí mi correo y para mi sorpresa, tuve la grata noticia de conocer la liberación oficial de PostgreSQL en su versión 9.2, de parte de Selena Deckelmann, una de las principales contribuidoras a este excelente sistema gestor de bases de datos (Te mencioné antes que éste es mi favorito? Usuario orgulloso desde la versión 8.0), la cual trae una gran cantidad de características nuevas, gran cantidad de mejoras con respecto al rendimiento y la replicación.

Con esta nueva liberación, PostgreSQL se ha convertido en una excelente opción para el desarrollo de plataformas web hosteadas en los servicios de Cloud como por ejemplo Amazon Web Services , que no ofrece directamente soporte para PostgreSQL en su servicio RDS(Relational Database Service) sino que hay que reservar una instance de Amazon EC2 para hacerlo. Hay otros que ofrecen un mejor servicio en torno a PostgreSQL pero eso lo hablaremos un poco más adelante. Ahora mismo, les dejaré una lista de las principales características y mejoras en esta nueva versión del gestor:

Soporte nativo para JSON y para tipo de Rangos


“Native JSON support in PostgreSQL provides an efficient mechanism for
creating and storing documents for web APIs. We use front-end
libraries like jQuery to request tabular and tree-structured data; and
the new features make it convenient and provide performance advantages
in retrieving that data as JSON, ” dijo Taras Mitran, Senior
Architect, IVC Inc.

El tipo de dato de rango permite a los desarrolladores a crear mejores aplicaciones de calendario
científicas, y financieras. Ningun otro gestor soporta este tipo de característica, lo cual brinda la
posibilidad de un manejo inteligente de bloques de tiempo y de números.

Index-only scans

Ésta es una característica un poco díficil de explicar pero haré mi mejor esfuerzo.
En PostgreSQL, los índices no contienen información de “visibilidad. Esto significa que cuando usted accede a un registro por su índice, PostgreSQL tiene que visitar la tupla real en la tabla para asegurarse que la misma es visible a tí: la tupla a la cual el índice está apuntando, a lo mejor puede ser una versión vieja del registro que usted está buscando (debido al mecanismo conocido como Multi Version Concurrency Control o MVCC como popurlamente se le llama).

Esto puede dar lugar un problema grande de rendimiento: el índice es mayormente ordenado, por lo que el acceso a sus registros es bastante eficiente, pero con los registros como tal al cual apunta dicho índice no pasa lo mismo; pueden estar regados en su estructura de almacenamiento (ésta es la razón por la cual PostgreSQL tiene un comando llamado CLUSTER, pero esa es otra historia).

En la versión 9.2, PostgreSQL usará un escaneo llamado Index-only ó sólo en el índice siempre y cuando sea posible: no teniendo que acceder al registro en sí, si no es necesario.

Esto hace entonces que el acceso a un determinado registro sea aún más ràpido lo que se traduce en un mejor rendimiento general de las consultas.

Mejoras en el rendimiento y en la replicación

Con la adición de un parche mágico desarrollado por Robert Haas, uno de los Database Architect de EnterpriseDB y miembro del Pg-hackers, con el cual PostgreSQL puede escalar linealmente a 64 núcleos, además de los index-only scans, y una increíble reducción en el consumo de uso de CPU; PostgreSQL 9.2 ha sido mejorado significativamente en términos de rendimiento, además de que provee una increíble flexibilidad al desarrollador, aún para las cargas de trabajo más demandantes.

Organizaciones como la U.S. Federal Aviation Administration e Instagram ejecutan aplicaciones sus aplicaciones usando PostgreSQL, y han felicitado al equipo de desarrollo por este increíble release, que seguirá ganado adeptos cada día.

Numéricamente, esto significa:

  • Más de 350,000 consultas de lectura por segundo (4 veces más rápido que en 9.1)
  • Index-only scans para consultas de almacenes de datos (de 2 a 20 veces más rápido que en 9.1)
  • Más de 14,000 operaciones de escritura por segundo (5 veces más rápido que en 9.1)

Además, la adición de la replicación en cascada brinda a los usuarios la posibilidad de ejecutar grandes infraestructuras de servidores escalados de forma horizontal bajo PostgreSQL 9.2.

PostgreSQL y la Nube

La adopción de PostgreSQL ha crecido en los últimos años y las plataformas de Cloud Computing han jugado un papel fundamental en este crecimiento. Existen excelente servicios que confían en PostgreSQL como son:

  • Heroku Postgres: este servicio comenzó en 2011 y se ha expandido hasta convertirse en una de las primeras opciones a valorar cuando se necesita un sistema robusto de gestión de bases de datos, seguro y listo para su uso. En sólo minutos, usted puede tener su base de datos lista para su uso, nada más, no tiene que hacer backups, no tiene que velar por la seguridad, nada de eso, todo ello viene incluído en el servicio, sólo piense en usarla, nada más, de lo otro se encarga el equipo de Heroku´s Postgres. Por supuesto, tienen diferentes planes plans para casi cualquier tipo de usuario, por lo que sólo se debe seleccionar el que más se adapte a las necesidades del usuario. El contacto principal es Matthew Soldo, quien es el Product Manager en Heroku para este servicio, o se puede ver la presentación en el último PgCon 2012 del Technical Lead para este servicio, Peter van Hardenberg y así aprender más de la plataforma.
  • Engine Yard: Ahora mismo en la EngineYard Cloud , PostgreSQL es la base de datos por defecto.
    “PostgreSQL 9.2 will ship with native JSON support, covering indexes,
    replication and performance improvements, and many more features. We
    are eagerly awaiting this release and will make it available in Early
    Access as soon as it’s released by the PostgreSQL community,”
    dijo
    Ines Sombra, Lead Data Engineer, en Engine Yard.
  • EnterpriseDB Cloud Database: EnterpriseDB puso un servicio del tipo Database-as-a-Service (DaaS), listo para funcionar con Amazon Web Services, OpenStack o los servicios de HP Cloud .

Por supuesto, acá es a modo de información, porque desde nuestro país, no tenemos acceso a estos servicios, pero siempre es bueno conocerlos, por si algún participamos en un proyecto donde sí se puedan usar, y podemos brindar nuestra humilde opinión.

Entonces qué esperas?

Bueno, no pierdas más tiempo y prueba el nuevo release en tu PC, laptop o lo que uses, y bríndanos tus comentarios acerca de la misma.Aquí les dejo el documento sobre lo nuevo en 9.2:

What’s new in PostgreSQL

Happy Hacking !!!