Database company Continuent announced the availability of its "Tungsten stack" earlier today. These programs are meant to improve the replication capabilities of the open-source MySQL database, with an eye toward other database products in the near future. Tungsten is apparently written in Java, allowing it to run on a variety of platforms, including Windows, Linux, and the Macintosh.
According to the press release, the Tungsten software provides master-slave replication, in which one database server is designated as the "master," and is where new database rows are inserted, and existing ones are either updated or deleted. Other database servers are marked as "slaves," receiving updates from the master and making it possible to send queries to a number of servers. This architecture makes it possible to distribute queries across a number of servers, reducing the load on each one and allowing organizations to scale up relatively easily. The press release indicates that Tungsten goes beyond this, allowing for a slave to be promoted in case the master fails. The technical approach used by Continuent was described by their CTO, Robert Hodges, at the MySQL conference earlier this year.
Replication and clustering have long been weak spots for users of MySQL and PostgreSQL. There are a number of solutions, but none have ever been easy to deploy. One notable exception is EnterpriseDB, whose commercial products offer a packaged clustering solution for PostgreSQL, also using a master-slave approach. Continuent's solution is based on a stack of software products, including a Java proxy that listens to the network communication between database clients and servers, checking and distributing the messages to additional servers as necessary.
Much of Continuent's software is available as open source, meaning that organizations interested in experimenting with database replication can do so right away. Continuent says that they plan to improve Tungsten over time, such that it will support not only master-slave replication, but multi-master replication, with (as the name implies) multiple master servers, each of which can accept read and write requests, and which synchronize data among themselves.