- Evolucionó lentamente durante 25 años, sin financiamiento de VC ni equipo de DevRel
- Ingres (UC Berkeley, 1970~1985) —> Postgres95 —> PostgreSQL
- Su primer lenguaje ni siquiera fue SQL, sino QUEL. El soporte para SQL se agregó en 1995, cuando se lanzó Postgres95
- En 1996 se lanzó PostgreSQL 6.0, se formó el equipo de desarrollo y salió del ámbito académico
- A partir del 2000, Postgres empezó a crecer al incorporar varias funcionalidades
- Write-Ahead-Log (WAL), Outer JOIN, TOAST, Drop column, IPv6,..
- Para 2005 ya estaba más maduro y empezó a ser visto como una base de datos bastante estable
- Soporte transaccional robusto, soporte amplio de SQL, y mejoras en Write-Ahead-Log (WAL) y VACUUM
- Creación concurrente de índices, servidores Warm standby, tipos de datos Arrays/UUID/ENUM/XML, commit en dos fases, etc.
- Desde Postgres 8.4 en 2009 se empezaron a soportar funciones de ventana y CTE
- Desde esa época, Postgres empezó a influir en un ecosistema de datos mucho más amplio
- Gracias a su base de código sólida y su licencia, muchas empresas adoptaron Postgres y comenzaron a hacer forks
- Hoy casi no quedan esos forks: Aster Data fue adquirida por Teradata, Truviso por Cisco, Netezza por IBM...
- Aunque surgieron muchas versiones fork, Postgres siguió avanzando
- Postgres empezó a volverse cool con los lanzamientos de Postgres 9.0 y 9.1 en 2010
- soporte de listen/notify (pub-sub sobre la base de datos)
- hstore (tipo de dato clave/valor)
- upgrades sencillos mediante pg_upgrade
- con la llegada de los índices GIN/GiST, fue más allá del índice B-Tree estándar
- Las extensiones siempre fueron parte de Postgres, pero gracias a una refactorización se volvieron mucho más fáciles de usar
- Se desarrollaron foreign data wrappers para conectar distintas bases de datos Postgres
- En 2012 llegó JSON
- auge de las bases de datos NoSQL (Mongo & Couchbase)
- los desarrolladores empezaron a querer otras formas de usar sus datos
- al principio se soportó como una solución improvisada y recién dos años después llegó un soporte de verdad, pero fue suficiente para captar la atención de la gente
- con el auge de Heroku, Postgres fue elegido como base de datos predeterminada
- Desde Postgres 9.4 en 2014 comenzó el soporte real de JSON a través del tipo de dato JSONB
- al ser una representación binaria de JSON, se podía indexar fácilmente con índices GIN
- JSONB sigue siendo uno de los tipos de datos que más sorprende a la gente cuando lo escucha
- Logical decoding sentó las bases para facilitar CDC (captura de cambios de datos) durante los años siguientes
- Cerca de la versión 9.3, Amazon anunció en Re:Invent el soporte de PostgreSQL en RDS
- el autor ha asistido varias veces a Re:Invent, y dice que esta fue la única presentación que recibió una ovación de pie del público
- En 2016, con las versiones 9.5, 9.6 y 10
- se introdujeron Row Level Security, Logical Replication, Table Partitioning y más
- estas funcionalidades fueron aportes de contribuidores individuales
- Entonces, ¿cuándo?
- en su opinión, sin la combinación de Heroku y JSON, los hyperscalers no habrían añadido soporte
- pero sin un ciclo de releases constante y mejoras continuas de rendimiento y funcionalidades con foco en la calidad, no habría existido la oportunidad
11 comentarios
Oh, el Pub/Sub sobre la BD es interesante.
¡Binggrae janggrae, Postgres!
Pero supabase es más cool.
Por favor, permitan cambiar la posición de las columnas.
Reporte de error tipográfico: licencia por culpa de un error tipográfico -> licencia gracias a
¡Está genial! ¡Claro que sí!
Incluso da la impresión de ser un caso de manual de OSS que genera un círculo virtuoso.
Como LK-99, ese romanticismo que viene de una construcción acumulada durante décadas...
Pura vibra romántica, aprobado....
¡Vamos, Postgres!
Eres genial, Postgres