Joining a heterogeneous cluster
===============================

PGD 4.0 node can join a EDB Postgres Distributed cluster running 3.7.x
at a specific minimum maintenance release (such as 3.7.6) or a mix of
3.7 and 4.0 nodes. This procedure is useful when you want to upgrade not
just the PGD major version but also the underlying PostgreSQL major
version. You can achieve this by joining a 3.7 node running on
PostgreSQL 12 or 13 to a EDB Postgres Distributed cluster running 3.6.x
on PostgreSQL 11. The new node can also run on the same PostgreSQL major
release as all of the nodes in the existing cluster.

PGD ensures that the replication works correctly in all directions even
when some nodes are running 3.6 on one PostgreSQL major release and
other nodes are running 3.7 on another PostgreSQL major release.
However, we recommend that you quickly bring the cluster into a
homogenous state by parting the older nodes once enough new nodes join
the cluster. Don’t run any DDLs that might not be available on the older
versions and vice versa.

A node joining with a different major PostgreSQL release can’t use
physical backup taken with :ref:`bdr_init_physical <bdr_init_physical>`  , and the node must join using
the logical join method. Using this method is necessary because the
major PostgreSQL releases aren’t on-disk compatible with each other.

When a 3.7 node joins the cluster using a 3.6 node as a source, certain
configurations, such as conflict resolution, aren’t copied from the
source node. The node must be configured after it joins the cluster.
