Postgresのレプリケーション

WEB+DB Press vol.35を今更読んで、前から気になっていたPostgresのレプリケーションについてメモ。
ただし、文章中にPostgres8.1.4とか出てくるので情報が古い、アンド、全然調べていないので未確認情報もあると思うので、本当にメモ程度ですね...

pg-pool II

  • コネクションプーリング
  • レプリケーション
    • 同期型
  • 負荷分散
  • パラレルクエリ
    • カラム i の値が10以下の時はノードAから、11以上の場合はノードBよりSELECTして、検索結果をマージ
    • 論理的には、ノードを増やせば増やすほど検索性能が上がる
    • ただしJOINを伴うような複雑な問い合わせは、あまり性能が出ない
  • レプリケーションモードかパラレルクエリモードのどちらかしか選べない
  • pg-pool adminによるGUIでの管理
  • pg-poolが落ちると、元も子もない
    • 以前ポスグレのカンファレンスで、pg-pool自体のレプリケーション検討って言ってたけど、もう実装されてるんかな??

PostgresForest

  • レプリケーション
    • 同期型
    • SELECTはノードのどれかに問い合わせ
    • オンラインリカバリが可能
  • 縮退運転から正常運転までに2つのフェーズがある
    • フェーズ1
      • ノードの差分を更新
    • フェーズ2
      • ノードの差分を更新している間の差分を更新
      • フェーズ2処理時はマスタの更新も止まる
      • アプリケーションからは処理を継続しているように見える
  • pg-poolみたいにデーモンとかいないのかな??
    • 仮想化モジュールで対応してる??(未確認)
  • そういえば、前は8.3に対応してなったけど、今は対応してるみたい

PGCluster

  • レプリケーション
  • PGCluster II
    • Oracle RACのようにディスクをシェアするシェアードエブリシング方式
      • ちなみにpg-poolは、ディスクをシェアしないシェアードナッシング方式
    • 高可用性
  • 三谷さん
    • 聞く限り三谷さんほぼ一人で開発されてる??
    • ちょっとそれは怖いかも...笑
    • でもサポートとかは、かなり誠意を以って対応してもらえるとも
    • いつ寝てるんだという噂も...笑

Slony-I

  • シングルマスタ/マルチスレーブ構成
    • マスタとスレーブは非同期で同期
    • 非同期なので、復旧手順を詰める必要がありそう
  • 各ノードにSlonデーモンというのが動いている
    • これが落ちたらどうするんやろう??

一度色々試してみたいですねー。