PostgreSQL 9.1 Released
/*
Among the many new features, here's a snippet from the News page:
*/
Advancing the State of the Art
Our community of contributors innovates with cutting-edge features. Version 9.1 includes several which are new to the database industry, such as:
K-Nearest-Neighbor Indexing: index on "distance" for faster location and text-search queries
Serializable Snapshot Isolation: keeps concurrent transactions consistent without blocking, using "true serializability"
Writeable Common Table Expressions: execute complex multi-stage data updates in a single query
Security-Enhanced Postgres: deploy military-grade security and Mandatory Access Control
/*
The SE-Postgres looks to be particularly interesting. It allows you to use SELinux Mandatory Access Controls on the PostgreSQL users and data. Neat. Particularly the SECURITY LABEL.
*/
/*
Beware, however, that there are some incompatibilities with previous releases!
From the 9.1 Release Notes:
*/
Change the default value of standard_conforming_strings to on (Robert Haas)
By default, backslashes are now ordinary characters in string literals, not escape characters. This change removes a long-standing incompatibility with the SQL standard. escape_string_warning has produced warnings about this usage for years. E'' strings are the proper way to embed backslash escapes in strings and are unaffected by this change.
/*
Also from the Release Notes, it mentions the addition of synchronous replication.
*/
PostgreSQL streaming replication is asynchronous by default. If the primary server crashes then some transactions that were committed may not have been replicated to the standby server, causing data loss. The amount of data loss is proportional to the replication delay at the time of failover.
Synchronous replication offers the ability to confirm that all changes made by a transaction have been transferred to one synchronous standby server. This extends the standard level of durability offered by a transaction commit. This level of protection is referred to as 2-safe replication in computer science theory.
When requesting synchronous replication, each commit of a write transaction will wait until confirmation is received that the commit has been written to the transaction log on disk of both the primary and standby server. The only possibility that data can be lost is if both the primary and the standby suffer crashes at the same time. [...] ...it also necessarily increases the response time for the requesting transaction. The minimum wait time is the roundtrip time between primary to standby.
/*
There's also a What's New in PostgreSQL 9.1 wiki page that explains much of these new features in detail.
*/