DB_ENV->rep_elect
|
|
#include <db.h>
int
DB_ENV->rep_elect(DB_ENV *env, int nsites,
int priority, u_int32_t timeout, int *envid);
Description: DB_ENV->rep_elect
The DB_ENV->rep_elect method holds an election for the master of a replication
group.
If the election is successful, the new master's ID may be the ID of the
previous master, or the ID of the current environment. The application
is responsible for adjusting its usage of the other environments in the
replication group, including directing all database updates to the newly
selected master, in accordance with the results of this election.
The thread of control that calls the DB_ENV->rep_elect method must not be the
thread of control that processes incoming messages; processing the
incoming messages is necessary to successfully complete an election.
The DB_ENV->rep_elect method
returns a non-zero error value on failure
and 0 on success.
Parameters
- envid
-
The envid parameter references memory into which
the newly elected master's ID is copied.
- nsites
-
The nsites parameter indicates the number of environments that
the application believes are in the replication group. This number is
used by Berkeley DB to avoid having two masters active simultaneously, even
in the case of a network partition. During an election, a new master
cannot be elected unless more than half of nsites agree on
the new master. Thus, in the face of a network partition, the side of
the partition with more than half the environments will elect a new
master and continue, while the environments communicating with fewer
than half the other environments will fail to find a new master.
- priority
-
The priority parameter is the priority of this environment. It
must be a positive integer, or 0 if this environment is not permitted
to become a master (see Replication
environment priorities for more information).
- timeout
-
The timeout parameter specifies a timeout period for an election.
If the election has not completed after timeout microseconds, the
election will fail.
Errors
The DB_ENV->rep_elect method
may fail and return one of the following non-zero errors:
- DB_REP_UNAVAIL
- The replication group was unable to elect a master, or was unable to
complete the election in the specified timeout period.
Class
DB_ENV
See Also
Replication and Related Methods
Copyright (c) 1996-2003 Sleepycat Software, Inc. - All rights reserved.