The event, now in its 13th year, took place from 28 to 31 May, and included core members of the PostgreSQL community sharing their knowledge and expertise with users and developers.
As in previous years, the conference was organised with the first 2 days set aside for tutorials and the last 2 days for talks, with the unconference also slotted in the 2nd day.
As has become the tradition in recent years, the most sought-after event was the unconference, where participants propose topics for discussion and brainstorming, putting up to a vote which ones will be covered (my colleague Gary Evans wrote an excellent post about unconferences and his participation in last year's).
People were invited to write topics for discussion — it could be any development-related idea — on big sheets of paper, and then asked to vote on each of the other participants' topics. The 12 most voted ideas were then discussed, with 3 rooms allocated to host 4 topics each. Attendees could jump into different rooms to go through/share ideas.
I joined in and participated in a few of the ensuing discussions:
- Direct I/O and Asynchronous I/O
We discussed how to support these data transfer methods, the current issues related to fsync() and how to handle them.
- SLRU to Buffer Cache without on-disk changes
There were updates proposed by AWS team members to improve performance by eliminating fixed sized caches primarily. The discussion on this topic is still ongoing in the community.
- WAL Archiving extensions
This year I had the opportunity to talk about pluggable table access methods, a topic being championed by one of my colleagues at Fujitsu, Haribabu Kommi, since way back in 2017.
My presentation included an overview of pluggable storages interface, the changes required in PostgreSQL core, current and potential implementations, and further development allowing more possibilities over pluggable storage. If you are interested to dive in for more details, my talk can be found here.
Several interesting and informative talks took place this year as usual, some of them were:
- Graph Databases (by Peter Eisentraut)
There are specifications in progress for graph processing, and PostgreSQL is working towards the same. There are specific implementation of databases to handle graphs. The community aims to follow the syntax as close as possible to SQL and follow the specifications to ensure that we can comply with them.
- Transaction Logging (by Thomas Munro)
The discussion was about transactions in general and upcoming features in PostgreSQL that will help improvement in this space.
The pluggable API framework (worked by Fujitsu/FAST) was referred providing access method plug-ability in PostgreSQL. And thereon it was oriented towards undo logs, which are worked upon by zHeap.
- Deep Postgres Extensions in Rust (by Jeff Davis)
This centered on how to create an extension in Rust language, and not just in C. The rust-postgres library already exists, and postgres-extension.rs can be used to develop the next set of complex Rust-based extensions.
- Pluggable Table Storage in PostgreSQL (by Andres Freund)
It was discussed how Postgres enabling Pluggable Access method framework can be used to develop newer table access methods, so that users are not restricted to Heap.
- NoSQL Postgres — JSONPath, a query language for JSON (by Alexander Korotkov and Oleg Bartunov)
The presenter talked about JSONPath query improvements in PostgreSQL 12, and shared examples on how it has actually been improving over past releases. There were comparisons made and showcased where JSONPath implementation in Postgres is bridging the gaps between NoSQL databases like MongoDB.
- The Future of Postgres Sharding (by Bruce Momjian)
The talk provided a high level view of vertical and horizontal sharding, showing why sharding is necessary and how it can be achieved in PostgreSQL. The core idea is to update foreign data wrappers to distribute the load among various servers.
- Standby in Production (by Konstantin Evteev)
We learned how Avito, the 2nd largest classified site in the world, is managing standby servers to handle their 100 PostgreSQL nodes containing 20+ TB of data. It was a very good use case demonstrating that PostgreSQL can be used in very large deployments.
- Incremental View Maintenance on PostgreSQL (by Yugo Nagata)
The presenter showed how they are implementing Incremental View Maintenance in PostgreSQL and how the solution works, with examples being provided.
After all these presentations by so many respected Postgres experts and esteemed contributors, it was time to sit down and have some well-deserved dinner, where we continued conversations about the exciting road ahead for PostgreSQL.