2.8. insert_lockテーブルの作成

ネイティブレプリケーションモードまたはスナップショットアイソレーションモードを使う予定のない場合は、本節は飛ばすことができます。

ネイティブレプリケーションモードまたはスナップショットアイソレーションモードでinsert_lockを利用したい場合は、排他制御用のテーブルpgpool_catalog.insert_lockを作成することを強く推奨します。 これがなくてもある程度はinsert_lock は動作します。 しかしその場合は、Pgpool-IIは挿入対象のテーブルに対してロックを行います。 これはPgpool-II 2.2と2.3 シリーズの動作と同じです。 このテーブルに対するロックは、VACUUMと競合するため、INSERT処理が長時間待たされ続ける可能性があります。

    $ cd pgpool-II-4.4.9/src/sql
    $ psql -f insert_lock.sql template1
   

insert_lock.sqlは、pgpool-II経由で利用するデータベース毎に必要になります。 ただし、"psql -f insert_lock.sql template1"の実行後に作成されたデータベースでは、新しいデータベース作成のためにテンプレートデータベースが複製されるため、これを実行する必要はありません。