With funding help from the European Union's Seventh Framework Programme, Fontaine worked to come up with a solution for extensions.
“PostgreSQL code extensibility is awesome and has been put to great use already, but it lacked support for DBAs and daily operations,” he said. “Mainly when you install an extension before 9.1, its install script is found as-is in the dump script which means you have to prepare the exact same version already half-installed on the database where you want to restore your dump.”
With extensions in core, all the dump contains is a single dedicated SQL utility command, and DBAs can restore a database on a newer system with a newer version of the extension if it is compatible.
Tables unlogged for more speed
Robert Haas, database architect at commercial PostgreSQL software company EnterpriseDB and major contributor to the PostgreSQL project, is working on unlogged tables, which, he says, are useful in cases where an organisation is willing to trade the possibility of losing data in the case of a crash for more speed.
“For example, if you are writing a Web application, you might make the user-sessions table unlogged,” he said. “If the database crashes, everyone will have to log back in, but that shouldn't happen often enough to be a serious inconvenience.”
Haas was originally interested in implementing global temporary tables — a table where each session sees separate table contents, but the schema is shared among all sessions.
“In the process of thinking about that, the idea of unlogged tables occurred to me and seemed like it would be independently useful and simpler to implement,” he said.
Haas wanted to include the new feature in 9.1, but ran out of time.
“Unlogged tables are also useful for people who are using PostgreSQL for ETL or other batch-processing operations,” he said. “If the database crashes midway through the batch it can be restarted, so the powerful durability guarantees that PostgreSQL normally offers are not necessary in this case, and unlogged tables provide a way of relaxing those guarantees in a controlled way, without risking undetectable data corruption.”
Haas said the performance gain from avoiding write-ahead logging in these cases can be substantial.
The final release of PostgreSQL 9.1 is due around August 2011.
Follow Rodney Gedda on Twitter: @rodneygedda
Follow TechWorld Australia on Twitter: @Techworld_AU