T

pgpool-IIがSERIALに対応

したとのこと

PostgreSQLがボトルネックになるサービスで負荷分散を組み込んだり、冗長性を要求される場合にレプリケーション用にpgpoolを利用したいケースはたくさんあるだろうが、これまで特にレプリケーションではみんな結構苦労していたと思う。

pgpoolのバックエンドサーバのミスマッチはSELECT時にどこかのテーブルの行数の違いを検出するもので、内容については関与していない。SERIALを指定したカラム(MySQLでいうとauto_incrementが指定されたカラム)の不整合が発生しても検知されないので、ここをキーとして構築されたサービスは大打撃となってしまう。

これまでざっとテストした限りではINSERT LOCKを有効にすればSERIALの不整合は防げるようなのだが、INSERT処理が複数のサーバで完了するまで待ちになってしまう(という理解でいいのかな?)ため負荷がシビアな環境ではそのオーバーヘッドを考えると躊躇せざるを得なかった。これでようやくこの問題ともおさらばできるかもしれない。

Posted by on 12月 22, 2008 in pgpool, PostgreSQL

コメントを残す