The PostgreSQL 9.1 open source database is now generally available, offering users a long list of new features. The new PostgreSQL release follows a six month beta process, following the initial beta release in May.
PostrgreSQL 9.1 is noteworthy for a number of features, among them are some that no other database yet implements.
“The really exciting thing about the 9.1 release is the level of innovation,” PostgreSQL core team member Josh Berkus told InternetNews.com. “Through the last 12 years of PostgreSQL, I’m used to a lot of our release being feature catch-up with the leading proprietary databases – and there is very little in this release of that.”
Berkus added that most of PostgreSQL 9.1’s new features are instances where it is the first database, open or proprietary, to implement a feature. As an example, he cited Serializable Snapshot Isolation (SSI), a feature that keeps concurrent transactions consistent. Another example is the K-Nearest-Neighbor Indexing feature, which provides fast text-search queries.
The PostgreSQL 9.1 release also includes support for synchronous replication in the database.
“We managed to get the configuration for synchronous replication down to a really simple API,” Berkus said. “That’s a really good thing given that it’s a difficult concept and used mainly for disaster recovery.”
The new per column collation feature allows for what Berkus described as a truly multilingual database. Additionally, the PostgreSQL 9.1 release has an unlogged tables feature, which is something that can be thought of as in-memory tables. The benefit of the unlogged tables is to reduce logging overhead, which can help to improve performance.
From a security perspective, the PostgreSQL 9.1 release includes support for SE-Postgres, which is a security-enhanced version of the open source database.
While PostgreSQL 9.1 has been in beta for the last six months, Berkus noted that a surprising number of people have already deployed the beta for production use-cases.
“There are a scary number of people using one of the late betas or the release candidate in production,” Berkus said. “In the Postgres project one of our goals has been dependability, and it’s actually frightening to see people going ahead because they really need a feature and are deploying on the beta.”
Berkus added that many people aren’t used to the data durability that PostgreSQL provides. He noted that people have become used to databases that are less reliable.
“Our general attitude for a final production release is that if we know of anything that can cause you to lose any data, under any circumstances other than hardware failure, we consider that to be a show-stopper bug and we’ll delay the release,” Berkus said. “People aren’t used to that from other open source databases.”
Moving forward, the next PostgreSQL release (PostgreSQL 9.2) will likely be focused on additional performance improvements. Berkus also sees some longer-term efforts that are needed to further enhance PostgreSQL, including more work on replication and clustering.
“We’ve been able to stay competitive with clustered databases since they are not very reliable and performance per node is poor,” Berkus said. “They will get better, so we have to have an answer for that.”