Replication Manager now manages group membership much more
closely, making it much easier for applications to add and
remove sites from a replication group without risk of
transaction loss. In order to accomplish this, the API for
configuring group membership has changed significantly. The
repmgr_set_local_site()
and
repmgr_add_remote_site()
methods no
longer exist; they are replaced by a new handle type,
DB_SITE
. The
repmgr_get_local_site()
method has been
replaced by DB_ENV->repmgr_site(), which now returns a
DB_SITE
handle instead of a raw
host/port network address.
Replication Manager applications may no longer call the DB_ENV->rep_set_nsites() method, because the Replication Manager now tracks the number of sites in the replication group for you. Replication Manager applications may still call DB_ENV->rep_get_nsites(), but only after a successful call to DB_ENV->repmgr_start().
For applications using the replication Base API there is no change, except that they may now call DB_ENV->rep_set_nsites() to change the group size even when Master Leases are in use.
The new Replication Manager group membership functionality is described in the Managing Replication Manager Group Membership chapter in the Berkeley DB Programmer's Reference Guide.
Replication Manager no longer prints an error message on a connection failure. Instead it generates an event with the equivalent information (invoking the application's event-handling call-back function).
An existing application running a previous version of
BDB can do a "live upgrade" so that only one site at a
time has to be shut down. To do this, restart each site in
the group, with the old master being shutdown last. When
each site is restarted, use DB_SITE
to
configure the local site with the flag
DB_LEGACY
, and create a
DB_SITE
handle with a full
specification of all the remote site addresses for all
other sites currently in the group, and configure each
handle with the DB_LEGACY
flag. When
the old master is restarted and a new master has been
established, the new master is ready to manage membership
changes, and new sites can be added as usual. But the
application must not try to add new sites, or remove
existing sites, during the mixed-version transitional
phase.
To do a non-live upgrade shutdown the entire
replication group. Then restart the group with each site
configured with the DB_LEGACY
flag, and
in DB_REP_ELECTION
mode.
DB_EVENT_REP_SITE_ADDED
DB_EVENT_REP_SITE_REMOVED
DB_EVENT_REP_LOCAL_SITE_REMOVED
DB_EVENT_REP_CONNECT_BROKEN
DB_EVENT_REP_CONNECT_ESTD
DB_EVENT_REP_CONNECT_TRY_FAILED
DB_EVENT_REP_INIT_DONE
DB_ENV->repmgr_set_local_site()
DB_ENV->repmgr_add_local_site()
DB_ENV->repmgr_add_remote_site()
DB_ENV->repmgr_get_local_site()
The following new parameters are passed to DB_SITE->set_config().
DB_BOOTSTRAP_HELPER
DB_GROUP_CREATOR
DB_LEGACY
DB_LOCAL_SITE
DB_REPMGR_PEER