> > There are simple rules: > > > > 1) Always send queries to all the nodes if it's a write query > > > > I presume this can lead to inconsistencies in data if your queries use non > deterministic functions like "now" or if your tables have serial data types > for IDs.
For "now", correct. For SERIAL, not if you set "insert_lock" to true(it's default in v2.2) or you use explicit table locking. > > 2) Detach a node if it fails. > > > > 3) Always execute queries in a transaction. If a node fails, the > > transaction aborts to rollback to previous data. > > > > Does it fail the entire update? Yes. Actually there are at least two scenarios: if number of updated tuples are different, abort the entire transaction (update). if some of node fails or rfeturns other than C(Command Complete), pgpool terminate the child process, thus aborts entire transaction. > In other words does the record commit on > some servers and not others? No. -- Tatsuo Ishii SRA OSS, Inc. Japan _______________________________________________ Pgpool-general mailing list [email protected] http://pgfoundry.org/mailman/listinfo/pgpool-general
