Update and sync those documents.
authorTatsuo Ishii <ishii at sraoss.co.jp>
Fri, 5 Aug 2011 10:53:55 +0000 (10:53 +0000)
committerTatsuo Ishii <ishii at sraoss.co.jp>
Fri, 5 Aug 2011 10:53:55 +0000 (10:53 +0000)
doc/pgpool-en.html
doc/pgpool-ja.html

index 23623d1a26905489e530e648648eb573ec1157ad..8280a215543e3ecff13e98e684138d0c2e460491 100644 (file)
@@ -7,7 +7,7 @@
 </head>
 
 <!-- hhmts start -->
-Last modified: Wed Jun 29 09:50:01 JST 2011
+Last modified: Fri Aug  5 19:49:00 JST 2011
 <!-- hhmts end -->
 
 <body bgcolor="#ffffff">
@@ -72,7 +72,7 @@ more PostgreSQL clusters, so that the service can continue without interruption
 if one of those clusters fails.</p>
 
 <li>Load Balance</li>
-    <p>If a database is replicated, performing a SELECT query on any
+    <p>If a database is replicated(because running in either replcation mode or master/slave mode), performing a SELECT query on any
 server will return the same result. pgpool-II takes advantage of
 the replication feature in order to reduce the load on each PostgreSQL server.
 It does that by distributing SELECT queries among available servers, improving
@@ -133,6 +133,7 @@ want to use online recovery.
 <p>
 pgpool-II can be downloaded from the <a href="http://pgfoundry.org/projects/pgpool/">pgpool Development page</a>.
 Packages are also provided for various platforms including CentOS, RedHat Enterprise Linux, Fedora and Debian.
+Check appropriate repository.
 </p>
 
 <p>
@@ -260,6 +261,10 @@ cloned to create new databases.
 
 </dl>
 
+<p>
+Installing is done. If you are using Solaris or FreeBSD, you need to replace "make" with "gmake" in the above description because those operating systems requires GNU make.
+</p>
+
 <h1>Configuring pgpool-II<a name="config"></a></h1>
 
 <p>Default configuration files for pgpool-II are
@@ -412,6 +417,33 @@ installation of pgpool-II. Rename the file to
 <pre>
 cp $prefix/etc/pgpool.conf.sample $prefix/etc/pgpool.conf
 </pre>
+
+<p>
+There are additional sample pgpool.conf for each mode.
+</p>
+<p>
+<table border>
+<tr>
+<th>Mode</th>
+<th>sample file</th>
+</tr>
+
+<tr>
+<td>replication mode</td>
+<td>pgpool.conf.sample-replication</td>
+</tr>
+
+<tr>
+<td>master/slave mode(Slony-I)</td>
+<td>pgpool.conf.sample-master-slave</td>
+</tr>
+
+<tr>
+<td>master/slave mode(Streaming replication)</td>
+<td>pgpool.conf.sample-stream</td>
+</tr>
+</table>
+
 <p>
 An empty line or a line starting with "#" is treated as a
 comment and will be ignored.</p>
@@ -466,7 +498,9 @@ comment and will be ignored.</p>
       This parameter is deprecated for consistency with the default libpq policy. 
       See the backend_hostname parameter definition to adapt your configuration accordingly.
       </font>
-      <p>This parameter was defining the PostgreSQL server's UNIX domain socket directory.<p>
+      <p>This parameter was defining the PostgreSQL server's UNIX domain socket directory.
+          Default is <code>'/tmp'</code>. 
+          This parameter can only be set at server start.</p>
   </dd>
 
   <dt><a name="PCP_TIMEOUT"></a>pcp_timeout</dt>
@@ -484,7 +518,8 @@ comment and will be ignored.</p>
       pgpool-II from clients. If more than num_init_children clients
       try to connect to pgpool-II, they are blocked (not rejected)
       until a connection to any pgpool-II process is closed.
-      Up to 2*num_init_children can be queued.</p>
+      Up to 2*num_init_children can be queued.
+          Number of connections to each PostgreSQL is roughly max_pool*num_init_children</p>
       
          <p>Some hints in addition to above:</p>
           <p>
@@ -528,7 +563,7 @@ max_pool*num_init_children*2 <= (max_connections - superuser_reserved_connection
       <p>A pgpool-II child process will be terminated after this many
       connections from clients. This parameter is useful on a server
       if it is so busy that child_life_time and connection_life_time
-      are never triggered.
+      are never triggered. Thus this is also usefull to prevent PostgreSQL servers from getting too big.
       You need to reload pgpool.conf if you change this value.
       </p>
   </dd>
@@ -547,13 +582,12 @@ max_pool*num_init_children*2 <= (max_connections - superuser_reserved_connection
   <dt><a name="AUTHENTICATION_TIMEOUT"></a>authentication_timeout</dt>
   <dd>
   <p>Specify the timeout for pgpool authentication. 0 disables the time
-      out, which is the default. You need to restart pgpool-II if you
+      out. Default value is 60. You need to restart pgpool-II if you
       change authentication_timeout.</p>
 
   <dt><a name="LOGDIR"></a>logdir</dt>
   <dd>
-      <p>The directory used for the logs. pgpool_status is written into this 
-      directory.
+      <p>pgpool_status is written into this directory.
        </p>
   </dd>
   <dt><a name="LOG_DESTINATION"></a>log_destination</dt>
@@ -601,7 +635,7 @@ max_pool*num_init_children*2 <= (max_connections - superuser_reserved_connection
   <dt><a name="CONNECTION_CACHE"></a>connection_cache</dt>
   <dd>
       <p>Caches connections to backends when set to true. Default is
-      true.</p>
+      true. You need to restart pgpool-II if you change this value.</p>
   </dd>
 
   <dt><a name="HEALTH_CHECK_TIMEOUT"></a>health_check_timeout</dt>
@@ -637,6 +671,7 @@ max_pool*num_init_children*2 <= (max_connections - superuser_reserved_connection
   <dd>
       <p>The user name to perform health check. This user must exist
       in all the PostgreSQL backends.
+         Otherwise, health check causes an error.
       You need to reload pgpool.conf if you change health_check_user.
        </p>
   </dd>
@@ -747,7 +782,8 @@ If true, and an error occurs when writing to the backend communication,
 pgpool-II will trigger the fail over procedure . This is the same behavior as of 
 pgpool-II 2.2.x or earlier. If set to false, pgpool will report an error and 
 disconnect the session. 
-Please note that if set, however, pgpool will also do the fail over when 
+If you set this parameter to off, it is recommended that you turn on health checking.
+Please note that even if this parameter is set to off, however, pgpool will also do the fail over when 
 connecting to a backend fails or pgpool detects the administrative shutdown of 
 postmaster. You need to reload pgpool.conf if you change this value.
 </p>
@@ -808,9 +844,8 @@ postmaster. You need to reload pgpool.conf if you change this value.
 
   <dt><a name="BACKEND_HOSTNAME"></a>backend_hostname</dt>
   <dd>
-      <p>Specifies where to connect with the PostgreSQL backend. It can 
+      <p>Specifies where to connect with the PostgreSQL backend.
       It is used by pgpool-II to communicate with the server.
-      This parameter can only be set at server start.
       </p>
       <p>
       For TCP/IP communication, this parameter can take a hostname or an IP address.
@@ -828,6 +863,12 @@ postmaster. You need to reload pgpool.conf if you change this value.
       be continued even if the Master DB is down (not true in some
       modes). In this case, the youngest DB node ID alive will be the
       new Master DB.</p>
+         <p>
+         Please note that the DB node which has id 0 has no special meaming
+         if operated in streaming replication mode.
+         Rather, you should care about if the DB node is the "primary node" or not.
+         See <a href="#stream">Streaming Replication</a> for more details.
+         </p>
       <p>If you plan to use only one PostgreSQL server, specify it by
       <code>backend_hostname0</code>.</p>
 
@@ -1008,8 +1049,9 @@ the backend_hostname2, 3 and so on.</p>
 <h3><a name="connection_pool_mode"></a>Connection Pool Mode</h3>
 
 <p>In connection pool mode, all functions in raw mode and the
-connection pool function can be used. To enable this mode, set
-raw mode configuration parameters and parameters below.</p>
+connection pool function can be used.
+To enable this mode, you need to turn on "connection_cache".
+Following parameters take effect to connection pool.</p>
 
 <dl>
   <dt><a name="MAX_POOL"></a>max_pool</dt>
@@ -1088,6 +1130,7 @@ configuration parameters below must be set in addition to everything above.</p>
       <p>When set to true, SELECT queries will be
       distributed to each backend for load balancing. Default is
       false.</p>
+      <p>This parameter can only be set at server start. </p>
   </dd>
 
   <dt><a name="FAILOVER_IF_AFFECTED_TUPLES_MISMATCH"></a>failover_if_affected_tuples_mismatch</dt>
@@ -1095,6 +1138,9 @@ configuration parameters below must be set in addition to everything above.</p>
          <p>When set to true, if backends don't return the same number of affected
     tuples during an INSERT/UPDATE/DELETE, 
                the backends that differ from most frequent result set are degenerated.
+               If the frequencies are same, the group which includes master DB node(a DB node having the youngest node id) is remained and other groups are degenerated.
+               </p>
+          <p>
          If set to false, the session is terminated and the backends are not
          degenerated. Default is false.</p>
   </dd>
@@ -1104,7 +1150,7 @@ configuration parameters below must be set in addition to everything above.</p>
          <p>When set to true, if all backends don't return the same packet kind,
                the backends that differ from most
          frequent result set are degenerated. A typical use case is a SELECT
-         statement part of a transaction, replicate_select set to
+         statement being part of a transaction, replicate_select set to
          true, and SELECT returning a different number of rows among backends.
          Non-SELECT statements might trigger this though.
          For example, a backend succeeded in an UPDATE, while others
@@ -1158,9 +1204,9 @@ black_function_list = 'nextval,setval,lastval,currval'
 </pre>
 </p>
 <p>
-Please notice that we have lastval, currval in addition to nextval and setval.
+Please note that we have lastval and currval in addition to nextval and setval.
 Though lastval() and currval() are not writing functions, it is wise to add lastval() and currval() to avoid errors in the case when these functions are accidentaly load balanced to other DB node.
-Adding to black_function_list will prevent load balancing.
+Because adding to black_function_list will prevent load balancing.
 </p>
 </dd>
 
@@ -1517,13 +1563,31 @@ balancing. You need to call setAutoCommit(true) to enable autocommit.
 service. The service can be continued if there is at least one backend
 alive.</p>
 
+<h4><p>Specific errors in replication mode</p></h2>
+<p>
+In replication mode, if pgpool finds that the number of affected tuples by INSERT, UPDATE, DELETE are not same, it sends erroneous SQL statement to all DB nodes to abort the transaction if failover_if_affected_tuples_mismatch is set to false
+(degeneration occurs if it is set to true).
+In this case you will see following error messages on client terminal:
+<pre>
+   =# UPDATE t SET a = a + 1;
+   ERROR: pgpool detected difference of the number of update tuples Possible last query was: "update t1 set i = 1;"
+   HINT: check data consistency between master and other db node
+</pre>
+You will see number of updated rows in PostgreSQL log(in this case DB node 0 has 0 updated row and DB node 1 has 1 updated row)
+<pre>
+2010-07-22 13:23:25 LOG:   pid 5490: SimpleForwardToFrontend: Number of affected tuples are: 0 1
+2010-07-22 13:23:25 LOG:   pid 5490: ReadyForQuery: Degenerate backends: 1
+2010-07-22 13:23:25 LOG:   pid 5490: ReadyForQuery: Number of affected tuples are: 0 1
+</pre>
+</p>
+
 <h3><a name="master_slave_mode"></a>Master/Slave Mode</h3>
 
 <p>This mode is used to couple pgpool-II with another master/slave
 replication software (like Slony-I and Streaming replication), which is responsible
 for doing the actual data replication.
 DB nodes' information (backend_hostname, backend_port,
-backend_weight, and backend_data_directory you need the
+backend_weight, backend_flag and backend_data_directory if you need the
 online recovery fonctionality) must be set, in the same way as in the replication mode.
 In addition to that, set
 <code>master_slave_mode</code> and <code>load_balance_mode</code> to
@@ -1559,7 +1623,7 @@ balancing in master/slave mode.
 See <a href="#white_function_list">white_function_list</a> for more details.
 </p>
 
-<h4>Streaming Replication</h4>
+<h4><a name="stream">Streaming Replication</h4>
 <p>
 As stated above, pgpool-II can work together with Streaming Replication, which
 is available since PostgreSQL 9.0. To use it, enable 'master_slave' and
@@ -1596,6 +1660,7 @@ You need to reload pgpool.conf if you change this directive.
 <p>
 You could monitor the replication delay by using the "show pool_status"
 command as well.
+The column name is "standby_delay#"(where '#' should be replaced by DB node id).
 </p>
 </ul>
 </p>
@@ -1613,12 +1678,13 @@ when the primary goes down.
 <p>
 <strong>Caution: If you plan to use multiple standby nodes, we recommend
 to set a delay_threshold to prevent any query directed to other standby
-nodes from retrieving older data.</strong>
+nodes from retrieving older data.
 </p>
 <p>
 If a second standby took over primary when the first standby has already
 taken over too, you would get bogus data from the second standby.
 We recommend not to plan this kind of configuration.
+</strong>
 </p>
 <p>
 How to setup a failover configuration is as follows.
@@ -2137,7 +2203,9 @@ See <a href="#md5">Authentication / Access Controls</a> for more details.
 </p>
 
 <h2>Setting Query cache method</h2>
-<p>The Query cache can be used in all modes in pgpool-II. Activating it in  
+<p>The Query cache can be used in all modes in pgpool-II.
+The query cache allow to reuse the SELECT result to boost the performance.
+Activating it in  
 pgpool.conf is done as follows:</p>
 <pre>
 enable_query_cache = true
@@ -2160,6 +2228,13 @@ CREATE TABLE pgpool_catalog.query_cache (
 However, you may have to modify the schema in this statement, if you don't use
 "pgpool_catalog".
 </p>
+<p>
+<strong>Caution: Current query cache implementation creates cache data on database.
+Thus enabling query cache may not contribute to boost performance.
+Contents of query cache is not updated even if the underlying table is get updated.
+You need to delete the cache data from the cache table or restart pgpool-II with -c (delete cache) option.
+</strong>
+</p>
 
 <h1>Starting/Stopping pgpool-II<a name="start"></a></h1>
 
@@ -2247,6 +2322,8 @@ pgPool-II information. Available options are:
   <li>pool_pools, to get information on pgPool-II pools</li>
   <li>pool_version, to get the pgPool_II release version</li>
 </ul>
+</p>
+<p>Other than "pool_status" are added since pgpool-II 3.0.
 <p>
 <u>Note</u> : The term 'pool' refers to the pool of PostgreSQL sessions owned by one pgpool process,
 not the whole sessions owned by pgpool.
@@ -2642,8 +2719,10 @@ ssh -T $DEST $PGCTL -w -D $DESTDIR start 2>/dev/null 1>/dev/null < /dev/null &
 
 <h3>Online recovery with rsync.</h3>
 <p>
-PostgreSQL 7.4 does not have PITR. rsync can be used to do online
-recovery. In the "sample" directory of pgpool-II's tarball,
+PostgreSQL 7.4 does not have PITR.
+PostgreSQL 8.0 and 8.1 cannot force to switch transaction log.
+So rsync can be used to do online recovery.
+In the "sample" directory of pgpool-II's tarball,
 there is a recovery script named "pgpool_recovery". It uses the rsync
 command. pgpool-II calls the script with three arguments.
 </p>
@@ -2699,6 +2778,220 @@ pgpoolAdmin, set "_PGPOOL2_PCP_TIMEOUT " parameter to a large number in
 pgmgt.conf.php.
 </p>
 
+<h1>PostgreSQL version up using online recovery</h1>
+<h2>replication mode case</h2>
+<p>
+You can update PostgreSQL on each node without stopping pgpool-II if pgpool-II operated in replication mode.
+Please note that active sessions from clients to pgpool-II will be disconnected while disconnecting and attaching DB nodes.
+Also please note that you cannot do major version up in the method described below
+(i.e. the version up should not require dump/restore).
+</p>
+
+<p>
+<ol>
+<li><p>
+Prepare online recovery.</p>
+<li><p>Version up should perform nodes which are not master node first.
+Stop PostgreSQL on a non-master node.
+Pgpool-II will detect PostgreSQL termination and degenerate emitting logs below.
+At this point all sessions connected to pgpool-II disconnected.
+<pre>
+2010-07-27 16:32:29 LOG:   pid 10215: set 1 th backend down status
+2010-07-27 16:32:29 LOG:   pid 10215: starting degeneration. shutdown host localhost(5433)
+2010-07-27 16:32:29 LOG:   pid 10215: failover_handler: set new master node: 0
+2010-07-27 16:32:29 LOG:   pid 10215: failover done. shutdown host localhost(5433)
+</pre>
+</p>
+
+<li><p>
+Version up PostgreSQL on the stopping node.
+You can overwrite old PostgreSQL, we recommend move old PostgreSQL somewhere so that you could recover it just in case however.
+</p>
+
+<li><p>
+If you install new PostgreSQL in different location from the old one and do not want to update your recovery script, you need to match the path by using tools including symbolic link.
+If you choose to overwrite, you can skip following steps till installation of C function step.
+You can execute online recovery immediately.
+</p>
+
+<li><p>
+Change installation directory of old PostgreSQL.
+Installting directory of PostgreSQL is supposed to be /usr/local/pgsql in following description.
+<pre>
+$ mv /usr/local/pgsql /usr/local/pgsql-old
+</pre>
+</p>
+
+<li><p>
+Create a symblic link to the localtion where newer version of PostgreSQL installed.
+This allow you to continue to use command search path you currently use.
+Installting directory of newer PostgreSQL is supposed to be /usr/local/pgsql-new in following description.
+<pre>
+$ ln -s /usr/local/pgsql-new /usr/local/pgsql
+</pre>
+</p>
+
+<li><p>
+If database directory is located under older PostgreSQL installation directory, you should create or copy so that newer PostgreSQL can access it.
+We use symbolic link in the following example.
+<pre>
+$ ln -s /usr/local/pgsql-old/data /usr/local/pgsql/data
+</pre>
+</p>
+
+<li><p>
+Install C functions into PostgreSQL. "Installing C functions" section may help you.
+Because online recovery copies database cluster, the last step installing functions using psql is not neccessary.
+Do make install.
+</p>
+
+<li><p>
+Do online recovery. You are done with one node version up.
+To execute online recovery, you can use pcp_recovery_node or pgpoolAdmin.
+</p>
+
+<li><p>
+Repeat steps above on each node. In the very last master node should be updated.
+You are done.
+</p>
+</ol>
+
+<h2>If you are using streaming replication</h2>
+<p>
+You can update standby PostgreSQL server without stopping pgpool-II.
+</p>
+
+<p>
+The procedure to update standby PostgreSQL servers are same as the one of replication mode.
+Please refer to "Online recovery with Streaming Replication" to set up recovery_1st_stage_command and recovery_2nd_stage_command.
+</p>
+
+<p>
+You cannot version up primary server without stopping pgpool-II.
+You need to stop pgpool-II while updating primary server.
+The procedure to update primary PostgreSQL server is same as the one standby server.
+The procedure to update primary PostgreSQL server is as follows:
+<ol>
+<li>Stop pgpool-II
+<li>Stop primary PostgreSQL
+<li>Update primary PostgreSQl
+<li>Start primary PostgreSQL
+<li>Start pgpool-II
+</ol>
+</p>
+
+<h1><a name="backup"></a>Backup</h1>
+<p>
+To back up backend PostgreSQL servers and system DB, you can physical
+backup, logical backup (pg_dump, pg_dumpall) and PITR in the same manner as PostgreSQL.
+Please note that using logical backup and PITR should be performed directory PostgreSQL,
+rather than via pgpool-II to avoid errors caused by load_balance_mode and replicate_select.
+</p>
+
+<h2>replication mode and master/slave mode</h2>
+<p>
+If pgpool-II is operated in replication mode or master/slave mode, take a backup on one DB nodes in the cluster.
+</p>
+
+<p>
+If you are using master/slave mode and asynchronous replication
+systems(Slony-I and streaming replication) and need the latest backup, you should take a backup on the master node.
+</p>
+
+<p>
+pg_dump takes ACCESS SHARE lock on database. Commands taking ACCESS
+EXECUTE lock, such as ALTER TABLE, DROP TABLE, TRUNCATE, REINDEX,
+CLUSTER and VACUUM FULL will wait for the completion of pg_dump because
+of lock conflict. Also this may affect the primary node even if you are
+doing pg_dump on standby.
+</p>
+
+<h2>Parallel mode</h2>
+<p>
+If you are using parallel mode and need to take a consistent backup, you need to stop pgpool-II.
+</p>
+
+<p>
+To use logical backup, stop applications and pgpool-II then perform pg_dump or pg_dumpall on all nodes.
+After finishing backup, start pgpool-II then start applications.
+</p>
+
+<p>
+To use PITR, please make sure that system times are identical on all
+nodes.  Prepare archive logging and take base backup.  After finishing
+backup, stop and restart applications or pgpool-II.  Record the time of
+stop and start.  This temporary stop will make consistent state among
+all over cluster.  If you need to restore form the base backup and
+archive log, set recovery_target_time of recovery.conf in the middle of
+the start/stop time.
+</p>
+
+<h2>Backuping of system DB</h2>
+<p>
+You need to backup system DB if pgpool-II is operated in parallel query
+mode or if you are using query cache.
+Backup database specified by system_db_dbname in pgpool.conf.
+
+<h1><a name="deploy"></a>Deploying pgpool-II</a></h1>
+<p>
+pgpool-II can run on a dedicated server, on the server where application
+server is running on or other servers.  In this section we discuss how
+to make those deployments and pros and cons.
+</p>
+
+<p>
+<ul>
+<dt>Dedicated server
+<dd>
+<p>
+Pgpool-II is running on a dedicated server.
+It's simple and pgpool-II is not affected by other server softwares.
+Obvious cons is you need to by more hardware.
+Also pgpool-II can be a single point of failure with this configuration
+(you can avoid this by using pgpool-HA described somewhere below).
+</p>
+
+<dt>Deploying on a web server or application server
+<dd>
+<p>
+Deploying pgpool-II on a server where Apache, JBoss, Tomcat or other web
+server and application servers.
+Since communication between pgpool-II and web servers and application servers
+is within a local machine, socket communication can be faster than inter sever communication.
+Also if you are using multiple web serves or application servers, you can avoid
+the single point of failure problem
+(in this case you must have identical pgpool.conf on each pgpool-II instanace).
+There are seveal things you should care about in this configuration:
+</p>
+<ul>
+<li>If the communication between pgpool-II and DB servers is not stable, it is possible
+that DB node #1 is down from a point of a pgpool-II instance, while it is up from other pgpool-II instance's point of view.
+To avoid this, you can multiplex the network connection.
+<li>While executing online recovery in replication mode, you need to stop all pgpool-II instances except the one which is doing online recovery.
+Othewise DB can be running into inconsistent state.
+In master slave mode+streaming replication mode, you do not need to stop other pgpool-II instances.
+You should not execute online recovery at the same time on multiple pgpool-II instances however.
+</ul>
+</p>
+
+<dt>Running pgpool-II on DB server
+<dd>
+<p>
+Running pgpool-II on the server as PostgreSQL is running on.
+You can avoid the single point of failure problem of pgpool-II with configuration.
+And obviously you do need to buy additional dedicated server.
+Problem with this configuration is, application need to aware that which DB server they should connect to.
+To solve the problem you can use virtual IP with pgpool-HA.
+</ul>
+</p>
+
+<h2>About pgpool-HA</h2>
+<p>
+Pgpool-HA is a high availability software for pgpool-II using hearbeat.
+Pgpool-HA is a sub probject of pgpool project as well as pgpool-II.
+Pgpool-HA can be available from pgpool development site as an open source softeware.
+</p>
+
 <h1><a name="troubleshooting"></a>Troubleshooting</h1>
 <p>
 This section describes problems and their workarounds while you are using
@@ -3842,7 +4135,7 @@ parallel fashion, they are fast.</td></tr>
 <div class="copyright">
 <hr>
 <copyright>
-Copyright &copy; 2003 &ndash; 2010 pgpool Global Development Group
+Copyright &copy; 2003 &ndash; 2011 pgpool Global Development Group
 </copyright>
 </div>
 </body>
index dd8ed9fdc6d61ea5c20ce9dd5b2941a6578446a1..5af5edb4e98cbc46626a8a01cd260aecfb78fe93 100644 (file)
@@ -8,7 +8,7 @@
 <body>
 
 <!-- hhmts start -->
-Last modified: Wed Jul 13 13:24:38 JST 2011
+Last modified: Fri Aug  5 19:42:30 JST 2011
 <!-- hhmts end -->
 
 <body bgcolor="#ffffff">
@@ -65,7 +65,7 @@ pgpool-II\e$B$O\e(BPostgreSQL\e$B@lMQ$N%_%I%k%&%'%"$G!"\e(BPostgreSQL\e$B$N%G!<%?%Y!<
 
 <li>\e$B%3%M%/%7%g%s%W!<%j%s%0\e(B
 <p>
-PostgreSQL\e$B$X$N@\B3$rJ]B8$7$F$*$-!":FMxMQ$9$k$3$H$K$h$C$F\e(BPostgreSQL\e$B$X$N@\B3%*!<%P%X%C%I$rDc8:$7!"%7%9%F%`A4BN$N%9%k!<%W%C%H$r8~>e$9$k$3$H$,$G$-$^$9!#\e(B
+PostgreSQL\e$B$X$N@\B3$rJ]B8$7$F$*$-!"F1$8B0@-\e(B(\e$B%f!<%6L>!"%G!<%?%Y!<%9!"%W%m%H%3%k%P!<%8%g%s\e(B)\e$B$r;}$D@\B3$r<u$1IU$1$?$H$-$K:FMxMQ$9$k$3$H$K$h$C$F\e(BPostgreSQL\e$B$X$N@\B3%*!<%P%X%C%I$rDc8:$7!"%7%9%F%`A4BN$N%9%k!<%W%C%H$r8~>e$9$k$3$H$,$G$-$^$9!#\e(B
 </p>
 
 <li>\e$B%l%W%j%1!<%7%g%s\e(B
@@ -102,6 +102,7 @@ pgpool-II\e$B$O!"\e(BLinux\e$B$r$O$8$a!"\e(BSolaris\e$B$d\e(BFreeBSD\e$B$J$I$N$[$H$s$I$
 </p>
 <p>\e$BBP1~$9$k\e(BPostgreSQL\e$B$N%P!<%8%g%s$O!"\e(BPostgreSQL\e$B$N\e(B6.4\e$B0J9_$G$9!#$?$@$7%Q%i%l%k%/%(%j%b!<%I$r;HMQ$9$k$H$-$O\e(BPostgreSQL 7.4\e$B0J9_$r$*;H$$$/$@$5$$!#\e(B
 \e$B$^$?!"\e(BPostgreSQL 7.4\e$B$h$jA0$N%P!<%8%g%s$G$O!";HMQ$G$-$k5!G=$K@)8B;v9`$,$"$j$^$9!#\e(B
+\e$B$b$C$H$b!"$=$N$h$&$J8E$$%P!<%8%g%s$N\e(BPostgreSQL\e$B$O$=$b$=$b;H$&$Y$-$G$O$"$j$^$;$s!#\e(B
 </p>
 <p>
 pgpool-II\e$BG[2<$GMxMQ$9$k\e(BPostgreSQL\e$B%5!<%P$N%a%8%c!<%P!<%8%g%s$O0lCW$7$F$$$J$1$l$P$J$j$^$;$s!#\e(B
@@ -111,7 +112,7 @@ pgpool-II\e$BG[2<$GMxMQ$9$k\e(BPostgreSQL\e$B%5!<%P$N%a%8%c!<%P!<%8%g%s$O0lCW$7$F$$
 <h1>pgpool-II\e$B$N%$%s%9%H!<%k\e(B<a name="install"></a></h1>
 
 <p>
-Linux\e$BMQ$N\e(BRPM\e$B%Q%C%1!<%8$O!"\e(BCentOS\e$B!"\e(BFedora\e$BMQ$J$I$,Ds6!$5$l$F$$$^$9!#\e(B
+Linux\e$BMQ$N\e(BRPM\e$B%Q%C%1!<%8$O!"\e(BCentOS\e$B!"\e(BRedHat Enterprise Linux\e$B!"\e(BFedora\e$B!"\e(BDebian\e$BMQ$J$I$,Ds6!$5$l$F$$$^$9!#\e(B
 \e$B3:Ev%j%]%8%H%j$r%A%'%C%/$7$F$_$F$/$@$5$$!#\e(B
 </p>
 
@@ -124,6 +125,7 @@ href="http://pgfoundry.org/projects/pgpool/">pgpool\e$B3+H/%Z!<%8\e(B</a>
 <p>
 pgpool-II\e$B$N%=!<%9%3!<%I$+$i$N%$%s%9%H!<%k$K$O!"\e(Bgcc 2.9\e$B0J>e!"$*$h$S\e(BGNU make\e$B$,I,MW$G$9!#\e(B
 \e$B$^$?!"\e(Bpgpool-II\e$B$O\e(Blibpq(PostgreSQL\e$BIUB0$N%/%i%$%"%s%H%i%$%V%i%j\e(B)\e$B$r;HMQ$9$k$N$G!"%S%k%I$r9T$&%^%7%s>e$K\e(Blibpq\e$B$,%$%s%9%H!<%k$5$l$F$$$k$3$H$,I,MW$G$9!#\e(B
+\e$B$^$?!"\e(BOpenSSL\e$B%5%]!<%H$rM-8z$K$9$k>l9g$O!"\e(BOpenSSL\e$B%i%$%V%i%j$H3+H/MQ$N%X%C%@!<%U%!%$%k$,I,MW$G$9!#\e(B
 </p>
 
 <dl>
@@ -429,6 +431,8 @@ pgpool-II\e$B$,%3%M%/%7%g%s$r<u$1IU$1$k%]!<%HHV9f$G$9!#%G%U%)%k%HCM$O\e(B9999
 <p>
 pgpool-II\e$B$,%3%M%/%7%g%s$r<u$1IU$1$k\e(BUNIX\e$B%I%a%$%s%=%1%C%H$rCV$/%G%#%l%/%H%j$G$9!#\e(B
 \e$B%G%U%)%k%HCM$O\e(B'/tmp'\e$B$G$9!#\e(B
+\e$B$3$N%=%1%C%H$O!"\e(Bcron\e$B$K$h$C$F:o=|$5$l$k$3$H$,$"$k$N$GCm0U$7$F$/$@$5$$!#\e(B
+<code>'/var/run'</code>\e$B$J$I$N%G%#%l%/%H%j$KJQ99$9$k$3$H$r$*4+$a$7$^$9!#\e(B
 \e$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O\e(B pgpool-II \e$B$r:F5/F0$7$F$/$@$5$$!#\e(B
 </p>
 
@@ -444,15 +448,21 @@ pcp\e$B$,;HMQ$9$k%]!<%HHV9f$G$9!#\e(B
 <p>
 pcp\e$B$,%3%M%/%7%g%s$r<u$1IU$1$k\e(BUNIX\e$B%I%a%$%s%=%1%C%H$rCV$/%G%#%l%/%H%j$G$9!#\e(B
 \e$B%G%U%)%k%HCM$O\e(B'/tmp'\e$B$G$9!#\e(B
+\e$B$3$N%=%1%C%H$O!"\e(Bcron\e$B$K$h$C$F:o=|$5$l$k$3$H$,$"$k$N$GCm0U$7$F$/$@$5$$!#\e(B
+<code>'/var/run'</code>\e$B$J$I$N%G%#%l%/%H%j$KJQ99$9$k$3$H$r$*4+$a$7$^$9!#\e(B
 \e$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O\e(B pgpool-II \e$B$r:F5/F0$7$F$/$@$5$$!#\e(B
 </p>
 
 <dt><a name="BACKEND_SOCKET_DIR"></a>backend_socket_dir</dt>
 <dd>
+        <font color="red"><em>DEPRECATED</em></font><br>
+<p>
+\e$B$3$N%Q%i%a!<%?$O!"\e(Blibpq\e$B$N%]%j%7!<$K9g$o$;$F:o=|$5$l$^$9!#\e(B
+\e$BBe$o$j$K\e(Bbackend_hostname\e$B%Q%i%a!<%?$r;H$C$F$/$@$5$$!#\e(B
+</p>
 <p>
 UNIX\e$B%I%a%$%s%=%1%C%H7PM3$G\e(Bpgpool-II\e$B$,\e(BPostgreSQL\e$B$H@\B3$9$k:]$K;HMQ$9$k\e(B
-PostgreSQL\e$B$N\e(BUNIX\e$B%I%a%$%s%=%1%C%H$,CV$+$l$F$$$k%G%#%l%/%H%j!#%G%U%)%k%HCM\e(B
-\e$B$O\e(B/tmp\e$B$G$9!#\e(B
+PostgreSQL\e$B$N\e(BUNIX\e$B%I%a%$%s%=%1%C%H$,CV$+$l$F$$$k%G%#%l%/%H%j$G$9!#%G%U%)%k%HCM$O\e(B/tmp\e$B$G$9!#\e(B
 \e$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O\e(B pgpool-II \e$B$r:F5/F0$7$F$/$@$5$$!#\e(B
 </p>
 
@@ -470,6 +480,7 @@ pcp\e$B$,\e(Bpgppool\e$B$H@\B3$9$k:]$N%?%$%`%"%&%HCM!#\e(B0\e$B$K$9$k$H%?%$%`%"%&%H$7
 prefork\e$B$9$k\e(Bpgpool-II\e$B$N%5!<%P%W%m%;%9$N?t$G$9!#%G%U%)%k%HCM$O\e(B32\e$B$K$J$C$F$$$^$9!#\e(B
 \e$B$3$l$,!"\e(Bpgpool-II\e$B$KBP$7$F%/%i%$%"%s%H$,F1;~$K@\B3$G$-$k>e8B$N?t$K$J$j$^$9!#\e(B
 \e$B$3$l$rD6$($?>l9g$O!"$=$N%/%i%$%"%s%H$O!"\e(Bpgpool-II\e$B$N$I$l$+$i$N%W%m%;%9$X$N%U%m%s%H%(%s%I$N@\B3$,=*N;$9$k$^$GBT$?$5$l$^$9\e(B(PostgreSQL\e$B$H0c$C$F%(%i!<$K$J$j$^$;$s\e(B)\e$B!#\e(B
+\e$BBT$?$5$l$k?t$N>e8B$O!"\e(B2*num_init_children \e$B$G$9!#\e(B
 \e$B4pK\E*$K8e=R$N\e(Bmax_pool*num_init_children\e$BJ,$@$1\e(BPostgreSQL\e$B$X$N%3%M%/%7%g%s$,D%$i$l$^$9$,!"B>$K0J2<$N9MN8$,I,MW$G$9!#\e(B
 <ul>
 <li>\e$BLd$$9g$o$;$N%-%c%s%;%k$r9T$&$HDL>o$N%3%M%/%7%g%s$H$OJL$K?7$?$J%3%M%/%7%g%s$,D%$i$l$^$9!#\e(B
@@ -518,9 +529,9 @@ max_pool*num_init_children*2 <= (max_connections - superuser_reserved_connection
 <p>
   \e$BA02s%/%i%$%"%s%H$+$iMh$?%/%(%j$+$i!"\e(Bclient_idle_limit \e$BIC1[$($F$b<!$N\e(B
   \e$B%/%(%j$,FO$+$J$$>l9g$O!"%/%i%$%"%s%H$X$N@\B3$r6/@)E*$K@ZCG$7!"%/%i%$\e(B
-  \e$B%"%s%H$+$i$N<!$N%3%M%/%7%g%s$rBT$D$h$&$K$7$^$9!#%G%U%)%k%HCM$O\e(B 0(\e$BL5\e(B
-  \e$B8z\e(B)\e$B$G$9!#$3$N%Q%i%a!<%?$O!"%*%s%i%$%s%j%+%P%j$N%;%+%s%I%9%F!<%8$G$O\e(B
-  \e$BL5;k$5$l$^$9!#\e(B
+  \e$B%"%s%H$+$i$N<!$N%3%M%/%7%g%s$rBT$D$h$&$K$7$^$9!#\e(B
+  \e$B$3$N@_Dj$O!"$@$i$7$J$$%/%i%$%"%s%H%W%m%0%i%`$d!"%/%i%$%"%s%H$H\e(Bpgpool\e$B$N4V$N\e(BTCP/IP\e$B%3%M%/%7%g%s$,ITD4$J$3$H$K$h$C$F!"\e(Bpgpool\e$B$N;R%W%m%;%9$,@jM-$5$l$F$7$^$&LdBj$r2sHr$9$k$N$KLrN)$A$^$9!#\e(B
+  \e$B%G%U%)%k%HCM$O\e(B 0(\e$BL58z\e(B)\e$B$G$9!#$3$N%Q%i%a!<%?$O!"%*%s%i%$%s%j%+%P%j$N%;%+%s%I%9%F!<%8$G$OL5;k$5$l$^$9!#\e(B
 \e$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O@_Dj%U%!%$%k$r:FFI$_9~$_$7$F$/$@$5$$!#\e(B
 </p>
 
@@ -536,10 +547,43 @@ max_pool*num_init_children*2 <= (max_connections - superuser_reserved_connection
 <dt><a name="LOGDIR"></a>logdir</dt>
 <dd>
 <p>
-   pgpool-II\e$B$N3F<o%m%0%U%!%$%k$r3JG<$9$k%G%#%l%/%H%j$G$9!#\e(B
-   \e$B$3$N2<$K\e(BDB\e$B%N!<%I$N>uBV$r5-O?$9$k\e(Bpgpool_status\e$B%U%!%$%k$,=q$+$l$^$9!#\e(B
+   \e$B$3$N%G%#%l%/%H%j2<$K!"\e(Bpgpool-II\e$B$N\e(BDB\e$B%N!<%I$N>uBV$r5-O?$9$k\e(Bpgpool_status\e$B%U%!%$%k$,=q$+$l$^$9!#\e(B
 </p>
 
+  <dt><a name="LOG_DESTINATION"></a>log_destination</dt>
+  <dd>
+      <p>pgpool-II\e$B$O!"\e(Bstderr\e$B$+\e(Bsyslog\e$B$N$I$A$i$+$K%m%0$r=q$/$3$H$,$G$-$^$9!#%G%U%)%k%H$O\e(Bstderr\e$B$G$9!#\e(B
+       </p>
+      <p>\e$BCm0U\e(B:syslog\e$B$r;H$&>l9g$O!"\e(Bsyslog\e$B%G!<%b%s$N@_Dj$rJQ99$9$kI,MW$,$"$j$^$9!#\e(B
+
+Note: you will need to alter the configuration of your system's syslog daemon in order to make use of the syslog option for log_destination. 
+
+pgpool-II\e$B$O!"\e(Bsyslog \e$B%U%!%7%j%F%#\e(B LOCAL0 \e$B$+$i\e(B LOCAL7 \e$B$^$G$K%m%0$r=q$/$3$H$,$G$-$^$9\e(B
+(syslog_facility\e$B$r$4Mw$/$@$5$$\e(B)\e$B!#\e(B
+\e$B$7$+$7!"$[$H$s$I$N%G%U%)%k%H$N\e(Bsyslog\e$B@_Dj$O!"$=$N$h$&$J%a%C%;!<%8$rGQ4~$7$F$7$^$$$^$9!#\e(B
+\e$B$=$3$G!"\e(Bsyslog\e$B%G!<%b%s$N0J2<$N$h$&$J@_Dj$,I,MW$K$J$j$^$9!#\e(B
+       </p>
+       <pre>
+       local0.*    /var/log/pgpool.log
+       </pre>
+       </p>
+  </dd>
+
+  <dt><a name="SYSLOG_FACILITY"></a>syslog_facility</dt>
+  <dd>
+      <p>syslog\e$B$,M-8z$J>l9g!"$3$N%Q%i%a!<%?$K$h$C$F\e(Bsyslog\e$B$N!V%U%!%7%j%F%#!W$r@_Dj$7$^$9!#\e(B
+LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7\e$B$+$iA*Br$7$^$9!#\e(B
+\e$B%G%U%)%k%H$O\e(B LOCAL0 \e$B$G$9!#\e(B
+\e$BJ;$;$F\e(Bsyslog\e$B%G!<%b%s$N%I%-%e%a%s%H$b$4Mw$/$@$5$$!#\e(B
+       </p>
+  </dd>
+
+  <dt><a name="SYSLOG_IDENT"></a>syslog_ident</dt>
+  <dd>
+      <p>syslog\e$B$,M-8z$J>l9g!"$3$N%Q%i%a!<%?$K$h$C$F\e(Bsyslog\e$B$N%a%C%;!<%8$K$"$i$o$l$k%W%m%0%i%`L>$r@_Dj$7$^$9!#%G%U%)%k%H$O\e(B"pgpool"\e$B$G$9!#\e(B
+       </p>
+  </dd>
+
 <dt><a name="PID_FILE_NAME"></a>pid_file_name</dt>
 <dd>
 <p>
@@ -572,7 +616,8 @@ max_pool*num_init_children*2 <= (max_connections - superuser_reserved_connection
 
    \e$B$3$N\e(B \e$B%Q%i%a!<%?$O!"%M%C%H%o!<%/%1!<%V%k$,H4$1$?:]$J$I$K%X%k%9%A%'%C\e(B
    \e$B%/$,D9;~4VBT$?$5$l$k$N$rKI$0$?$a$N%?%$%`%"%&%HCM$rICC10L$G;XDj$7$^\e(B
-   \e$B$9!#%G%U%)%k%H$O\e(B20\e$BIC$G$9!#\e(B0\e$B$r;XDj$9$k$H%?%$%`%"%&%H=hM}$r$7$^$;$s!#\e(B
+   \e$B$9!#%G%U%)%k%H$O\e(B20\e$BIC$G$9!#\e(B0\e$B$r;XDj$9$k$H%?%$%`%"%&%H=hM}$r$7$^$;$s\e(B
+   (\e$B$9$J$o$A\e(B TCP/IP \e$B$N%?%$%`%"%&%H$^$GBT$D$3$H$K$J$j$^$9\e(B)\e$B!#\e(B
 
    \e$B$J$*!"%X%k%9%A%'%C%/$rM-8z$K$9$k$H!"%X%k%9%A%'%C%/$N$?$a$NM>J,$N@\\e(B
    \e$BB3$,\e(B1\e$B$DI,MW$K$J$j$^$9$N$G!"\e(BPostgreSQL\e$B$N\e(Bpostgresql.conf\e$B$N@_Dj9`L\$N\e(B
@@ -594,6 +639,8 @@ max_pool*num_init_children*2 <= (max_connections - superuser_reserved_connection
 <dd>
 <p>
    \e$B%X%k%9%A%'%C%/$r9T$&$?$a$N\e(BPostgreSQL\e$B%f!<%6L>$G$9!#\e(B
+   \e$B$3$N%f!<%6L>$O\e(BPostgreSQL\e$B$KEPO?:Q$_$G$J$1$l$P$J$j$^$;$s!#\e(B
+\e$B$5$b$J$$$H!"%X%k%9%A%'%C%/$,%(%i!<$H$J$j$^$9!#\e(B
 \e$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O@_Dj%U%!%$%k$r:FFI$_9~$_$7$F$/$@$5$$!#\e(B
 </p>
 
@@ -749,16 +796,27 @@ false\e$B$K$9$k$H!"%U%'%$%k%*!<%P$;$:!"C1$K%(%i!<$,%l%]!<%H$5$l$F%;%C%7%g%s$,@ZCG
 <dt><a name="BACKEND_HOSTNAME"></a>backend_hostname</dt>
 <dd>
 <p>
-\e$B;HMQ$9$k\e(BPostgreSQL\e$B%5!<%P$N%[%9%HL>$r;XDj$7$^$9!#6uJ8;z$r;XDj$9$k$H\e(BUNIX\e$B%I\e(B
-\e$B%a%$%s%=%1%C%H$G@\B3$7$^$9!#\e(B
+\e$B;HMQ$9$k\e(BPostgreSQL\e$B%5!<%P$N%[%9%HL>$r;XDj$7$^$9!#\e(B
+pgpool-II\e$B$O!"$3$N%[%9%HL>$r;H$C$F\e(BPostgreSQL\e$B$HDL?.$7$^$9!#\e(B
+</p>
+TCP/IP\e$B$r;HMQ$9$k>l9g!"%[%9%HL>$^$?$O\e(BIP\e$B%"%I%l%9$r;XDj$G$-$^$9!#\e(B
+"/"\e$B$G;O$^$kJ8;zNs$r;XDj$9$k$H!"\e(BTCP/IP\e$B$G$O$J$/!"\e(BUNIX\e$B%I%a%$%s%=%1%C%H$r;HMQ$5$l!"\e(B
+\e$B%G%#%l%/%H%jL>$H$_$J$7$F$=$3$K%=%1%C%H%U%!%$%k$,:n@.$5$l$k$3$H$K$J$j$^$9!#\e(B
+\e$B6uJ8;z\e(B(<code>''</code>)\e$B$r;XDj$9$k$H!"\e(B<code>/tmp</code>\e$B2<$K:n@.$7$?\e(BUNIX\e$B%I%a%$%s%=%1%C%H$G@\B3$7$^$9!#\e(B
+</p>
+<p>
 \e$B<B:]$K$O!"\e(B"backend_hostname"\e$B$N8e$K\e(B0, 1, 2...\e$B$H?t;z$rIU2C$7$F;HMQ$9$kJ#?t\e(B
-\e$B$N\e(BPostgreSQL\e$B$r6hJL$7$^$9!#$3$N?t;z$N$3$H$r!V\e(BDB\e$B%N!<%I\e(BID\e$B!W$H8F$S$^$9!#\e(B
+\e$B$N\e(BPostgreSQL\e$B$r6hJL$7$^$9\e(B(\e$B$?$H$($P\e(B<code>backend_hostname0</code>)\e$B!#\e(B
+\e$B$3$N?t;z$N$3$H$r!V\e(BDB\e$B%N!<%I\e(BID\e$B!W$H8F$S!"\e(B0\e$B$+$i3+;O$7$^$9!#\e(B
 DB\e$B%N!<%I\e(BID == 0\e$B$N\e(BPostgreSQL\e$B$O!"FCJL$K!V%^%9%?!<\e(BDB\e$B!W$H8F$P$l$^$9!#\e(B
-\e$B$J$*!"J#?t$N\e(BDB\e$B%N!<%I$r1?MQ$7$F$$$k>l9g!">r7o$K$h$C$F$O%^%9%?!<\e(BDB\e$B$,%@%&%s$7$F$b\e(B
+\e$BJ#?t$N\e(BDB\e$B%N!<%I$r1?MQ$7$F$$$k>l9g!">r7o$K$h$C$F$O%^%9%?!<\e(BDB\e$B$,%@%&%s$7$F$b\e(B
 \e$B1?MQ$rB3$1$k$3$H$,$G$-$^$9!#$3$N>l9g$O!"2TF/Cf$+$D\e(BDB\e$B%N!<%I\e(BID\e$B$,$b$C$H$b\e(B
 \e$B<c$$$b$N$,?7$7$$%^%9%?!<\e(BDB\e$B$K$J$j$^$9!#\e(B
 </p>
 <p>
+\e$B$?$@$7!"%9%H%j!<%_%s%0%l%W%j%1!<%7%g%s%b!<%I$G1?MQ$7$F$$$k>l9g$O!"\e(BDB\e$B%N!<%I\e(BID\e$B$,\e(B0\e$B$N%N!<%I$K$OFCJL$J0UL#$O$J$/!"%W%i%$%^%j%N!<%I$+$I$&$+$,LdBj$K$J$j$^$9!#\e(B
+\e$B>\:Y$O\e(B<a href="#stream">Streaming Replication\e$B$X$NBP1~\e(B</a>\e$B$r$4Mw$/$@$5$$!#\e(B
+<p>
 1\e$BBf$7$+\e(BPostgreSQL\e$B$r;HMQ$7$J$$>l9g$O!"\e(B"backend_hostname0"\e$B$H$7$F$/$@$5$$!#\e(B
 </p>
 <p>
@@ -796,6 +854,7 @@ backend_port \e$B$O?7$7$/DI2C$7$?9T$r@_Dj%U%!%$%k:FFI$_9~$_$GDI2C$9$k\e(B
 backend_weight \e$B$O?7$7$/DI2C$7$?9T$r@_Dj%U%!%$%k:FFI$_9~$_$GDI2C$9$k$3$H$,$G$-$^$9!#\e(B
 pgpool-II 2.2.6/2.3\e$B0J9_$G$O!"@_Dj%U%!%$%k$N:FFI9~$G\e(Bbackend_weight\e$BCM$rJQ99$G$-$^$9!#\e(B
 \e$B?7$7$/@\B3$7$?%/%i%$%"%s%H%;%C%7%g%s$+$i!"$3$N?7$7$$\e(Bweight\e$BCM$,H?1G$5$l$^$9!#\e(B
+\e$B%^%9%?!<%9%l!<%V%b!<%I$K$*$$$F!"$"$k%9%l!<%V$KBP$7$F4IM}6HL3$r<B;\$9$kET9g>e!"Ld$$9g$o$;$,$=$N%9%l!<%V$KAw$i$l$k$N$rKI$.$?$$>l9g$KM-MQ$G$9!#\e(B
 </p>
 
 <dt><a name="BACKEND_DATA_DIRECTORY"></a>backend_data_directory</dt>
@@ -925,7 +984,8 @@ backend_hostname2...\e$B$G$bF1MM$K$J$j$^$9!#\e(B
 <h1><a name="connection_pool_mode"></a>\e$B%3%M%/%7%g%s%W!<%k%b!<%I\e(B</h1>
 <p>
 raw\e$B%b!<%I$K2C$(!"%3%M%/%7%g%s%W!<%j%s%0$,MxMQ$G$-$k$h$&$K$J$j$^$9!#\e(B
-\e$B@_Dj9`L\$O!"\e(Braw\e$B%b!<%I$G$N@_Dj9`L\$NB>$K0J2<$r@_Dj$7$^$9!#\e(B
+\e$B%3%M%/%7%g%s%W!<%k%b!<%I$rM-8z$K$9$k$K$O!"\e(B connection_cache \e$B$r\e(Bon\e$B$K$7$^$9!#\e(B
+\e$B0J2<$N@_Dj9`L\$,%3%M%/%7%g%s%W!<%k$NF0:n$K1F6A$rM?$($^$9!#\e(B
 </p>
 
 <dl>
@@ -1051,6 +1111,13 @@ raw\e$B%b!<%I!"%3%M%/%7%g%s%W!<%k%b!<%I$K2C$(!"0J2<$r@_Dj$7$^$9!#\e(B
 \e$B$3$N%j%9%H$K4^$^$l$J$$4X?t8F$S=P$7$r4^$`\e(BSELECT\e$B$O!"Ii2YJ,;6$NBP>]$H$O$J$i$:!"%l%W%j%1!<%7%g%s%b!<%I$K$*$$$F$O$9$Y$F$N\e(BDB\e$B%N!<%I$G<B9T$5$l$^$9!#\e(B
 (\e$B%^%9%?!<%9%l!<%V%b!<%I$K$*$$$F$O!"%^%9%?!<\e(B(primary)DB\e$B%N!<%I$K$N$_Aw?.$5$l$^$9\e(B)\e$B!#\e(B
 </p>
+<p>
+\e$B4X?tL>$K$O@55,I=8=$r;H$&$3$H$,$G$-$^$9!#\e(B
+\e$B$?$H$($P!"FI$_=P$7$N$_$N4X?t$,\e(B"get_"\e$B$"$k$$$O\e(B"select_"\e$B$G;O$^$k$J$i$P!"0J2<$N$h$&$J;XDj$,2DG=$G$9!#\e(B
+</p>
+<pre>
+white_function_list = 'get_.*,select_.*'
+</pre>
 
 <dt><a name="BLACK_FUNCTION_LIST"></a>black_function_list</dt>
 <dd>
@@ -1059,6 +1126,14 @@ raw\e$B%b!<%I!"%3%M%/%7%g%s%W!<%k%b!<%I$K2C$(!"0J2<$r@_Dj$7$^$9!#\e(B
 \e$B$3$N%j%9%H$K4^$^$l$k4X?t8F$S=P$7$r4^$`\e(BSELECT\e$B$O!"Ii2YJ,;6$NBP>]$H$O$J$i$:!"%l%W%j%1!<%7%g%s%b!<%I$K$*$$$F$O$9$Y$F$N\e(BDB\e$B%N!<%I$G<B9T$5$l$^$9!#\e(B
 \e$B$3$N%j%9%H$K4^$^$l$J$$4X?t8F$S=P$7$r4^$`\e(BSELECT\e$B$O!"Ii2YJ,;6$NBP>]$H$J$j$^$9!#\e(B
 </p>
+<p>
+\e$B4X?tL>$K$O@55,I=8=$r;H$&$3$H$,$G$-$^$9!#\e(B
+\e$B$?$H$($P!"FI$_=P$7$N$_$N4X?t$,\e(B"set_"\e$B!"\e(B"update_"\e$B!"\e(B"delete_"\e$B$"$k$$$O\e(B"insert_"\e$B$G;O$^$k$J$i$P!"0J2<$N$h$&$J;XDj$,2DG=$G$9!#\e(B
+</p>
+<pre>
+black_function_list = 'nextval,setval,set_.*,update_.*,delete_.*,insert_.*'
+</pre>
+
 <p>
 white_function_list\e$B$H\e(Bblack_function_list\e$B$NN>J}$r6u0J30$K$9$k$3$H$O$G$-$^$;$s!#\e(B
 \e$B$I$A$i$+0lJ}$N$_$K4X?tL>$r;XDj$7$^$9!#\e(B
@@ -1067,11 +1142,16 @@ white_function_list\e$B$H\e(Bblack_function_list\e$B$NN>J}$r6u0J30$K$9$k$3$H$O$G$-$
 pgpool-II 3.0\e$B$h$jA0$N%P!<%8%g%s$G$O!"8GDj$G\e(Bnextval\e$B$H\e(Bsetval\e$B$,=q$-9~$_$r9T$J$&4X?t$H$7$FG'<1$5$l$F$$$^$7$?!#\e(B
 \e$B$=$l$HF1$8F0:n$r9T$J$o$;$k$K$O!"0J2<$N$h$&$K\e(Bwhite_function_list\e$B$H\e(Bblack_function_list\e$B$r;XDj$7$^$9!#\e(B
 </p>
+<p>
 <pre>
 white_function_list = ''
-black_function_list = 'nextval,setval'
+black_function_list = 'nextval,setval,lastval,currval'
 </pre>
-
+</p>
+<p>
+\e$B>e$NNc$G$O!"\e(Bnextval\e$B$H\e(Bsetval\e$B$K2C$(!"\e(Blastval\e$B$H\e(Bcurrval\e$B$,DI2C$5$l$F$$$k$3$H$KCm0U$7$F$/$@$5$$!#\e(B
+lastval\e$B$H\e(Bcurrval\e$B$O=q$-9~$_$r9T$&4X?t$G$O$"$j$^$;$s$,!"$3$l$i$N4X?t$,Ii2YJ,;6$5$l$k$3$H$K$h$C$F!"%(%i!<$,H/@8$9$k$N$rL$A3$KKI$0$3$H$,$G$-$^$9!#\e(B
+black_function_list\e$B$K4^$^$l$k4X?t$OIi2YJ,;6$5$l$J$$$+$i$G$9!#\e(B
 <dt><a name="REPLICATE_SELECT"></a>replicate_select</dt>
 <dd>
 <p>
@@ -1423,7 +1503,7 @@ PostgreSQL\e$B%5!<%P$N$&$A!"\e(B1\e$BBf$,%@%&%s$9$k$H!"$=$N%5!<%P$r@Z$jN%$7$F=LB`1?
 
 <h2><p>\e$B%l%W%j%1!<%7%g%s%b!<%I8GM-$N%(%i!<$K$D$$$F\e(B</p></h2>
 <p>
-pgpool\e$B$O%l%W%j%1!<%7%g%s;~$K\e(B UPDATE\e$B!"\e(BDELETE \e$B$N99?77o?t$,$9$Y$F$N%N!<%I$,F1$8$G$J$$>l9g!"\e(Bfailover_if_affected_tuples_mismatch \e$B$,\e(B false\e$B$J$i$P!"\e(B
+\e$B%l%W%j%1!<%7%g%s%b!<%I$K$*$$$F!"\e(Bpgpool\e$B$O%l%W%j%1!<%7%g%s;~$K\e(B INSERT\e$B!"\e(BUPDATE\e$B!"\e(BDELETE \e$B$N99?77o?t$,$9$Y$F$N%N!<%I$,F1$8$G$J$$>l9g!"\e(Bfailover_if_affected_tuples_mismatch \e$B$,\e(B false\e$B$J$i$P!"\e(B
 \e$B0U?^E*$K9=J8%(%i!<$r5/$9\e(BSQL\e$B$rAw?.$9$k$3$H$K$h$C$F!"%H%i%s%6%/%7%g%s$r%"%\!<%H$5$;$^$9!#\e(B
 true\e$B$J$i$P!"%U%'%$%k%*!<%P$,5/$-$^$9!#$=$N:]!"0J2<$N$h$&$J%(%i!<%a%C%;!<%8$,I=<($5$l$^$9!#\e(B
 
@@ -1443,13 +1523,13 @@ true\e$B$J$i$P!"%U%'%$%k%*!<%P$,5/$-$^$9!#$=$N:]!"0J2<$N$h$&$J%(%i!<%a%C%;!<%8$,I
 <h1><a name="master_slave_mode"></a>\e$B%^%9%?!<%9%l!<%V%b!<%I\e(B</h1>
 <p>
   master/slave\e$B%b!<%I$O!"\e(BSlony-I\e$B$d\e(BStreaming Replication\e$B$N$h$&$J!"\e(Bmaster/slave\e$B<0$N%l%W%j%1!<%7%g%s%=%U%H$K%l%W%j%1!<%7%g%s$r$^$+$;$k%b!<%I$G$9!#\e(B
-\e$B$3$N%b!<%I$G;H$&$?$a$K$O!"%l%W%j%1!<%7%g%s%b!<%I$HF1$8$h$&$K!"\e(BDB\e$B%N!<%I$N%[%9%H>pJs$r%;%C%H$7!"\e(Bmaster_slave_mode\e$B$H\e(Bload_balance_mode\e$B$r\e(Btrue\e$B$K$7$^$9!#\e(B
-\e$B$3$N$H$-!"Ld$$9g$o$;$K$h$C$F%^%9%?!<\e(BDB\e$B$@$1$KLd$$9g$o$;$,Aw$i$l$k>l9g$H!"\e(BDB\e$B%N!<%I$N4V$G%m!<%I%P%i%s%9$5$l$FLd$$9g$o$;$,Aw$i$l$k>l9g$,$"$j$^$9!#\e(B
-\e$B%m!<%I%P%i%s%9$N>r7o$O%l%W%j%1!<%7%g%s%b!<%I$HF1$8$G$9!#\e(B
+\e$B$3$N%b!<%I$G;H$&$?$a$K$O!"%l%W%j%1!<%7%g%s%b!<%I$HF1$8$h$&$K!"\e(BDB\e$B%N!<%I$N%[%9%H>pJs\e(B(backend_hostname, backend_port, backend_weight, backend_flag \e$B$=$l$K%*%s%i%$%s%j%+%P%j$,I,MW$J$i$P\e(Bbackend_data_directory)\e$B$r%;%C%H$7!"\e(Bmaster_slave_mode\e$B$H\e(Bload_balance_mode\e$B$r\e(Btrue\e$B$K$7$^$9!#\e(B
+pgpool-II\e$B$O!"%l%W%j%1!<%7%g%s$5$l$kI,MW$N$"$kLd$$9g$o$;$O%^%9%?!<$KAw$j!"$=$NB>$NLd$$9g$o$;$r2DG=$J$i$PIi2YJ,;6$7$^$9!#Ld$$9g$o$;$K$h$C$F%^%9%?!<\e(BDB\e$B$@$1$KLd$$9g$o$;$,Aw$i$l$k>l9g$H!"\e(BDB\e$B%N!<%I$N4V$G%m!<%I%P%i%s%9$5$l$FLd$$9g$o$;$,Aw$i$l$k>l9g$,$"$j$^$9!#\e(B
 </p>
 
 <p>
 \e$B%^%9%?%9%l!<%V%b!<%I$G$O!"0l;~%F!<%V%k$N:n@.!"99?7!"8!:w$O%^%9%?%N!<%I$G$N$_<B9T$5$l$^$9!#\e(B
+SELECT\e$B$r%^%9%?$@$1$G<B9T$9$k$h$&$K6/@)$9$k$3$H$,$G$-$^$9!#$3$N$?$a$K$O!"\e(B/*NO LOAD BALANCE*/ \e$B%3%a%s%H$r\e(BSELECT\e$B$KA0$KA^F~$7$J$1$l$P$J$j$^$;$s!#\e(B
 </p>
 <p>
 \e$B%^%9%?!<%9%l!<%V%b!<%I$G$O!"\e(Bpgpool.conf\e$B$N\e(Breplication_mode\e$B$r\e(Bfalse\e$B$K!"\e(Bmaster_slave_mode
@@ -1477,7 +1557,7 @@ Streaming Replication\e$B$r;H$&>l9g$N?w7A$O\e(Bpgpool.conf.sample-stream\e$B$G$9!#\e
 <li>delay_threshold
 <p>
 \e$B%9%?%s%P%$%5!<%P$X$N%l%W%j%1!<%7%g%s$NCY1d5vMFEY$r%P%$%HC10L$G;XDj$7$^$9!#\e(B
-pgpool-II\e$B$O!"%X%k%9%A%'%C%/$N:]$K!"%9%?%s%P%$%5!<%P$NCY1d$,$3$NCM$rD6$($?>l9g$K$O!"\e(B
+pgpool-II\e$B$O!"%9%?%s%P%$%5!<%P$NCY1d$,$3$NCM$rD6$($?>l9g$K$O!"\e(B
 \e$BIi2YJ,;6$,M-8z$G$"$C$F$b$=$N\e(BDB\e$B%N!<%I$K\e(BSELECT\e$B$rAw?.$;$:!"%W%i%$%^%j%5!<%P$KAw$k$h$&$K$7$^$9!#\e(B
 delay_threshold\e$B$,\e(B0\e$B$N>l9g$O!"CY1d$N%A%'%C%/$r9T$J$$$^$;$s!#\e(B
 \e$B$^$?!"\e(Bdelay_threshold\e$B$,;XDj$5$l$F$$$F$b!"%X%k%9%A%'%C%/$,L58z$J$i$P!"$d$O$j$3$N5!G=$OF/$-$^$;$s!#\e(B
@@ -1584,6 +1664,82 @@ primary\e$B$H\e(Bstandby\e$B$N\e(BPostgreSQL\e$B$r5/F0$9$l$P!"\e(BStreaming replicatio
 \e$B$=$7$F!"\e(Bprimary\e$B%N!<%I$,%@%&%s$7$?$H$-$K!"<+F0E*$K\e(Bstandby\e$B%N!<%I$,DL>o$N\e(BPostgreSQL\e$B$H$7$FN)$A>e$,$j!"99?7Ld$$9g$o$;$r<u$1IU$1$k$h$&$K$J$j$^$9!#\e(B
 </p>
 
+<h2>Streaming Replication\e$B$G$N%/%(%j?6$jJ,$1\e(B</h2>
+<p>
+Streaming replication\e$B$H\e(BHot Standby\e$B$rMxMQ$7$F$$$k4D6-$G$O!"\e(Bprimary\e$B%N!<%I$KAw$C$F$h$$Ld$$9g$o$;!"\e(Bstandby\e$B$KAw$C$F$b$h$$Ld$$9g$o$;!"N>J}$KAw$i$J$1$l$P$J$i$J$$Ld$$9g$o$;$r87L)$K4IM}$9$kI,MW$,$"$j$^$9!#\e(B
+pgpool-II\e$B$N\e(BStreaming Replication\e$B%b!<%I$O!"$3$&$7$??6$jJ,$1$r<+F0E*$K9T$J$$$^$9!#\e(B
+\e$B$3$3$G$O!"$=$N%m%8%C%/$K$D$$$F@bL@$7$^$9!#\e(B
+</p>
+<p>
+\e$B$^$:!"Ld$$9g$o$;$N<oN`$K$h$C$F0J2<$N$h$&$KJ,$1$i$l$^$9!#\e(B
+</p>
+<p>
+<ul>
+ <li>Primary\e$B%N!<%I$K$7$+Aw$i$l$J$$Ld$$9g$o$;\e(B
+         <ul>
+          <li>INSERT, UPDATE, DELETE, COPY FROM, TRUNCATE, CREATE, DROP, ALTER, COMMENT
+          <li>SELECT ... FOR SHARE | UPDATE
+          <li>\e$B%H%i%s%6%/%7%g%s$NJ,N%%l%Y%k$,%7%j%"%i%$%6%V%k$N>l9g$N\e(BSELECT
+          <li>ROW EXCLUSIVE MODE\e$B$h$j$b6/$$\e(BLOCK
+          <li>\e$B%H%i%s%6%/%7%g%s%3%^%s%I$N0lIt\e(B
+                       <ul>
+                        <li>BEGIN READ WRITE, START TRANSACTION READ WRITE
+                        <li>SET TRANSACTION READ WRITE, SET SESSION CHARACTERISTICS AS TRANSACTION READ WRITE
+                        <li>SET transaction_read_only = off
+                       </ul>
+          <li>\e$BFsAj%3%_%C%H4XO"$N%3%^%s%I!#\e(BPREPARE TRANSACTION, COMMIT PREPARED, ROLLBACK PREPARED
+          <li>LISTEN, UNLISTEN, NOTIFY
+          <li>VACUUM
+          <li>\e$B%7!<%1%s%94XO"$N4X?t\e(B(nextval\e$B$d\e(Bsetval\e$B$J$I\e(B)\e$B$N8F$S=P$7!#\e(B
+          <li>\e$B%i!<%8%*%V%8%'%/%H$N@8@.\e(B
+         </ul>
+ <li>Primary/Standby\e$B$I$A$i$K$bAw$k$3$H$N$G$-$kLd$$9g$o$;!#\e(B
+\e$BIi2YJ,;6@_Dj$,M-8z$J$i$P!"\e(Bstandby\e$B%N!<%I$K$bAw?.$5$l$^$9!#\e(B
+\e$B$?$@$7!"%l%W%j%1!<%7%g%s$NCY1d>e8B\e(B(delay_threshold)\e$B$,@_Dj$5$l$F$$$F!"\e(B
+\e$B%l%W%j%1!<%7%g%s$NCY1d$,\e(Bdelay_threshold\e$B$r>e2s$C$F$$$k>l9g$OLd$$9g$o$;$O\e(BPrimary\e$B$KAw$i$l$^$9!#\e(B
+         <ul>
+          <li>\e$B>e5-0J30$N\e(BSELECT
+          <li>COPY TO
+          <li>DECLARE, FETCH, CLOSE
+          <li>SHOW
+         </ul>
+ <li>Primary/Standby\e$B$I$A$i$K$bAw$i$l$kLd$$9g$o$;\e(B
+         <ul>
+          <li>SET
+          <li>DISCARD
+          <li>DEALLOCATE ALL
+         </ul>
+</ul>
+</p>
+
+<p>
+\e$BL@<(E*$J%H%i%s%6%/%7%g%s$G$O!"0J2<$N$h$&$K$J$j$^$9!#\e(B
+<ul>
+ <li>BEGIN\e$B$J$I$N%H%i%s%6%/%7%g%s3+;O%3%^%s%I$O!"\e(BPrimary\e$B%5!<%P$KAw$i$l$^$9!#\e(B
+ <li>\e$BB3$/\e(BSELECT\e$B$J$I!"\e(BPrimary/Standby\e$B$I$A$i$K$bAw$k$3$H$N$G$-$kLd$$9g$o$;$O!"\e(BPrimary\e$B$N%H%i%s%6%/%7%g%sFb$G$=$N$^$^<B9T$5$l$k$+!"\e(BStandby\e$B%5!<%P$G<B9T$5$l$^$9!#\e(B
+ <li><p>
+INSERT\e$B$J$I!"\e(BStandby\e$B$KAw$k$3$H$N$G$-$J$$Ld$$9g$o$;$,8=$o$l$?>l9g$O!"\e(BPrimary\e$B%5!<%P$G<B9T$5$l$^$9!#\e(B
+\e$B0J8e!"\e(BSELECT\e$B$J$I!"K\Mh\e(BStandby\e$B$KAw?.$7$F$b9=$o$J$$%3%^%s%I$b\e(BPrimary\e$B%5!<%P$G<B9T$5$l$^$9!#\e(B
+\e$B$3$l$O!"%H%i%s%6%/%7%g%s$NCf$G<B9T$5$l$?\e(BINSERT\e$B$J$I$NLd$$9g$o$;$N7k2L$r\e(BSELECT\e$B$,D>$A$K;2>H$G$-$k$h$&$K$9$k$?$a$G$9!#\e(B
+\e$B$3$N>uBV$O!"%H%i%s%6%/%7%g%s$,JD$8$k$+!"%"%\!<%H$9$k$^$GB3$-$^$9!#\e(B
+</p>
+</ul>
+</p>
+
+<p>
+\e$BLd$$9g$o$;$,!"3HD%Ld$$9g$o$;%b!<%I$G<B9T$5$l$k>l9g$O!"Ld$$9g$o$;$N\e(Bparse\e$BCJ3,$G!"Ld$$9g$o$;$,Ii2YJ,;62DG=$+$I$&$+$GAw?.@h$,7h$^$j$^$9!#$=$N:]$NH=CG%k!<%k$O!"DL>o$N\e(BSQL\e$B$HF1$8$G$9!#\e(B
+\e$B$?$H$($PLd$$9g$o$;$,\e(BINSERT\e$B$J$i$P!"\e(BPrimary\e$B%5!<%P$G<B9T$5$l$k!"$H$$$&6q9g$G$9!#\e(B
+parse\e$B$KB3$/\e(Bbind, describe, execute\e$B$bF1$8\e(BDB\e$B%N!<%I$G<B9T$5$l$^$9!#\e(B
+</p>
+
+<p>
+[\e$BCm\e(B: SELECT\e$B$,Ii2YJ,;6$5$l$F\e(B Standby \e$B%N!<%I$G\e(B parse\e$B$,<B9T$5$l$F$+$i99?7%/%(%j$,Mh$?>l9g$O!"$=$N\e(BSELECT\e$B$O\e(BPrimary\e$B%N!<%I$G<B9T$5$l$J$1$l$P$J$j$^$;$s!#$=$N$?$a!"F1$8\e(BSELECT\e$B$,:FEY\e(BPrimary\e$B%N!<%I$G%Q!<%9$5$l$k$3$H$K$J$j$^$9!#\e(B]
+</p>
+
+<p>
+\e$B:G8e$K!"\e(Bpgpool-II\e$B$N%Q!<%5$,9=J8%(%i!<$HH=CG$7$?Ld$$9g$o$;$O\e(BPrimary\e$B%N!<%I$@$1$KAw$i$l$^$9!#\e(B
+</p>
+
 <h2>Streaming Replication\e$B$G$N%*%s%i%$%s%j%+%P%j\e(B</h2>
 <p>
 Streaming replication\e$B$rMxMQ$7$?%^%9%?%9%l!<%V%b!<%I$G$O!"%l%W%j%1!<%7%g%s%b!<%I$HF1$8$h$&$K%*%s%i%$%s%j%+%P%j$,MxMQ$G$-$^$9!#\e(B
@@ -1663,81 +1819,6 @@ PostgreSQL\e$B$N5/F0$K@.8y$7$?$i!"<!$N%9%F%C%W$K0\$j$^$9!#\e(B
 </ol>
 </p>
 
-<h2>Streaming Replication\e$B$G$N%/%(%j?6$jJ,$1\e(B</h2>
-<p>
-Streaming replication\e$B$H\e(BHot Standby\e$B$rMxMQ$7$F$$$k4D6-$G$O!"\e(Bprimary\e$B%N!<%I$KAw$C$F$h$$Ld$$9g$o$;!"\e(Bstandby\e$B$KAw$C$F$b$h$$Ld$$9g$o$;!"N>J}$KAw$i$J$1$l$P$J$i$J$$Ld$$9g$o$;$r87L)$K4IM}$9$kI,MW$,$"$j$^$9!#\e(B
-pgpool-II\e$B$N\e(BStreaming Replication\e$B%b!<%I$O!"$3$&$7$??6$jJ,$1$r<+F0E*$K9T$J$$$^$9!#\e(B
-\e$B$3$3$G$O!"$=$N%m%8%C%/$K$D$$$F@bL@$7$^$9!#\e(B
-</p>
-<p>
-\e$B$^$:!"Ld$$9g$o$;$N<oN`$K$h$C$F0J2<$N$h$&$KJ,$1$i$l$^$9!#\e(B
-</p>
-<p>
-<ul>
- <li>Primary\e$B%N!<%I$K$7$+Aw$i$l$J$$Ld$$9g$o$;\e(B
-         <ul>
-          <li>INSERT, UPDATE, DELETE, COPY FROM, TRUNCATE, CREATE, DROP, ALTER, COMMENT
-          <li>SELECT ... FOR SHARE | UPDATE
-          <li>\e$B%H%i%s%6%/%7%g%s$NJ,N%%l%Y%k$,%7%j%"%i%$%6%V%k$N>l9g$N\e(BSELECT
-          <li>ROW EXCLUSIVE MODE\e$B$h$j$b6/$$\e(BLOCK
-          <li>\e$B%H%i%s%6%/%7%g%s%3%^%s%I$N0lIt\e(B
-                       <ul>
-                        <li>BEGIN READ WRITE, START TRANSACTION READ WRITE
-                        <li>SET TRANSACTION READ WRITE, SET SESSION CHARACTERISTICS AS TRANSACTION READ WRITE
-                        <li>SET transaction_read_only = off
-                       </ul>
-          <li>\e$BFsAj%3%_%C%H4XO"$N%3%^%s%I!#\e(BPREPARE TRANSACTION, COMMIT PREPARED, ROLLBACK PREPARED
-          <li>LISTEN, UNLISTEN, NOTIFY
-          <li>VACUUM
-          <li>\e$B%7!<%1%s%94XO"$N4X?t\e(B(nextval\e$B$d\e(Bsetval\e$B$J$I\e(B)\e$B$N8F$S=P$7!#\e(B
-          <li>\e$B%i!<%8%*%V%8%'%/%H$N@8@.\e(B
-         </ul>
- <li>Primary/Standby\e$B$I$A$i$K$bAw$k$3$H$N$G$-$kLd$$9g$o$;!#\e(B
-\e$BIi2YJ,;6@_Dj$,M-8z$J$i$P!"\e(Bstandby\e$B%N!<%I$K$bAw?.$5$l$^$9!#\e(B
-\e$B$?$@$7!"%l%W%j%1!<%7%g%s$NCY1d>e8B\e(B(delay_threshold)\e$B$,@_Dj$5$l$F$$$F!"\e(B
-\e$B%l%W%j%1!<%7%g%s$NCY1d$,\e(Bdelay_threshold\e$B$r>e2s$C$F$$$k>l9g$OLd$$9g$o$;$O\e(BPrimary\e$B$KAw$i$l$^$9!#\e(B
-         <ul>
-          <li>\e$B>e5-0J30$N\e(BSELECT
-          <li>COPY TO
-          <li>DECLARE, FETCH, CLOSE
-          <li>SHOW
-         </ul>
- <li>Primary/Standby\e$B$I$A$i$K$bAw$i$l$kLd$$9g$o$;\e(B
-         <ul>
-          <li>SET
-          <li>DISCARD
-          <li>DEALLOCATE ALL
-         </ul>
-</ul>
-</p>
-
-<p>
-\e$BL@<(E*$J%H%i%s%6%/%7%g%s$G$O!"0J2<$N$h$&$K$J$j$^$9!#\e(B
-<ul>
- <li>BEGIN\e$B$J$I$N%H%i%s%6%/%7%g%s3+;O%3%^%s%I$O!"\e(BPrimary\e$B%5!<%P$KAw$i$l$^$9!#\e(B
- <li>\e$BB3$/\e(BSELECT\e$B$J$I!"\e(BPrimary/Standby\e$B$I$A$i$K$bAw$k$3$H$N$G$-$kLd$$9g$o$;$O!"\e(BPrimary\e$B$N%H%i%s%6%/%7%g%sFb$G$=$N$^$^<B9T$5$l$k$+!"\e(BStandby\e$B%5!<%P$G<B9T$5$l$^$9!#\e(B
- <li><p>
-INSERT\e$B$J$I!"\e(BStandby\e$B$KAw$k$3$H$N$G$-$J$$Ld$$9g$o$;$,8=$o$l$?>l9g$O!"\e(BPrimary\e$B%5!<%P$G<B9T$5$l$^$9!#\e(B
-\e$B0J8e!"\e(BSELECT\e$B$J$I!"K\Mh\e(BStandby\e$B$KAw?.$7$F$b9=$o$J$$%3%^%s%I$b\e(BPrimary\e$B%5!<%P$G<B9T$5$l$^$9!#\e(B
-\e$B$3$l$O!"%H%i%s%6%/%7%g%s$NCf$G<B9T$5$l$?\e(BINSERT\e$B$J$I$NLd$$9g$o$;$N7k2L$r\e(BSELECT\e$B$,D>$A$K;2>H$G$-$k$h$&$K$9$k$?$a$G$9!#\e(B
-\e$B$3$N>uBV$O!"%H%i%s%6%/%7%g%s$,JD$8$k$+!"%"%\!<%H$9$k$^$GB3$-$^$9!#\e(B
-</p>
-</ul>
-</p>
-
-<p>
-\e$BLd$$9g$o$;$,!"3HD%Ld$$9g$o$;%b!<%I$G<B9T$5$l$k>l9g$O!"Ld$$9g$o$;$N\e(Bparse\e$BCJ3,$G!"Ld$$9g$o$;$,Ii2YJ,;62DG=$+$I$&$+$GAw?.@h$,7h$^$j$^$9!#$=$N:]$NH=CG%k!<%k$O!"DL>o$N\e(BSQL\e$B$HF1$8$G$9!#\e(B
-\e$B$?$H$($PLd$$9g$o$;$,\e(BINSERT\e$B$J$i$P!"\e(BPrimary\e$B%5!<%P$G<B9T$5$l$k!"$H$$$&6q9g$G$9!#\e(B
-parse\e$B$KB3$/\e(Bbind, describe, execute\e$B$bF1$8\e(BDB\e$B%N!<%I$G<B9T$5$l$^$9!#\e(B
-</p>
-
-<p>
-[\e$BCm\e(B: SELECT\e$B$,Ii2YJ,;6$5$l$F\e(B Standby \e$B%N!<%I$G\e(B parse\e$B$,<B9T$5$l$F$+$i99?7%/%(%j$,Mh$?>l9g$O!"$=$N\e(BSELECT\e$B$O\e(BPrimary\e$B%N!<%I$G<B9T$5$l$J$1$l$P$J$j$^$;$s!#$=$N$?$a!"F1$8\e(BSELECT\e$B$,:FEY\e(BPrimary\e$B%N!<%I$G%Q!<%9$5$l$k$3$H$K$J$j$^$9!#\e(B]
-</p>
-
-<p>
-\e$B:G8e$K!"\e(Bpgpool-II\e$B$N%Q!<%5$,9=J8%(%i!<$HH=CG$7$?Ld$$9g$o$;$O\e(BPrimary\e$B%N!<%I$@$1$KAw$i$l$^$9!#\e(B
-</p>
 
 <h1>\e$B%Q%i%l%k%b!<%I\e(B</h1>
 <p>
@@ -2030,6 +2111,7 @@ md5\e$B$K4X$7$F$O!"\e(Bpool_passwd\e$B$H$$$&%Q%9%o!<%I%U%!%$%k$rJ;MQ$9$k$3$H$K$h$C$
 
 <p>
        pgpool-II\e$B$G$O!"$9$Y$F$N%b!<%I$G%/%(%j%-%c%C%7%e$rMxMQ$9$k$3$H$,$G$-$^$9!#\e(B
+\e$B%/%(%j%-%c%C%7%e$O!"\e(BSELECT\e$B$N7k2L$r:FMxMQ$9$k$3$H$K$h$j!"@-G=$r8~>e$5$;$^$9!#\e(B
   \e$BMxMQ$9$k>l9g$K$O!"\e(Bpgpool.conf\e$B$N@_Dj$r0J2<$N$h$&$K@_Dj$7$^$9!#\e(B
 <pre>
 enable_query_cache = true
@@ -2050,7 +2132,11 @@ CREATE TABLE pgpool_catalog.query_cache (
 <p>
 \e$B$?$@$7!"$3$NNc$G$O%9%-!<%^L>$,\e(B"pgpool_catalog"\e$B$H$J$C$F$$$k$N$G!"0c$&%9%-!<%^$r;H$&>l9g$OE,Ev$K=q$-49$($F$/$@$5$$!#\e(B
 </p>
-
+<p>
+<strong>\e$BCm0U\e(B: \e$B8=:_$N%/%(%j%-%c%C%7%e$N<BAu$G$O!"%-%c%C%7%e$,%G!<%?%Y!<%9>e$K:n@.$5$l$^$9!#\e(B
+\e$B$=$N$?$a!"<B9T$K$"$^$j;~4V$N$+$+$i$J$$$h$&$J\e(BSELECT\e$B$G$O!"%/%(%j%-%c%C%7%e$rM-8z$K$9$k$3$H$K$h$C$F!"$+$($C$FCY$/$J$k$3$H$,$"$j$^$9!#$^$?!"%/%(%j%-%c%C%7%e$NFbMF$O!"%F!<%V%k$,99?7$5$l$F$b$=$N$^$^$G$9!#\e(B
+\e$B<jF0$G>e5-%F!<%V%k$+$i:o=|$9$k$+!"\e(B-c \e$B%*%W%7%g%s\e(B(\e$B%/%(%j%-%c%C%7%e$N%/%j%"\e(B)\e$B$rDI2C$7$F\e(Bpgpool-II\e$B$r:F5/F0$9$kI,MW$,$"$j$^$9!#\e(B</strong>
+</p>
 
 <h1>pgpool-II\e$B$N5/F0$HDd;_\e(B<a name="start"></a></h1>
 <p>
@@ -2139,7 +2225,11 @@ SHOW\e$B$O\e(BSQL\e$B%3%^%s%I$G$9$,!"\e(Bpgpool-II\e$B$O0lIt$N\e(BSHOW\e$B%3%^%s%I$rFH<
   <li>pool_version pgpool-II\e$B$N%P!<%8%g%s\e(B</li>
 </ul>
 </p>
-<p>"pool_status" SQL \e$B$O0JA0$+$i$"$j$^$9$,!"B>$N\e(BSQL\e$B$O\e(Bpgpool-II 3.0\e$B$+$iDI2C$5$l$^$7$?!#\e(B
+<p>"pool_status" SQL \e$B$O0JA0$+$i$"$j$^$9$,!"B>$N\e(BSQL\e$B$O\e(Bpgpool-II 3.0\e$B$+$iDI2C$5$l$^$7$?!#\e(B</p>
+<p>
+<u>\e$BCm0U\e(B</u>: "pool"\e$B$H$$$&MQ8l$O!"\e(Bpgpool\e$B%W%m%;%9$K$h$C$F=jM-$5$l$k\e(BPostgreSQL\e$B%;%C%7%g%s$r;X$7$^$9!#\e(B
+pgpool\e$B$K$h$C$F=jM-$5$l$k%;%C%7%g%sA4BN$G$O$"$j$^$;$s!#\e(B
+</p>
 
 <h2>pool_status</h2>
 <p>"SHOW pool_status" \e$B$O@_Dj%Q%i%a!<%?$NL>A0$HCM!"@bL@$rI=<($7$^$9!#=PNO$N0lIt$r<($7$^$9!#\e(B
@@ -2160,10 +2250,10 @@ benchs2=# show pool_status;
 \e$B>uBV\e(B(status)\e$B$N0UL#$K$D$$$F$O!"\e(B<a href="#pcp_node_info">pcp_node_info\e$B%j%U%!%l%s%9\e(B</a>\e$B$G@bL@$5$l$F$$$^$9!#\e(B
 <pre>
 benchs2=# show pool_nodes;
-  hostname   | port | status |     lb_weight     
--------------+------+--------+-------------------
- 127.0.0.1   | 5432 | 2      | 1073741823.500000
- 192.168.1.7 | 5432 | 3      | 1073741823.500000
+  id  |  hostname   | port | status | lb_weight     
+------+-------------+------+--------+-----------
+   0  | 127.0.0.1   | 5432 | 2      | 0.5
+   1  | 192.168.1.7 | 5432 | 3      | 0.5
 (2 lignes)
 </pre>
 </p>
@@ -2185,13 +2275,13 @@ benchs2=# show pool_nodes;
 \e$B$^$?!"%G!<%?%Y!<%9L>$J$I$,I=<($5$l$k$N$O!"$=$N%W%m%;%9$K%U%m%s%H%(%s%I$+$i$N@\B3$,$"$k>l9g$K8B$j$^$9!#\e(B</p>
 <pre>
 benchs2=# show pool_processes;
- pool_pid | start_time | database  | username  | create_time | pool_counter
-----------+------------+-----------+-----------+-------------+--------------
- 4318     | 1281433036 |           |           |             |
- 4319     | 1281433036 |           |           |             |
- 4320     | 1281433036 | benchs2   | guillaume | 1281433038  | 1
- 4321     | 1281433036 |           |           |             |
- 4322     | 1281433036 |           |           |             |
+   pool_pid |     start_time      | database | username  |     create_time     | pool_counter 
+----------+---------------------+----------+-----------+---------------------+--------------
+ 8465     | 2010-08-14 08:35:40 |          |           |                     | 
+ 8466     | 2010-08-14 08:35:40 | benchs   | guillaume | 2010-08-14 08:35:43 | 1
+ 8467     | 2010-08-14 08:35:40 |          |           |                     | 
+ 8468     | 2010-08-14 08:35:40 |          |           |                     | 
+ 8469     | 2010-08-14 08:35:40 |          |           |                     | 
 (5 lines)
 </pre>
 <h2>pool_pools</h2>
@@ -2216,29 +2306,28 @@ benchs2=# show pool_processes;
 <p>\e$BJV5Q9T?t$O>o$K\e(Bnum_init_children*max_pool\e$B$K$J$j$^$9!#\e(B
 <pre>
 benchs2=# show pool_pools;
-
- pool_pid | start_time | pool_id | backend_id | database | username  | create_time | majorversion | minorversion | pool_counter | pool_backendpid | pool_connected 
-----------+------------+---------+------------+----------+-----------+-------------+--------------+--------------+--------------+-----------------+----------------
- 4318     | 1281433036 | 0       | 0          |          |           | 0           | 0            | 0            | 0            | 0               | 0
- 4318     | 1281433036 | 1       | 0          |          |           | 0           | 0            | 0            | 0            | 0               | 0
- 4318     | 1281433036 | 2       | 0          |          |           | 0           | 0            | 0            | 0            | 0               | 0
- 4318     | 1281433036 | 3       | 0          |          |           | 0           | 0            | 0            | 0            | 0               | 0
- 4319     | 1281433036 | 0       | 0          |          |           | 0           | 0            | 0            | 0            | 0               | 0
- 4319     | 1281433036 | 1       | 0          |          |           | 0           | 0            | 0            | 0            | 0               | 0
- 4319     | 1281433036 | 2       | 0          |          |           | 0           | 0            | 0            | 0            | 0               | 0
- 4319     | 1281433036 | 3       | 0          |          |           | 0           | 0            | 0            | 0            | 0               | 0
- 4320     | 1281433036 | 0       | 0          | benchs2  | guillaume | 1281433038  | 3            | 0            | 1            | 4327            | 1
- 4320     | 1281433036 | 1       | 0          |          |           | 0           | 0            | 0            | 0            | 0               | 1
- 4320     | 1281433036 | 2       | 0          |          |           | 0           | 0            | 0            | 0            | 0               | 0
- 4320     | 1281433036 | 3       | 0          |          |           | 0           | 0            | 0            | 0            | 0               | 0
- 4321     | 1281433036 | 0       | 0          |          |           | 0           | 0            | 0            | 0            | 0               | 0
- 4321     | 1281433036 | 1       | 0          |          |           | 0           | 0            | 0            | 0            | 0               | 0
- 4321     | 1281433036 | 2       | 0          |          |           | 0           | 0            | 0            | 0            | 0               | 0
- 4321     | 1281433036 | 3       | 0          |          |           | 0           | 0            | 0            | 0            | 0               | 0
- 4322     | 1281433036 | 0       | 0          |          |           | 0           | 0            | 0            | 0            | 0               | 0
- 4322     | 1281433036 | 1       | 0          |          |           | 0           | 0            | 0            | 0            | 0               | 0
- 4322     | 1281433036 | 2       | 0          |          |           | 0           | 0            | 0            | 0            | 0               | 0
- 4322     | 1281433036 | 3       | 0          |          |           | 0           | 0            | 0            | 0            | 0               | 0
+  pool_pid |     start_time      | pool_id | backend_id | database | username  |     create_time     | majorversion | minorversion | pool_counter | pool_backendpid | pool_connected 
+----------+---------------------+---------+------------+----------+-----------+---------------------+--------------+--------------+--------------+-----------------+----------------
+ 8465     | 2010-08-14 08:35:40 | 0       | 0          |          |           |                     |              |              |              |                 | 
+ 8465     | 2010-08-14 08:35:40 | 1       | 0          |          |           |                     |              |              |              |                 | 
+ 8465     | 2010-08-14 08:35:40 | 2       | 0          |          |           |                     |              |              |              |                 | 
+ 8465     | 2010-08-14 08:35:40 | 3       | 0          |          |           |                     |              |              |              |                 | 
+ 8466     | 2010-08-14 08:35:40 | 0       | 0          | benchs   | guillaume | 2010-08-14 08:35:43 | 3            | 0            | 1            | 8473            | 1
+ 8466     | 2010-08-14 08:35:40 | 1       | 0          |          |           |                     |              |              |              |                 | 
+ 8466     | 2010-08-14 08:35:40 | 2       | 0          |          |           |                     |              |              |              |                 | 
+ 8466     | 2010-08-14 08:35:40 | 3       | 0          |          |           |                     |              |              |              |                 | 
+ 8467     | 2010-08-14 08:35:40 | 0       | 0          |          |           |                     |              |              |              |                 | 
+ 8467     | 2010-08-14 08:35:40 | 1       | 0          |          |           |                     |              |              |              |                 | 
+ 8467     | 2010-08-14 08:35:40 | 2       | 0          |          |           |                     |              |              |              |                 | 
+ 8467     | 2010-08-14 08:35:40 | 3       | 0          |          |           |                     |              |              |              |                 | 
+ 8468     | 2010-08-14 08:35:40 | 0       | 0          |          |           |                     |              |              |              |                 | 
+ 8468     | 2010-08-14 08:35:40 | 1       | 0          |          |           |                     |              |              |              |                 | 
+ 8468     | 2010-08-14 08:35:40 | 2       | 0          |          |           |                     |              |              |              |                 | 
+ 8468     | 2010-08-14 08:35:40 | 3       | 0          |          |           |                     |              |              |              |                 | 
+ 8469     | 2010-08-14 08:35:40 | 0       | 0          |          |           |                     |              |              |              |                 | 
+ 8469     | 2010-08-14 08:35:40 | 1       | 0          |          |           |                     |              |              |              |                 | 
+ 8469     | 2010-08-14 08:35:40 | 2       | 0          |          |           |                     |              |              |              |                 | 
+ 8469     | 2010-08-14 08:35:40 | 3       | 0          |          |           |                     |              |              |              |                 | 
 (20 lines)
 </pre>
 </p>
@@ -2284,7 +2373,10 @@ benchs2=# show pool_version;
 <font color="red">\e$BCm0U\e(B: \e$B%*%s%i%$%s%j%+%P%j$r<B9T$9$kA0$K!"%^%9%?%N!<%I\e(B
 (\e$B2TF/Cf$N%N!<%I$N$&$A!"0lHVHV9f$,<c$$%N!<%I\e(B)\e$B>e$G$N\e(Bautovacuum\e$B$rDd;_$7$F$/$@$5$$!#\e(B
 \e$B%*%s%i%$%s%j%+%P%jCf$K\e(Bautovacuum\e$B$,F0$/$H!"%G!<%?%Y!<%9$NFbMF$,JQ2=$9$k2DG=@-$,$"$k$?$a!"\e(B
-\e$B%N!<%I4V$NF14|$,$-$A$s$H<h$l$J$/$J$k2DG=@-$,$"$j$^$9!#\e(B</font>
+\e$B%N!<%I4V$NF14|$,$-$A$s$H<h$l$J$/$J$k2DG=@-$,$"$j$^$9!#\e(B
+\e$B$3$N@)8B$O!"\e(Brsync\e$B$J$I$NC1=c$J%3%T!<J}K!$r;H$C$F$$$k>l9g$K$N$_E,MQ$5$l$^$9!#\e(B
+PostgreSQL\e$B$N\e(BPITR\e$B$r;H$C$F$$$k>l9g$OE,MQ$5$l$^$;$s!#\e(B
+</font>
 </p>
 -->
 
@@ -2731,7 +2823,7 @@ pgpool-II\e$B$NDd;_$,I,MW$K$J$j$^$9!#\e(B
 <p>
 PITR\e$B$rMxMQ$9$k>l9g$O!"$^$:3F%N!<%I$N%7%9%F%`$N;~9o$,$[$\0lCW$7$F$$$k$3$H$r3NG'$7$F$/$@$5$$!#\e(B
 \e$B$=$7$F!";vA0$K3F%N!<%I$G%"!<%+%$%V%m%0$N@_Dj$r9T$$!"%Y!<%9%P%C%/%"%C%W$r<hF@$7$^$9!#\e(B
-\e$B3F%N!<%I$r8DJL$K%j%9%H%"$G$-$k>uBV$K$J$C$?$i!"%"%W%j%1!<%7%g%s!"$^$?$O\e(Bpgpool-II\e$B$r0l;~E*$KDd;_$7$^$9!#\e(B
+\e$B%Y!<%9%P%C%/%"%C%W$,=*N;$7$?$i!"%"%W%j%1!<%7%g%s!"$^$?$O\e(Bpgpool-II\e$B$r0l;~E*$KDd;_$7$^$9!#\e(B
 \e$BDd;_8e!"$=$N;~9o$H<!$K5/F0$7$?;~9o$r5-O?$7$^$9!#\e(B
 \e$B$3$N0l;~E*$JDd;_$K$h$C$F!"%/%i%9%?A4BN$N%G!<%?$,0l4S@-$N$"$k>uBV$rJ]$C$?4|4V$,$G$-$^$9!#\e(B
 \e$B%Y!<%9%P%C%/%"%C%W$H%"!<%+%$%V%m%0$r;HMQ$7$F3F%N!<%I$r%j%9%H%"$9$k>l9g$O!"0l;~Dd;_4|4V$N??$sCf$"$?$j$N;~9o$r\e(Brecovery.conf\e$B$N\e(Brecovery_target_time\e$B$K;XDj$7$?$&$($G!"%j%+%P%j$r9T$C$F$/$@$5$$!#\e(B
@@ -2790,6 +2882,7 @@ PostgreSQL\e$B$N2TF/$7$F$$$k\e(BDB\e$B%5%P$HF15o$5$;$kJ}K!$G$9!#\e(B
 <p>
 pgpool-HA\e$B$O!"\e(Bheartbeat\e$B$J$I$rMxMQ$7$F\e(Bpgpool-II\e$B$rFs=E2=$7!"\e(Bpgpool-II\e$B<+BN$N2DMQ@-$r>e$2$k%=%U%H%&%'%"$G$9!#\e(B
 pgpool-II\e$B$HF1MM!"\e(Bpgpool\e$B%W%m%8%'%/%H$N%5%V%W%m%8%'%/%H$G$"$j!"\e(Bpgpool\e$B$N3+H/%5%$%H$G\e(BOSS\e$B$H$7$F8x3+$5$l$F$$$^$9!#\e(B
+</p>
 
 <h1><a name="troubleshooting"></a>\e$B%H%i%V%k%7%e!<%F%#%s%0\e(B</h1>
 <p>
@@ -4906,7 +4999,7 @@ INSERT/UPDATE/DELETE\e$B$O<+F0E*$K%^%9%?$N$_$KAw$i$l$^$9!#\e(BSELECT\e$B$K4X$7$F$OL
 <div class="copyright">
 <hr>
 <copyright>
-Copyright &copy; 2003 &ndash; 2010 pgpool Global Development Group
+Copyright &copy; 2003 &ndash; 2011 pgpool Global Development Group
 </copyright>
 </div>
 </body>