On May 18, Greenplum Database community members merged PostgreSQL 9.1 into the Greenplum master branch. That concludes a significant effort which spawned over the past few months and is part of the ongoing effort to get Greenplum to match the current PostgreSQL release. Every new PostgreSQL release brings a great number of new features - merging newer PostgreSQL versions into Greenplum helps us in building a better product, and leveraging the features which are available in the upstream project.
As part of the merge, Greenplum gained a good number of new features, most notably:
- Unlogged tables (the table is written to disk, but not the transaction log - this saves I/O and bandwidth): useful for staging tables which do not need to be stored permanently
- SECURITY LABEL: this lays the foundation for external security providers
- Collations allow different text sort orders and character classifications, and can now be applied on a per-column basis
- GROUP BY can now use columns from underlying tables, without specifying them in the SELECT column list
- Column-level permissions: no more views required in order to control access to specific columns
- Expanded psql support: The psql utility can now work with any Greenplum Database version, it’s no longer required to use the one from the currently running version
- Major overhaul of client and server certificates: both sides can now be authenticated, a must have for security aware users
- Mirrors now use the WAL-based replication from PostgreSQL: the previous file-based replication was removed - In theory this allows multiple mirrors and synchronous mirrors
To give you an impression of the number of changes: the commit changed close to 3,000 files, added more than 200,000 new entries, and also deleted 65,000 entries from the code base.
This merge was a multi-team effort from different teams: Catalog & Storage, Query Processing, Greenplum running on Kubernetes, and, last but not least, the Postgres team. 19 developers from both inside Pivotal as well as outside contributors made this possible.
The next Greenplum major release will be based on this merge, although we might merge more PostgreSQL versions before releasing v6.0. This work delivers a product which further differentiates Greenplum from other players in the market. Being open source allows us to develop and adapt in rapid steps, and incorporate new features and bug fixes at any time.
More details about the code merge are available on GitHub.