EDB Support for PostgreSQL BDR
EnterpriseDB (EDB) has received many questions regarding our support of a new PostgreSQL feature under development named BDR (Bi-Directional Replication). This blog post is intended to help Postgres users better understand this feature and their choices for Postgres replication solutions, including our own EDB xDB Replication Server.
BDR is a PostgreSQL replication feature under development. BDR will provide multi-master replication between two or more PostgreSQL servers and is built on top of a new PostgreSQL 9.4 core technology called Logical Decoding. Logical Decoding looks very promising in enabling a variety of new capabilities in PostgreSQL, one of which is BDR.
BDR is currently in a pre-release form but presumably will be fully integrated into PostgreSQL, in the v9.5 timeframe (20152H). Currently, BDR is being maintained and developed in a temporary fork of PostgreSQL 9.4.
EnterpriseDB's xDB Replication Server is a tool that has been providing multi-master replication for Postgres for over 4 years, and is currently being updated to use PostgreSQL’s general release of Logical Decoding. The next version xDB, v 6.0, will feature the Logical Decoding infrastructure and bring huge benefits to users.
Both BDR and xDB will provide extremely fast multi-master replication and support large configurations of database servers. However, xDB's flexible architecture will continue to allow for replication between Postgres versions, and for replication from MS SQL Server and Oracle. This is not the case for BDR as currently planned.
EDB is excited about this new technology for replication. In fact, we have been contributing our expertise to the development effort with Robert Haas (PostgreSQL committer and EDB Chief Architect, Database Server) and Kevin Grittner (PostgreSQL committer and EDB Database Architect) reviewing key code submissions (commits v5 and v7 of logical changeset extraction) to the PostgreSQL project.
When BDR is fully integrated into the PostgreSQL source code and ready for production use, EDB will fully support BDR-based multi-master replication configurations as well as continue to develop and offer our xDB Replication Server.
While BDR will be a powerful feature when it’s developed, there are a number of features in xDB Replication Server that BDR will not have:
- xDB is a modularized solution that allows it to utilize alternate core replication technologies such as PostgreSQL's logical decoding and have it work seamlessly with xDB's production tested capabilities, including DDL replication, custom conflict resolution and table filters.
- xDB provides a GUI tool to easily and quickly configure, manage, and change your replication environment.
- xDB supports table filters—a key requirement for many large enterprise implementations. Table filters specify the criteria for rows in publication tables that are to be included during replications. Rows that do not satisfy the selection criteria are excluded from replications to subscriptions or master nodes on which these table filters have been enabled.
- xDB MMR supports replication between different PostgreSQL, or different Postgres Plus Advanced Server, versions (going as far back as v8.4), providing users with more flexibility and configuration options. In contrast, BDR will be limited to supporting replication between PostgreSQL versions 9.4 or above.
- With regard to current xDB Multi-Master Replication users, a cluster can be set up with one set of master nodes on a PostgreSQL or PPAS versions 9.0 or above trigger-based system, and another on a PostgreSQL or PPAS 9.4 or above logical decoding-based system.
- xDB is a multi-purpose solution that also provides Single Master replication between heterogenous data sources (i.e. it supports publication from Oracle or SQL Server databases to PostgreSQL or Postgres Plus Advanced Server), as well as Multi-master replication from PostgreSQL and Postgres Plus Advanced Server. BDR does not have this flexibility.
While we and other Postgres users wait for a production-ready version of BDR, we are encouraging our users to try EDB's upcoming beta of xDB 6.0 to experience the benefits of a full-featured Logical Decoding-based replication solution.
Postgres users will soon have very powerful replication tools at their disposal as EDB and the community take advantage of Logical Decoding. How much benefit users will gain will be determined by the flexibility, maturity, ease of setup and ease of management of the tools they choose.
Jason Davis is Director, Product Management at EnterpriseDB.