v10, The Best PostgreSQL Yet?
The short answer … Hell Yeah!
The long answer lies in extensive improvements and the impressive new feature list that makes up this major release – which, by the way, changes the version scheme of PostgreSQL as well (more details on that here). This wiki page lists out, in detail, all the new features in PostgreSQL 10, but for the purpose of this blog, I will focus on some of the exciting features contributed by 2ndQuadrant.
Year over year, 2ndQuadrant, as an organization, has been a thought leader in open source PostgreSQL development. This release is no different – we were able to get lots of code committed for the release, both in terms of new features and bug fixes.
Logical Replication
This is possibly the most talked-about feature in PostgreSQL 10 and also a big reason for the version number jumping from 9.x to 10. The feature acceptance comes after multiple years of persistent efforts from Petr Jelinek, which was later championed by Peter Eisentraut as well.
Logical replication allows more flexibility than physical replication, including replication between different major versions of PostgreSQL and selective-table replication. As part of this feature, we also contributed the ability to create temporary replication slots, that are automatically removed on session exit or error.
Multi-Column Statistics
Another very exciting feature 2ndQuadrant contributed to PostgreSQL 10 is the ability to add multi-column optimizer statistics to compute the correlation ratio and number of distinct values. This addition is yet again the result of a multi-year effort, this time by Tomas Vondra. He was later assisted by David Rowley and Álvaro Herrera, who helped with reviews and code structure rework to get the feature into final shape for the release.
The feature is helpful in estimating query memory usage and combining the statistics from individual columns. It adds the following new commands: CREATE STATISTICS, ALTER STATISTICS, and DROP STATISTICS.
But that’s not all …
Other major enhancements contributed by 2ndQuadrant include:
-
- IDENTITY columns and Sequence improvements [Peter Eisentraut]
-
- ICU support for better national language support [Peter Eisentraut]
-
- BRIN index improvements [Álvaro Herrera]
-
- Reduced locking for changing column parameters [Simon Riggs, Fabrízio Mello]
-
- Improvements in JSONB and XML handling [Álvaro Herrera, Andrew Dunstan, Pavel Stehule]
-
- Improvements to Money datatypes [Peter Eisentraut]
-
- Improvements to server startup/shutdown (pg_ctl) [Peter Eisentraut]
-
- Parallel backup with pg_dump from a standby server [Petr Jelinek]
-
- VACUUM speed enhancements [Álvaro Herrera, Claudio Freire]
-
- Replication speed enhancements [Simon Riggs, David Rowley]
- New test infrastructure for Replication & Recovery [Craig Ringer]
Needless to say, the above does not contain the extensive list of minor enhancements and numerous bug fixes that our team also contributed.. A full list of 2ndQuadrant contributions can be found here.
Now, the above may seem boastful, but I say it with a certain degree of pride. The culture at 2ndQuadrant has been developed to encourage community contributions and to promote open source. We are humbled to be able to play such a big role in what is pretty much the most vibrant and dynamic open source community out there. I know I say this for all my colleagues – we are proud to be associated with the PostgreSQL community.
Thanks a lot for your contributions! Looking forward to use it for the RocketGit (https://rocketgit.com) project (using v9 now)!