We’re back with episode two of our new Builders podcast series. In this episode, host Gülçin Yildirim Jelinek, EDB Staff Engineer, and Tomas Vondra, EDB Senior Principal Engineer and PostgreSQL committer, discuss the challenges and adaptability of Postgres and the path for driving progress. They also highlight their favorite extensions and explore the different ways developers can contribute.
Listen to the full episode here.
Here are some of the highlights:
Tomas kicked off the conversation by mentioning that as a database with a 30-year history, PostgreSQL has many challenges to deal with. The hardware available now is completely different from years past, the number of developers working on the project has changed, and users’ expectations have evolved, and Postgres is adapting to all these changes.
Postgres benefits and challenges
One of the main advantages of Postgres is how flexible and extensible it is, which is ideal for system builders, but not necessarily for those expecting ready-made solutions. Moving forward, Postgres will need to bridge extensibility with ease of use, because while Postgres provides the building blocks and compatibility with external tools, some users want built-in tools they can use right away.
No matter how Postgres changes in the future, extensibility is integral to Postgres, because it enables people to use Postgres in completely different ways.
Backups are just one example of Postgres’ extensibility. Postgres allows you to do basic backups, but it doesn’t provide advanced backup features, so users turn to tools like Barman and pgBackRest. Tomas notes that there’s almost always an open source tool available that you can adjust, but if not, you can build your own.
Addressing tech challenges
When it comes to challenges, multi-threading is a hot topic of discussion. For years, PostgreSQL has relied on multi-process rather than multi-threaded architecture, and many users want to see Postgres become multi-threaded so that the whole server runs in a single efficient process with multiple threads. Tomas says he thinks this architectural switch is definitely doable, though it’ll need to happen in smaller steps over multiple releases.
Another modification that may be coming in the future is support for asynchronous and direct IO, allowing Postgres to take fuller advantage of modern storage systems. Adding this feature wouldn’t drastically change the external API of Postgres and how extensions work with Postgres.
How can new developers contribute to Postgres?
Tomas says developers are needed to build and implement features like multi-threading. He also acknowledges that today, it may be harder for new developers to get involved and become regular contributors to Postgres. Many of the simple improvements have already been made, which may make it difficult for contributors to find a good first patch, get useful feedback on their ideas, and get their patch committed. To give new developers a hand, Tomas is planning to offer a half-day workshop where he’ll cover what’s needed to start contributing to Postgres.
Joining a company that works on Postgres extensions can be another viable way for developers to contribute directly to Postgres, and even get paid for it. “Extensions in general allow innovation to happen much faster,” notes Tomas, “because you can deliver improvements to customers much more frequently and you can experience running faster. And based on that, you can improve contributions to Postgres significantly.”
Top Postgres extensions
Tomas mentions that some of his favorite Postgres extensions include Timescale, which handles use cases involving time series, event, and analytics data. Another valuable extension is PostGIS, for storing and managing geospatial data. PGVector is yet another popular extension, which allows you to seamlessly store, query and index vectors. PGRoonga is also on his list, which turns Postgres into a fast, full text search platform for all languages. And yet another extension is PostgREST, a standalone web server that transforms your PostgreSQL database directly into a RESTful API.
If people want to find extensions that are really popular or useful, Tomas suggests looking at extensions supported by database as a service companies, because these companies support tools that people need and want to use.
Thinking about contributing to Postgres?
If you’re thinking about doing your first patch and need some help, Tomas says feel free to get in touch, as he has tips and ideas to help new developers get started.
No matter what your level of Postgres expertise, we invite you to stay on top of Postgres evolution by tuning in to our Builders podcasts. To hear this full episode on Transcending Tech Challenges and Driving Postgres Progress, click here.