sales@zope.com | 540.361.1700

ZODB Replication Services

Replicating Mission Critical Data

The ZODB Replication Service (ZRS) family of products allows system administrators to replicate their ZODB databases to two or more secondary storage servers.

Doing so, ZRS reduces downtime from planned and unplanned outages by allowing administrators to:

  • replicate mission critical data across two or more database servers,
  • distribute storage clusters across a wide area network,
  • quickly failover from a primary to a secondary storage server,
  • manage and monitor the primary and secondary standby servers.

Back-up and Maintenance

If a primary storage server fails, a secondary storage can take its place. Applications transparently reconnect to the new ZRS server. Secondary servers can be taken off-line at any time to undergo repairs, backups, or system upgrades. When a secondary returns to service, it automatically resynchronizes with the primary server.

ZRS greatly simplifies routine maintenance.  Primary service can be shifted to a secondary while the primary machine is being upgraded. ZRS also improves scalability since secondary servers provide additional read-only ZEO connections while maintaining their replication functions. ZEO client storages can thus be configured to connect to any available secondary, or load-balance among the available secondary ZRS servers. ZRS makes scheduled maintenance manageable, because primary service can be shifted to a secondary while the primary machine is being upgraded. ZRS also improves scalability since secondary servers can optionally provide additional read-only ZEO connections while maintaining their replication functions. ZEO client storages can thus be configured to connect to any available secondary, or load-balance among the available secondary ZRS servers.

Scalability

Adding new secondary ZRS Servers to the system is a simple process of adding the machine description to a configuration file, and starting the secondary software on the new host. A recovery process is initiated on the newly commissioned secondary storage, ensuring that it is current with respect to the primary storage.

Technical Theory of Operation

In a typical ZRS installation, the normal ZEO storage server is augmented with software that replicates transaction information at the storage API layer. (Note: ZRS does not require the use of ZEO.) A ZRS system contains a single read-write primary server and any number of read-only secondary servers. When a transaction is committed at the primary server, the transaction is replicated to all available secondary servers. If a secondary server is taken off-line, it will perform an automatic recovery process when brought back on-line. New secondaries can be added to the system at any time to improve availability.

ZRS secondary servers provide read-only access to databases. For sites that do not update content frequently, ZEO secondary servers can handle all Zope traffic. For more dynamic sites, a secondary server can provide read-only service if a failure occurs. In either case, a secondary server can be switched to primary service if the primary were to fail. Only one primary server may operate at a time.

A ZRS storage, like a ZEO server, is a wrapper which does not actually store objects on disk directly. Instead, it delegates that work to a concrete storage such as FileStorage.

Testimonials

We decided to use Zope and ZSQL Methods to provide web interfaces to databases that contain information about large scientific datasets - such as starting date, number of data points, and quality metrics for the data. Starting with a working 'MySQL' database, using the pre-configured Apache that ships with Zope, we got a simple query working in well under 2 hours. Very impressive product!

Joe VanAndel National Center for Atmospheric Research