Slony-I is a "master to multiple slaves" replication system for PostgreSQL supporting cascading (e.g. - a node can feed another node which feeds another node...) and failover.

The big picture for the development of Slony-I is that it is a master-slave replication system that includes all features and capabilities needed to replicate large databases to a reasonably limited number of slave systems.

Slony-I is a system designed for use at data centers and backup sites, where the normal mode of operation is that all nodes are available.

A fairly extensive "admin guide" comprising material in the Git tree may be found here. There is also a local copy.

The original design document is available here.

PostgreSQL 9.0 includes streaming replication, which, for a number of use cases, is likely to be simpler and more convenient than Slony-I.

There are, however, three characteristic kinds of cases where you'll need something like Slony-I, where the built-in WAL-based replication won't work:

  • You need to interact between PostgreSQL versions. Slony (and similar systems like Londiste and Bucardo) can cope with having nodes running different versions of PostgreSQL.

    WAL-based replication requires that all databases use identical versions of PostgreSQL, running on identical architectures.

  • You only want to replicate parts of the changes that are going on.

    WAL-based replication duplicates absolutely everything.

  • You need for there to be extra behaviours taking place on subscribers, for instance, populating cache management information.

    WAL-based replication duplicates absolutely everything, and nothing extra that changes data can run on a WAL-based replica.

Steve Singer also discusses the matter in 9.0 Streaming Replication vs Slony .

As observed up front, the streaming replication built into PostgreSQL, which has progressed since its beginnings in version 8.1, can satisfy some users' replication requirements. For those with requirements that are not compatible with its strictures, replication systems like Slony-I will continue to be useful.

2.0.5 fixes more than 24 issues found from 2.0.4 and earlier versions, remedying many issues found during an extensive testing period.

Slony-I source code has been migrated to use Git.

There are several addresses at which one may get at the repository via the various protocols that Git supports:

  • git://git.postgresql.org/git/slony1-engine.git
  • http://git.postgresql.org/git/slony1-engine.git
  • ssh://git@git.postgresql.org/slony1-engine.git

At present, we do not have a way to automatically send email out when changes are committed (as was the case with CVS). There is, however, an automatically generated RSS feed .

This release of the 2.0.x stream includes fixes to the issues introduced in 2.0.3. 2.0.3 installations are encourged to upgrade.

Slony-1 2.1.3 engine documentation
Slony-1 2.0.7 engine documentation
Slony-1 1.2.23 engine documentation
Slony-1 1.1.9 engine
Chris Browne 2011-10-19
The third beta for Slony 2.2.0 has ben released. Version 2.2.0 includes the following major changes
  • The storage and transport and application of the slony log (sl_log_1/sl_log_2) has changed providing performance improvements.
  • The FAILOVER command has been made more reliable
  • Improvements in how DDL (EXECUTE SCRIPT) is sequenced within the replication stream
  • In addition to many bug fixes and minor improvements. See the release notes for more details.
    2013-02-20
A bug fix release for the Slony-I 2.1 branch has been released. This release includes
  • Fixed a bug in MOVE SET that could cause data on other nodes to get out of sync
  • Removed the 'might be unsupported' working with PG 9.2
  • Fixed duplicate key detection on sl_nodelock
  • Added --with-pgport option to configure See the release notes for more details.
    2013-02-14
A bug fix release for the Slony-I 2.1 branch has been released. This release includes
  • Fixed memory leak in monitor thread
  • Add an ORDER BY to the log selection query so the xid's get compressed
  • The cleanup thread should no longer block waiting on a lock
  • Fixes to work with PostgreSQL 9.2
  • Minor changes to makefiles and configure
See the release notes for more details.
2012-08-27
The first beta for Slony 2.2.0 has ben released. Version 2.2.0 includes the following major changes
  • The storage and transport and application of the slony log (sl_log_1/sl_log_2) has changed providing performance improvements.
  • The FAILOVER command has been made more reliable
  • Improvements in how DDL (EXECUTE SCRIPT) is sequenced within the replication stream
  • In addition to many bug fixes and minor improvements. See the release notes for more details.
    2012-06-21
A bug fix release for the Slony-I 2.1 branch has been released. This release includes
  • Improved support for using Slony with PostgreSQL 9.1
  • Fixes to the FAILOVER command with multiple sets on an origin
  • Fixes to the support for replicating TRUNCATE commands
Among other fixes. See the release notes for more details.
2012-02-02
The next (and probably last) release of Slony-I 1.2.x has been released. This release includes
  • Fixes to FAILOVER on PostgreSQL 9.0
  • IMMUTABLE slon_quote functions
  • Fixes to typos
See the release notes for more details.
2012-02-02
The first release for Slony-I branch 2.1 has been released, in the form of version 2.1.0. It is a significant new version, fixing dozens of reported bugs, and adding some significant enhancements, including:
  • Implicit WAIT FOR
  • Support for adding tables in bulk
  • Support for replicating TRUNCATE
  • Health checks at startup
  • Performance improvement in cases of large backlog
  • Monitoring thread to provide better monitoring data
See the release notes for a full list of changes in this release.
2011-10-19
The next minor release of Slony 2.0 is available. Slony 2.0.7 includes a number of bug fixes from the previous release of Slony.
  • Slon can better recover from dropped network connections
  • Bug #193 - vac_count not being reset to 0 was causing vacuums to be done too frequently by the cleanup thread
  • Bug #195 - change slon_quote_* functions to IMMUTABLE
  • Bug #204 - Fix issue with FAILOVER to a non-direct subscriber introduced in 2.0.5
  • Build system fixes including MS Visual C support and no longer requiring pgport on other platforms
  • Bug #217 - Execute script (ddlscript_complete_int) will now reconfigure the trigger arguments on the log trigger for any tables that needs it.
A complete list of changes can be found in the release notes
2011-07-29
The third beta release of 2.1.0 is now available. Significant changes from the second beta include
  • Bug 204 - Additional failover fixes
  • Bug 218 - Changes in obtaining sl_config_lock and sl_event_locks
  • Bug 220 - Fixing order of parameters when reshaping subscribers
  • Bug 222 - Fixing issue where log trigger on new connections can block
2011-07-12

We are proud to announce the release of a new version of slony1-ctl, a collection of shell scripts aiming at simplifying everyday administration of Slony replication.

This version adds better support of localisation and a complete rewritting of functions.

slony1-ctl project homepage

The package

Best regards,

Stéphane Schildknecht

2011-05-31