|
1 | | -<!-- $PostgreSQL: pgsql/doc/src/sgml/high-availability.sgml,v 1.5 2006/11/21 18:15:45 momjian Exp $ --> |
| 1 | +<!-- $PostgreSQL: pgsql/doc/src/sgml/high-availability.sgml,v 1.6 2006/11/21 18:31:57 momjian Exp $ --> |
2 | 2 |
|
3 | 3 | <chapter id="high-availability"> |
4 | 4 | <title>High Availability and Load Balancing</title> |
@@ -166,16 +166,16 @@ protocol to make nodes agree on a serializable transactional order. |
166 | 166 | </para> |
167 | 167 |
|
168 | 168 | <para> |
169 | | -One limitation of this solution is that functions like |
| 169 | +If queries are simply broadcast unmodified, functions like |
170 | 170 | <function>random()</>, <function>CURRENT_TIMESTAMP</>, and |
171 | | - sequencescan have different values on different servers. This |
172 | | - is because each server operates independently, and because SQL |
173 | | - queries are broadcast (and not actual modified rows). If this |
174 | | - is unacceptable,applications must query such values from a |
175 | | - single server and then use those values in write queries. |
176 | | - Also, care must be taken that all transactions either commit |
177 | | - or abort on all servers, perhaps using two-phase commit (<xref |
178 | | - linkend="sql-prepare-transaction" |
| 171 | + sequenceswould have different values on different servers. |
| 172 | +Thisis because each server operates independently, and because |
| 173 | +SQLqueries are broadcast (and not actual modified rows). If |
| 174 | +thisis unacceptable,either the middleware or the application |
| 175 | +must query such values from asingle server and then use those |
| 176 | +values in write queries.Also, care must be taken that all |
| 177 | +transactions either commitor abort on all servers, perhaps |
| 178 | +using two-phase commit (<xreflinkend="sql-prepare-transaction" |
179 | 179 | endterm="sql-prepare-transaction-title"> and <xref |
180 | 180 | linkend="sql-commit-prepared" endterm="sql-commit-prepared-title">. |
181 | 181 | Pgpool is an example of this type of replication. |
|