A major new version of the open-source database, which will run natively on Windows and includes various enterprise features, is set for release this month
Version 8.0.0 of the open-source database PostgreSQL, which includes a native port for the Windows platform, is expected to be released before the end of December.
Simon Riggs, a developer and consultant for PostgreSQL, said this release contains various long-awaited features, which he claims will provide parity with commercial databases such as Oracle.
"It's PostgreSQL's coming of age," said Riggs. "This is the first point where it ticks all the boxes that enterprises are looking for."
Riggs said that the fact that PostgreSQL has been renamed to 8.0 is a sign of how significant this release is. Version seven of the database was released in June 2000.
The biggest benefit of PostgreSQL 8.0.0 is that for the first time it will run natively on Microsoft Windows servers, including NT4, 2000, XP and 2003. Older releases of Windows, including 95, 98 and ME are not supported as these operating systems do not have the infrastructure to support PostgreSQL, according to the 8.0.0 release notes.
In the past the only way of running PostgreSQL on Windows was by using the Unix emulator Cygwin, which reduced performance and limited the database's functionality.
Riggs said that adding the native Windows support has been a difficult job as the Windows platform is so different from the Unix platforms on which PostgreSQL already runs.
"It has been very problematic," said Riggs. "It is a major achievement to get it working. Something in the order of ten man years of development has gone into it--lots of people have been writing code and chasing down all the little idiosyncrasies of the platform."
Developers have also been busy creating a graphical installer to allow PostgreSQL to be easily installed on Windows. The pginstaller project, which is separate to the main PostgreSQL project, is expected to release a final version of its open-source Windows installer around the same time as the final version of database is released. Riggs said the two projects have been kept separate to allow vendors or other projects to package the core PostgreSQL code in different ways.
He expects that there will be at least one, fully supported, commercial version of PostgreSQL, although anyone can release a commercial version as long as they keep to the BSD license.
PostgreSQL 8.0.0 also includes various enterprise-level features such as point-in-time recovery, savepoints and tablespaces.
Riggs said that with the addition of point-in-time recovery PostgreSQL is the first open-source developed database to have full recovery features. The Ingres database, which was open sourced in June, has recovery capabilities, but these were not developed under the open-source methodology.
Point-in-time recovery allows a server to be continuously backed up, so that if a disk drive fails the database can be recovered from the point of failure. In the past PostgreSQL could only be restored a previous back-up or a standby replicated server.
Savepoints are useful for database developers who require error recovery within complex transactions, as it allows specific parts of a database transaction to be aborted without affecting the remainder of the transaction. In previous versions of PostgreSQL there was no way to recover from a statement failure within a transaction except by aborting the whole transaction.
The inclusion of tablespaces--which allow you to select which disks should be used to store the database, schema, table or indexes--makes larger PostgreSQL installations easier to administer, said Riggs.
"Postgres can be run on multiple CPUs and multiple disks," said Riggs. "With tablespaces you can spread a database across 100's of disks easily."
PostgreSQL developers have been working on version 8 since late 2003, according to Riggs. "It has been in development for more than eight months and in beta for nearly five months," said Riggs.
The fifth beta version of 8 was released at the end of November, but it will be kept in beta as long as bugs are reported, said Riggs. In the last month developers have been working hard on fixing bugs, tuning and testing the performance of the database.
"There is quite a lot of tuning going on," said Riggs. "In the last month at least three things have been changed that will make it run faster on multiple CPUs."
The Scalable Testing Platform, a testing system provided free of charge to open-source developers by Open Source Development Labs, has been invaluable in allowing PostgreSQL developers to do rigorous performance tests, according to Riggs.