Add new parameters in pgpool-II 3.2
authorYugo Nagata <nagata@sraoss.co.jp>
Fri, 18 May 2012 04:57:43 +0000 (13:57 +0900)
committerYugo Nagata <nagata@sraoss.co.jp>
Fri, 18 May 2012 04:57:43 +0000 (13:57 +0900)
- for Helth Check:
    helth_check_password, health_check_max_retries,
    helth_check_retry_delay
- for On Memory Query Cache:
    memory_cache_enabled, memqcache_method, memqcache_memcached_host,
    memqcache_memcached_port, memqcache_total_size, memqcache_max_num_cache,
    memqcache_expire, memqcache_quto_cache_invalidation, memqcache_maxcache,
    memqcache_cache_block_size, memqcache_oiddir,
    white_memqcache_table_list, black_memqcache_table_list

definePgpoolConfParam.php
lang/en.lang.php
lang/ja.lang.php
templates/pgconfig.tpl

index 54968073dd20716a926bb52725d6ca7b49f5a807..0f6437ccca0dafd6c72f35781cf0a4cca1b28a08 100644 (file)
@@ -443,6 +443,23 @@ $pgpoolConfigParam[$key]['type'] = 'C';
 $pgpoolConfigParam[$key]['default'] = 'nodoby';
 $pgpoolConfigParam[$key]['regexp'] = $userreg;
 
+$key = 'health_check_password';
+$pgpoolConfigParam[$key]['type'] = 'C';
+$pgpoolConfigParam[$key]['default'] = '';
+$pgpoolConfigParam[$key]['regexp'] = $anyelse;
+
+$key = 'health_check_max_retries';
+$pgpoolConfigParam[$key]['type'] = 'N';
+$pgpoolConfigParam[$key]['default'] = 0;
+$pgpoolConfigParam[$key]['min'] = 0;
+$pgpoolConfigParam[$key]['max'] = NUM_MAX;
+
+$key = 'health_check_retry_delay';
+$pgpoolConfigParam[$key]['type'] = 'N';
+$pgpoolConfigParam[$key]['default'] = 1;
+$pgpoolConfigParam[$key]['min'] = 0;
+$pgpoolConfigParam[$key]['max'] = NUM_MAX;
+
 #------------------------------------------------------------------------------
 # FAILOVER AND FAILBACK
 #-----------------------------------------------------------------------------
@@ -497,6 +514,79 @@ $pgpoolConfigParam[$key]['default'] = 0;
 $pgpoolConfigParam[$key]['min'] = -1;
 $pgpoolConfigParam[$key]['max'] = NUM_MAX;
 
+#------------------------------------------------------------------------------
+# ON MEMORY QUERY CACHE 
+#------------------------------------------------------------------------------
+
+$key = 'memory_cache_enabled';
+$pgpoolConfigParam[$key]['type'] = 'B';
+$pgpoolConfigParam[$key]['default'] = 'off';
+
+$key = 'memqcache_method';
+$pgpoolConfigParam[$key]['type'] = 'C';
+$pgpoolConfigParam[$key]['default'] = 'shmem';
+$pgpoolConfigParam[$key]['regexp'] = selectreg(array('shmem', 'memcached'));
+
+$key = 'memqcache_memcached_host';
+$pgpoolConfigParam[$key]['type'] = 'C';
+$pgpoolConfigParam[$key]['default'] = 'localhost';
+$pgpoolConfigParam[$key]['regexp'] = $hostreg;
+
+$key = 'memqcache_memcached_port';
+$pgpoolConfigParam[$key]['type'] = 'N';
+$pgpoolConfigParam[$key]['default'] = 11211;
+$pgpoolConfigParam[$key]['max'] = NUM_MAX;
+$pgpoolConfigParam[$key]['min'] = 1024;
+
+$key = 'memqcache_total_size';
+$pgpoolConfigParam[$key]['type'] = 'N';
+$pgpoolConfigParam[$key]['default'] = 67108864;
+$pgpoolConfigParam[$key]['max'] = PHP_INT_MAX;
+$pgpoolConfigParam[$key]['min'] = 0;
+
+$key = 'memqcache_max_num_cache';
+$pgpoolConfigParam[$key]['type'] = 'N';
+$pgpoolConfigParam[$key]['default'] = 1000000;
+$pgpoolConfigParam[$key]['max'] = PHP_INT_MAX;
+$pgpoolConfigParam[$key]['min'] = 0;
+
+$key = 'memqcache_expire';
+$pgpoolConfigParam[$key]['type'] = 'N';
+$pgpoolConfigParam[$key]['default'] = 0; 
+$pgpoolConfigParam[$key]['max'] = NUM_MAX;
+$pgpoolConfigParam[$key]['min'] = 0;
+
+$key = 'memqcache_auto_cache_invalidation';
+$pgpoolConfigParam[$key]['type'] = 'B';
+$pgpoolConfigParam[$key]['default'] = 'on';
+
+$key = 'memqcache_maxcache';
+$pgpoolConfigParam[$key]['type'] = 'N';
+$pgpoolConfigParam[$key]['default'] = 409600;
+$pgpoolConfigParam[$key]['max'] = PHP_INT_MAX;
+$pgpoolConfigParam[$key]['min'] = 0;
+
+$key = 'memqcache_cache_block_size';
+$pgpoolConfigParam[$key]['type'] = 'N';
+$pgpoolConfigParam[$key]['default'] = 1048576;
+$pgpoolConfigParam[$key]['max'] = PHP_INT_MAX;
+$pgpoolConfigParam[$key]['min'] = 0;
+
+$key = 'memqcache_oiddir';
+$pgpoolConfigParam[$key]['type'] = 'C';
+$pgpoolConfigParam[$key]['default'] = '/var/log/pgpool/oiddir';
+$pgpoolConfigParam[$key]['regexp'] = $dirreg;
+
+$key = 'white_memqcache_table_list';
+$pgpoolConfigParam[$key]['type'] = 'C';
+$pgpoolConfigParam[$key]['default'] = '';
+$pgpoolConfigParam[$key]['regexp'] = $anyelse;
+
+$key = 'black_memqcache_table_list';
+$pgpoolConfigParam[$key]['type'] = 'C';
+$pgpoolConfigParam[$key]['default'] = '';
+$pgpoolConfigParam[$key]['regexp'] = $anyelse;
+
 #------------------------------------------------------------------------------
 # OTHERS
 #------------------------------------------------------------------------------
index 0522d608b32e7e38cae0df36b3dc15dae38e486c..cde2290c26736d23e90d049ad19a18aa6b9500dd 100644 (file)
@@ -35,6 +35,7 @@ $message = array(
     'descBackend_weight' => 'Load balance weight when pgpool is running in the state of load balance mode',
     'descBackend_data_directory' => 'PostgreSQL database directory',
     'descBlack_function_list' => 'Comma separated functions which write to database',
+    'descBlack_memqcache_table_list' => 'Comma separated list of table names not to be cached',
     'descChild_life_time' => 'Life of an idle child process in seconds',
     'descChild_max_connections' => 'If child_max_connections connections were received, child exits',
     'descClient_idle_limit' => 'Timeout in seconds while waiting for a query from a client',
@@ -58,6 +59,10 @@ $message = array(
     'descHealth_check_timeout' => 'Pgpool does "health check" periodically to detect PostgreSQL servers down, '.
                                   'network communication problems or as such',
     'descHealth_check_user' => 'PostgreSQL user name for the health checking',
+    'descHealth_check_password' => 'PostgreSQL password of the user to perform health checking',
+    'descHealth_check_max_retries' => 'The maximum number of times to retry a failed health check before'.
+                                      ' giving up and initiating failover',
+    'descHealth_check_retry_delay' => 'The amount of time (in seconds) to sleep between failed health check retries',
     'descIgnore_leading_white_space' => 'If true, ignore leading white spaces of each query while pgpool judges '.
                                         'if the query is a SELECT so that it can be load balanced',
     'descInsert_lock' => ' If you replicate a table having SERIAL data type column, '.
@@ -77,6 +82,18 @@ $message = array(
     'descMaster_slave_mode' => 'Run in master/slave mode',
     'descMaster_slave_sub_mode' => 'The way to replicare in Master/slave mode',
     'descMax_pool' => 'Number of connection pools each pgpool server process are keeping',
+    'descMemory_cache_enabled' => 'Perform on memory query cache',
+    'descMemqcache_method' => 'Cache store method',
+    'descMemqcache_memcached_host' => 'Memcached host name',
+    'descMemqcache_memcached_port' => 'Memcached port number',
+    'descMemqcache_total_size' => 'Total memory size in bytes for storing memory cache',
+    'descMemqcache_max_num_cache' => 'Total number of cache entries',
+    'descMemqcache_expire' => 'Memory cache entry life time specified in seconds. 0 means infinite life time',
+    'descMemqcache_auto_cache_invalidation' => 'If true, invalidation of query cache is triggered'.
+                                               ' by corresponding DDL/DML/DCL',
+    'descMemqcache_maxcache' => 'Maximum SELECT result size in bytes',
+    'descMemqcache_cache_block_size' => 'Cache block size in bytes',
+    'descMemqcache_oiddir' => 'Temporary work directory to record table OIDs',
     'descNum_init_children' => 'Number of pgpool processes initially forked',
     'descParallel_mode' => 'Run in parallel mode',
     'descPcp_port' => 'The port number where pcp is running on',
@@ -114,6 +131,7 @@ $message = array(
     'descSystem_db_schema' => 'The schema name of system database',
     'descSystem_db_user' => 'The username when connection system database',
     'descWhite_function_list' => 'Comma separated functions those do not write to Database',
+    'descWhite_memqcache_table_list' => 'Comma separated list of table names to be cached',
 
     'errAlreadyExist' => 'It already exists.',
     'errFileNotExecutable' => 'File not executable',
index 0488899993d6b9975e176c5422b99d0642101c47..692cd036741fb43165dad6de1cabee9654602c55 100644 (file)
@@ -35,6 +35,7 @@ $message = array(
     'descBackend_weight' => 'ロードバランスモード時のSELECTを振り分ける「重み」の定義',
     'descBackend_data_directory' => 'PostgreSQLサーバのデータベースディレクトリ',
     'descBlack_function_list' => 'データベースに書き込みを行なうカンマ区切りの関数のリスト',
+    'descBlack_memqcache_table_list' => 'SELECT結果をキャッシュしたくないテーブル名のカンマ区切りのリスト',
     'descChild_life_time' => 'pgpoolの子プロセスの寿命',
     'descChild_max_connections' => '各pgpool子プロセスが終了するまでの接続回数',
     'descClient_idle_limit' => 'クライアントからのクエリの最大待ち時間(秒)',
@@ -53,6 +54,9 @@ $message = array(
     'descHealth_check_period' => 'ヘルスチェックを行う間隔(秒)',
     'descHealth_check_timeout' => 'ヘルスチェックが長時間待たされるのを防ぐためのタイムアウト値(秒)',
     'descHealth_check_user' => 'ヘルスチェックを行うためのPostgreSQLユーザ名',
+    'descHealth_check_password' => 'ヘルスチェックを行うためのPostgreSQLパスワード',
+    'descHealth_check_max_retries' => 'ヘルスチェックに失敗した後にリトライする回数',
+    'descHealth_check_retry_delay' => 'ヘルスチェックのリトライの間の間隔(秒)',
     'descIgnore_leading_white_space' => 'load balance時のSQL文行頭の空白を無視',
     'descInsert_lock' => 'INSERT時に自動的にトランザクションの開始,テーブルロック,トランザクションの終了',
     'descListen_addresses' => 'TCP/IPコネクションを受け付けるアドレス',
@@ -69,6 +73,18 @@ $message = array(
     'descMaster_slave_mode' => 'マスタ/スレーブモードでpgpoolを運転',
     'descMaster_slave_sub_mode' => 'マスタ/スレーブモードの伝播方法',
     'descMax_pool' => 'pgpoolの各サーバプロセスがキープするPostgreSQLへの最大コネクション数',
+    'descMemory_cache_enabled' => 'オンメモリクエリキャッシュの有効化',
+    'descMemqcache_method' => 'キャッシュストレージ',
+    'descMemqcache_memcached_host' => 'memcachedが動いているホスト名またはIPアドレス',
+    'descMemqcache_memcached_port' => 'memcachedのポート番号',
+    'descMemqcache_total_size' => 'キャッシュストレージに使用する共有メモリ領域のサイズ(バイト)',
+    'descMemqcache_max_num_cache' => 'キャッシュエントリの数',
+    'descMemqcache_expire' => 'クエリキャッシュの寿命(秒)。 0 は無限の寿命',
+    'descMemqcache_auto_cache_invalidation' => '更新されたテーブルに関連するキャッシュを無効化',
+    'descMemqcache_maxcache' => 'キャッシュされるSELECT実行結果の最大サイズ(バイト)',
+    'descMemqcache_cache_block_size' => 'キャッシュブロックサイズ(バイト)',
+    'descMemqcache_oiddir' => 'テーブルOIDを格納するディレクトリ',
+    'descNum_init_children' => 'Number of pgpool processes initially forked',
     'descNum_init_children' => 'preforkするpgpoolのサーバプロセス数',
     'descParallel_mode' => 'パラレルモードでpgpoolを運転',
     'descPcp_port' => 'pgpool-IIが受け付けているポート番号',
@@ -107,6 +123,7 @@ $message = array(
     'descSystem_db_schema' => 'System DBのスキーマ',
     'descSystem_db_user' => 'System DBに接続するときのユーザ名',
     'descWhite_function_list' => 'データベースに書き込みを行なわないカンマ区切りの関数のリスト',
+    'descWhite_memqcache_table_list' => 'SELECT結果をキャッシュしたいテーブル名のカンマ区切りのリスト',
 
     'errAlreadyExist' => 'すでに登録されています',
     'errFileNotExecutable' => 'コマンドを実行できません',
index 2b7c476954986cddcbf6fe609b9f59dc28ad5c75..be8a9be8a05084f53959725bc2da62599726bcec 100644 (file)
@@ -84,6 +84,7 @@ function cancelNode() {
       <li><a href="#health-check">Health Check</a></li>
       <li><a href="#failover">Failover and Failback</a></li>
       <li><a href="#recovery">Online Recovery</a></li>
+      <li><a href="#memqcache">On Memory Query Cache</a></li>
       <li><a href="#others">Others</a></li>
     </ul>
   </div>
@@ -1231,6 +1232,36 @@ function cancelNode() {
           {/if}
           <td><input type="text" name="health_check_user" value="{$params.health_check_user|escape}"/></td>
         </tr>
+
+        <tr> {if $error.health_check_password != null}
+          <th class="error"><label>{$message.descHealth_check_password|escape}</label>
+          <br />health_check_password (string)</th>
+          {else}
+          <th><label>{$message.descHealth_check_password|escape}</label>
+          <br />health_check_password (string)</th>
+          {/if}
+          <td><input type="text" name="health_check_password" value="{$params.health_check_password|escape}"/></td>
+        </tr>
+
+        <tr> {if $error.health_check_max_retries != null}
+          <th class="error"><label>{$message.descHealth_check_max_retries|escape}</label>
+          <br />health_check_max_retries (integer)</th>
+          {else}
+          <th><label>{$message.descHealth_check_max_retries|escape}</label>
+          <br />health_check_max_retries (integer)</th>
+          {/if}
+          <td><input type="text" name="health_check_max_retries" value="{$params.health_check_max_retries|escape}"/></td>
+        </tr>
+
+        <tr> {if $error.health_check_retry_delay != null}
+          <th class="error"><label>{$message.descHealth_check_retry_delay|escape}</label>
+          <br />health_check_retry_delay (integer)</th>
+          {else}
+          <th><label>{$message.descHealth_check_retry_delay|escape}</label>
+          <br />health_check_retry_delay (integer)</th>
+          {/if}
+          <td><input type="text" name="health_check_retry_delay" value="{$params.health_check_retry_delay|escape}"/></td>
+        </tr>
       </tbody>
     </table>
 
@@ -1376,6 +1407,174 @@ function cancelNode() {
       </tbody>
     </table>
 
+    {* --------------------------------------------------------------------- *
+     * On Memory Query Cache                                                 *
+     * --------------------------------------------------------------------- *}
+    <h3><a name="memqcache" id="memqcache">On Memory Query Cache</a></h3>
+
+    <table>
+      <thead>
+        <tr>
+          <th>{$message.strParameter|escape}</th>
+          <th>{$message.strValue|escape}</th>
+        </tr>
+      </thead>
+      <tfoot>
+        <tr>
+          <td colspan="2"></td>
+        </tr>
+      </tfoot>
+      <tbody>
+
+        <tr> {if $error.memory_cache_enabled != null}
+          <th class="error"><label>{$message.descMemory_cache_enabled|escape}</label>
+          <br />memory_cache_enabled</th>
+          {else}
+          <th><label>{$message.descMemory_cache_enabled|escape}</label>
+                    <br />memory_cache_enabled</th>
+          {/if}
+          {if $params.memory_cache_enabled == 'on'}
+          <td><input type="checkbox" name="memory_cache_enabled" id="memory_cache_enabled" value="true" checked="checked" /></td>
+          {else}
+          <td><input type="checkbox" name="memory_cache_enabled" id="memory_cache_enabled" value="false" /></td>
+          {/if}
+        </tr>
+
+        <tr> {if $error.memqcache_method != null}
+        <th class="error"><label>{$message.descMemqcache_method|escape}</label>
+        <br />memqcache_method *</th>
+        {else}
+        <th><label>{$message.descMemqcache_method|escape}</label><br />memqcache_method *</th>
+        {/if}
+        <td><select name="memqcache_method" id="memqcache_method">
+            <option value="shmem" {if $params.memqcache_method == 'shmem'}selected{/if}>shmem</option>
+            <option value="memcached" {if $params.memqcache_method == 'memcached'}selected{/if}>memcached</option>
+            </select></td>
+        </tr>
+
+        <tr><th class="category" colspan="2">Memcached specific</th></tr>
+
+        <tr> {if $error.memqcache_memcached_host != null}
+          <th class="error"><label>{$message.descMemqcache_memcached_host|escape}</label>
+          <br />memqcache_memcached_host (strign) *</th>
+          {else}
+          <th><label>{$message.descMemqcache_memcached_host|escape}</label>
+          <br />memqcache_memcached_host (string) *</th>
+          {/if}
+          <td><input type="text" name="memqcache_memcached_host" value="{$params.memqcache_memcached_host|escape}"/></td>
+        </tr>
+
+        <tr> {if $error.memqcache_memcached_port != null}
+          <th class="error"><label>{$message.descMemqcache_memcached_port|escape}</label>
+          <br />memqcache_memcached_port (integer) *</th>
+          {else}
+          <th><label>{$message.descMemqcache_memcached_port|escape}</label>
+          <br />memqcache_memcached_port (integer) *</th>
+          {/if}
+          <td><input type="text" name="memqcache_memcached_port" value="{$params.memqcache_memcached_port|escape}"/></td>
+        </tr>
+
+        <tr><th class="category" colspan="2">Shared memory specific</th></tr>
+
+        <tr> {if $error.memqcache_total_size != null}
+          <th class="error"><label>{$message.descMemqcache_total_size|escape}</label>
+          <br />memqcache_total_size (integer) *</th>
+          {else}
+          <th><label>{$message.descMemqcache_total_size|escape}</label>
+          <br />memqcache_total_size (integer) *</th>
+          {/if}
+          <td><input type="text" name="memqcache_total_size" value="{$params.memqcache_total_size|escape}"/></td>
+        </tr>
+
+        <tr> {if $error.memqcache_max_num_cache != null}
+          <th class="error"><label>{$message.descMemqcache_max_num_cache|escape}</label>
+          <br />memqcache_max_num_cache (integer) *</th>
+          {else}
+          <th><label>{$message.descMemqcache_max_num_cache|escape}</label>
+          <br />memqcache_max_num_cache (integer) *</th>
+          {/if}
+          <td><input type="text" name="memqcache_max_num_cache" value="{$params.memqcache_max_num_cache|escape}"/></td>
+        </tr>
+
+        <tr> {if $error.memqcache_cache_block_size != null}
+          <th class="error"><label>{$message.descMemqcache_cache_block_size|escape}</label>
+          <br />memqcache_cache_block_size (integer) *</th>
+          {else}
+          <th><label>{$message.descMemqcache_cache_block_size|escape}</label>
+          <br />memqcache_cache_block_size (integer) *</th>
+          {/if}
+          <td><input type="text" name="memqcache_cache_block_size" value="{$params.memqcache_cache_block_size|escape}"/></td>
+        </tr>
+
+        <tr><th class="category" colspan="2">Common</th></tr>
+
+        <tr> {if $error.memqcache_expire != null}
+          <th class="error"><label>{$message.descMemqcache_expire|escape}</label>
+          <br />memqcache_expire (integer) *</th>
+          {else}
+          <th><label>{$message.descMemqcache_expire|escape}</label>
+          <br />memqcache_expire (integer) *</th>
+          {/if}
+          <td><input type="text" name="memqcache_expire" value="{$params.memqcache_expire|escape}"/></td>
+        </tr>
+
+        <tr> {if $error.memqcache_auto_cache_invalidation != null}
+          <th class="error"><label>{$message.descMemqcache_auto_cache_invalidation|escape}</label>
+          <br />memqcache_auto_cache_invalidation *</th>
+          {else}
+          <th><label>{$message.descMemqcache_auto_cache_invalidation|escape}</label>
+                    <br />memqcache_auto_cache_invalidation *</th>
+          {/if}
+          {if $params.memqcache_auto_cache_invalidation == 'on'}
+          <td><input type="checkbox" name="memqcache_auto_cache_invalidation" id="memqcache_auto_cache_invalidation" value="true" checked="checked" /></td>
+          {else}
+          <td><input type="checkbox" name="memqcache_auto_cache_invalidation" id="memqcache_auto_cache_invalidation" value="false" /></td>
+          {/if}
+        </tr>
+
+        <tr> {if $error.memqcache_maxcache != null}
+          <th class="error"><label>{$message.descMemqcache_maxcache|escape}</label>
+          <br />memqcache_maxcache (integer) *</th>
+          {else}
+          <th><label>{$message.descMemqcache_maxcache|escape}</label>
+          <br />memqcache_maxcache (integer) *</th>
+          {/if}
+          <td><input type="text" name="memqcache_maxcache" value="{$params.memqcache_maxcache|escape}"/></td>
+        </tr>
+
+        <tr> {if $error.memqcache_oiddir != null}
+          <th class="error"><label>{$message.descMemqcache_oiddir|escape}</label>
+          <br />memqcache_oiddir (string) *</th>
+          {else}
+          <th><label>{$message.descMemqcache_oiddir|escape}</label>
+          <br />memqcache_oiddir (string) *</th>
+          {/if}
+          <td><input type="text" name="memqcache_oiddir" value="{$params.memqcache_oiddir|escape}"/></td>
+        </tr>
+
+        <tr> {if $error.white_memqcache_table_list != null}
+          <th class="error"><label>{$message.descWhite_memqcache_table_list|escape}</label>
+          <br />white_memqcache_table_list (string)</th>
+          {else}
+          <th><label>{$message.descWhite_memqcache_table_list|escape}</label>
+          <br />white_memqcache_table_list (string)</th>
+          {/if}
+          <td><input type="text" name="white_memqcache_table_list" value="{$params.white_memqcache_table_list|escape}"/></td>
+        </tr>
+
+        <tr> {if $error.black_memqcache_table_list != null}
+          <th class="error"><label>{$message.descBlack_memqcache_table_list|escape}</label>
+          <br />black_memqcache_table_list (string)</th>
+          {else}
+          <th><label>{$message.descBlack_memqcache_table_list|escape}</label>
+          <br />black_memqcache_table_list (string)</th>
+          {/if}
+          <td><input type="text" name="black_memqcache_table_list" value="{$params.black_memqcache_table_list|escape}"/></td>
+        </tr>
+
+      </tbody>
+    </table>
+
     {* --------------------------------------------------------------------- *
      * Others                                                                *
      * --------------------------------------------------------------------- *}