第13回InfoTalkに参加しました

と、いうわけでメモ。

PostgreSQL9.0?

8.5 = 9.0 あと2~3ヶ月でリリーススケジュールが見えてくる・・・と思うとのこと。

新機能予定

  • 組み込みReplication
  • Join removeal
  • EXCLUDE制約
  • EXPLAIN BUFFERS

PostgreSQLのReplication

2つの技術の合せ技

  • Streaming Replication
  • WAL転送=ログ転送 ※MySQLはクエリ転送
  • OracleのDataGuardに似ているらしい
  • PITRを利用したWarm Standbyよりも信頼性が高い
  • Hot Standby
  • Standby側で検索クエリを実行できるようにする技術 ※Warm Standbyは8.2くらいから正式に使えたはず。 PostgreSQLのReplicationのいいところ:
  • (warm standyと比較して)信頼性が高い
  • (warm standyと比較して)待機系のリソースを活用できる
  • (warm standyと比較して)Replicationのオーバーヘッドが少ない
  • (クエリ転送方式と比較して?)SQLの制約が少ない
  • ラージオブジェクトが使える
  • DB、テーブル作成もレプリケーションできる ※これはクエリ転送方式でもできるはず 制約:
  • DB単位・テーブル単位のレプリケーションはできない
  • Master/SlaveでPostgreSQL・OSバージョン・ハードウェアアーキテクチャが同じでないとならない
  • 負荷分散・Failover・クエリ切り分け機能はない

pgpool-II

いいところ=多機能:

  • 同期レプリケーション(shared nothing)
  • 他のレプリケーションソフトとの連携(master-slaveモード)
  • pgpool-II ユーザマニュアルが参考になりそう。
  • 負荷分散
  • Failover
  • パラレルクエリ
  • オンラインリカバリ(オンラインとはいえ無停止ではない。一瞬止める)
  • 管理画面あり

デモ

Vine on Let's noteでpgbenchしてみたり。

Q&A

Q: なぜSlonyから本体組み込みに(石井さんが)しようと思ったのか? A: PostgreSQLはポリシーとしてレプリケーション機能を外だししていた。 Q: MySQLのような大規模対応のためのスケーラビリティ対応ってできる?memcachedとの併用などは? A: memcachedと併用できるらしい。 Q: pgpool-IIで通らないクエリは? A: 副作用を伴う関数(ただし一部(nextvalなど)は対応している)。hintのようなものを利用して指示することもできる。current_timestampやlarge objectについてはうまく扱えるように(最新バージョンで)なった。

ヒトコト

Replicationの部分では、ようやくMySQLに追いつき始めた感じ。 今日の石井さんのお話は、あまり深い内容ではなくて、軽い紹介+デモのみ。 しかし、同期レプリケーションっていつのまにか9.0には含まれなくなったのか・・・知らなかった~。


See also