1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml">
4  <head>
5    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6    <title>Managing Election Times</title>
7    <link rel="stylesheet" href="gettingStarted.css" type="text/css" />
8    <meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
9    <link rel="start" href="index.html" title="Getting Started with Replicated Berkeley DB Applications" />
10    <link rel="up" href="repapp.html" title="Chapter 3. The DB Replication Manager" />
11    <link rel="prev" href="fwrkpermmessage.html" title="Permanent Message Handling" />
12    <link rel="next" href="fmwrkconnectretry.html" title="Managing Connection Retries" />
13  </head>
14  <body>
15    <div class="navheader">
16      <table width="100%" summary="Navigation header">
17        <tr>
18          <th colspan="3" align="center">Managing Election Times</th>
19        </tr>
20        <tr>
21          <td width="20%" align="left"><a accesskey="p" href="fwrkpermmessage.html">Prev</a> </td>
22          <th width="60%" align="center">Chapter 3. The DB Replication Manager</th>
23          <td width="20%" align="right"> <a accesskey="n" href="fmwrkconnectretry.html">Next</a></td>
24        </tr>
25      </table>
26      <hr />
27    </div>
28    <div class="sect1" lang="en" xml:lang="en">
29      <div class="titlepage">
30        <div>
31          <div>
32            <h2 class="title" style="clear: both"><a id="electiontimes"></a>Managing Election Times</h2>
33          </div>
34        </div>
35      </div>
36      <div class="toc">
37        <dl>
38          <dt>
39            <span class="sect2">
40              <a href="electiontimes.html#electiontimeout">Managing Election Timeouts</a>
41            </span>
42          </dt>
43          <dt>
44            <span class="sect2">
45              <a href="electiontimes.html#electretrytime">Managing Election Retry Times</a>
46            </span>
47          </dt>
48        </dl>
49      </div>
50      <p>
51                    Where it comes to elections, there are two timeout
52                    values with which you should be concerned: election
53                    timeouts and election retries.
54            </p>
55      <div class="sect2" lang="en" xml:lang="en">
56        <div class="titlepage">
57          <div>
58            <div>
59              <h3 class="title"><a id="electiontimeout"></a>Managing Election Timeouts</h3>
60            </div>
61          </div>
62        </div>
63        <p>
64                        When an environment calls for an election, it will wait
65                        some amount of time for the other replicas in the
66                        replication group to respond. The amount of time
67                        that the environment will wait before declaring the
68                        election completed is the <span class="emphasis"><em>election timeout</em></span>. 
69                    </p>
70        <p>
71                            If the environment hears from all other known replicas before 
72                            the election timeout occurs, the election is considered 
73                            a success and a master is elected.
74                    </p>
75        <p>
76                            If only a subset of replicas respond, then the success
77                            or failure of the election is determined by
78                            how many replicas have participated in the
79                            election. It only takes a simple
80                            majority of replicas to elect a master. If
81                            there are enough votes for a given environment to
82                            meet that standard, then the master has been
83                            elected and the election is considered a
84                            success.
85                    </p>
86        <p>
87                            However, if not enough replicas have participated in
88                            the election when the election timeout value is 
89                            reached, the election is considered a failure
90                            and a master is not elected. At this point,
91                            your replication group is operating without a
92                            master, which means that, essentially,
93                            your replicated application has been placed in
94                            read-only mode.
95                    </p>
96        <p>
97                            Note, however, that the Replication Manager will attempt a
98                            new election after a given amount of time has
99                            passed. See the next section for details.
100                    </p>
101        <p>
102                            You set the election timeout value using
103                            <span><code class="methodname">DB_ENV-&gt;rep_set_timeout()</code>.</span>
104                            
105                            To do so, specify the
106                            <code class="literal">DB_REP_ELECTION_TIMEOUT</code>
107                            value to the <code class="literal">which</code> parameter and then a
108                            timeout value in microseconds to the
109                            <code class="literal">timeout</code> parameter.
110                    </p>
111      </div>
112      <div class="sect2" lang="en" xml:lang="en">
113        <div class="titlepage">
114          <div>
115            <div>
116              <h3 class="title"><a id="electretrytime"></a>Managing Election Retry Times</h3>
117            </div>
118          </div>
119        </div>
120        <p>
121                            In the event that a election fails (see the
122                            previous section), an election will not be
123                            attempted again until the election retry
124                            timeout value has expired. 
125                    </p>
126        <p>
127                            You set the retry timeout value using
128                            <span><code class="methodname">DB_ENV-&gt;rep_set_timeout()</code>.</span>
129                            
130                            To do so, specify the
131                            <code class="literal">DB_REP_ELECTION_RETRY</code>
132                            value to the <code class="literal">which</code> parameter and then a
133                            retry value in microseconds to the
134                            <code class="literal">timeout</code> parameter.
135                    </p>
136        <p>
137                        Note that this <span>flag</span>
138                         is only
139                        valid when you are using the Replication Manager. If you are
140                        using the Base APIs, then this
141                        <span>flag</span>
142                         is
143                        ignored.
144                    </p>
145      </div>
146    </div>
147    <div class="navfooter">
148      <hr />
149      <table width="100%" summary="Navigation footer">
150        <tr>
151          <td width="40%" align="left"><a accesskey="p" href="fwrkpermmessage.html">Prev</a> </td>
152          <td width="20%" align="center">
153            <a accesskey="u" href="repapp.html">Up</a>
154          </td>
155          <td width="40%" align="right"> <a accesskey="n" href="fmwrkconnectretry.html">Next</a></td>
156        </tr>
157        <tr>
158          <td width="40%" align="left" valign="top">Permanent Message Handling </td>
159          <td width="20%" align="center">
160            <a accesskey="h" href="index.html">Home</a>
161          </td>
162          <td width="40%" align="right" valign="top"> Managing Connection Retries</td>
163        </tr>
164      </table>
165    </div>
166  </body>
167</html>
168