PGCon2012

ちょっと遅くなったけどPGCon2012のレポっす。

ということで今年もPostgreSQL Conference 2012 | 日本PostgreSQLユーザ会へ行ってきました。場所は昨年と同様に品川APの会議室。
9:30に到着したら既にエレベータホール前に大行列!ここでK俣君と合流。
入場して基調講演を聞くための場所を確保する。
今回の資料一式。

10:00になった。PGCon開始。

K1 CANF PostgreSQL project

  • フランス語は全く分からなかったので、実はこのセッションの内容は全く自信なし。
    • 通訳の人も頑張っていたとは思うけど・・・。
  • フランスの社会保障システムのシステム更改時にPostgreSQLを採用したという話。
  • COBOLを使ったシステム。DBSPというブリッジ用のミドルウェア(?)を使ってPostgreSQLと接続。
  • カラムのデータ型としてchar系ではなくbyteaを使っている?(自信なし)
  • データの移行はCOBOLアプリ→DBSP→PostgreSQL経由で実施。
    • データ突合含めて24時間以内に完了させた。
  • クエリの修正はほとんどなかったらしい。
  • データベース構成の話。ここがきちんと理解出来なかった・・・。
    • データベースサイズはかなり大きい。総計で4TB。
  • 管理ツールの話。担当セクションによって、pgAdmin, phpPgAdmin, psqlのどれを使うのかが分かれているのが面白い。
  • HA化の話。ここも良く分からなかった。PostgreSQLの話というより、HWのレプリカ機能を使っているように思えたのだが・・・
  • 性能の話。以前使っていたDBMSよりPostgreSQLのほうが遥かに高速。特に並列性が高いことが、このシステムでは有利に働いた。
質疑応答
  • PostgreSQLを使った理由は?
  • このプロジェクトの技術者の数は?
    • フルタイムの技術者が8〜10人

K2 An Overview of PostgreSQL 9.2

  • おそらく来場者のほとんどが一番期待していたセッションではないかと。
  • 講師はRobert Haas
    • EDBの偉い人
    • 石井氏@SRA OSS Inc. から招待してもらった。
  • 9.2の大きな改善項目
  • 読み取りスケーラビリティが大きく向上。
    • "Fast path"ロックによるコンフリクトの削減
    • クリティカルセクション区間の現象
    • WALログフラッシュ改善。現実的なシステムでの効果が期待される。
    • 並列WAL挿入。ただし、現状はPending。
  • 書き込みありのケースでもスケーラビリティが向上。
  • Index Only Scan
    • この改善の肝はその機能そのものではなく、可視性マップがクラッシュリカバリに対応したこと。
    • Oracle, MySQLには以前からあった機能。これで追いついた。
  • 消費電力節約
    • idle状態での電力を減らす
    • Wakeup回数を11.5回(9.1)→7.5回(9.2)に削減
      • (´-`).oO でも、具体的にどのくらい削減できるのかピンとこなかった・・・
      • 今までのPostgreSQL改善にない、新たな視点の改善。
      • PostgreSQLを使えば「環境配慮製品」と言える!?
  • その他の改善
    • JSON
    • Range Types RDBMSではPostgreSQLのみの高度な機能かも。
    • プランナオペレータの追加、ソート性能向上によるパフォーマンス改善
    • KaiGai氏のパッチによるrowレベルセキュリティ強化
    • 特定のALTER TABLE操作(varcharサイズ変更等)時にテーブル再生成を行わない。
  • 今後の展開
    • バッファ処理の並列化
    • Full Page Writeの改善
      • ただ、(現状でも?)configurationでなんとかなるレベル
    • Lock Content改善。CPU数が32以上になったら、これが壁になりそう。
質疑応答
  • スケール数が32までの結果しかないのは何故?
    • 測定環境がなかった(笑) 64コア等のマシンがあれば貸して欲しい(笑)
  • NUMA問題への対応は?
    • 今のところ効果不明。
  • JSON型対応の問題点とは?
    • どこまで対応すべきか方針がFixしていない?
  • SSDに特化したパフォーマンス向上戦略はとらないのか?
    • No!と即答。
    • SSD特化の有効な最適化案はないという見解。
  • Streaing Replicationのカスケード上限は?
    • 知らない!と即答(笑)
  • 9.2のリリース時期
    • OSS製品故、確約は出来ないが2012年9月頃にリリースしたいと考えている。

Intermission

  • ランチセッションは欠席
  • 昼食は蒙古タンメン@中本
  • 昼休み時間に稲葉氏とちょっとお話。
    • 今回のフランスの適用事例の話は石井氏と稲葉氏がフランスのカンファレンスへ行ったときに聞いたものらしい。良い事例紹介だと思ったので、今回のPCGonに招待したとのこと。

B1 いざ出陣!DB盤石化に向けたPostgreSQL設計/運用

質疑応答
  • 監査に関するガイドラインがないというツッコミ by O原さん
  • WALのサイズ変更のチューニングって効果的なの? by ぬこ@横浜
    • 回答がよく分からなかった&今一つ納得出来ないんだけど・・・
    • checkpoint_segmentsの調整だけで十分じゃね?
  • ガイドラインとしてのおすすめツールはないのか?という質問もしたかったが時間切れ。

B2 商用DBからPostgreSQLへの移行

  • 某商用DBMS(Oracle10gR2なんて誰も言ってないぞ!)からPostgreSQLへの移行を行うときのガイドライン
  • ガイドライン自体はコスト試算からデータ移行までサポート。
  • 発表ではデータ移行の手順がメイン
  • 移行には某移行ツール(ora2pgなんて誰も言ってないぞ!)をメインで使う。
  • データのインポートではpg_bulkloadを推奨。
質疑応答
  • このガイドラインによる移行実績はあるのか? by O原さん
    • まだ実績はない。
  • 考慮すべき要素がいろいろ足りないという厳しいツッコミ by O原さん
    • ラージオブジェクトの移行や、トリガ/ストアドプロシージャ移行の話など。

B3 PostgreSQLがより使いやすく進化した Postgres Plus Advanced Server の実力とは?

  • 株式会社アシストの講演
    • ここもPPASサポートをやっているのね。
  • PPASが強化した機能
    • ストアドプロシージャ
    • 監査
    • ボトルネック特定用ツール(DRITA)
      • Oracleの待機イベント相当のイベントを35種類サポート。今後も強化予定。
    • PostgreSQL Enterprise Manager(PEM)
    • PL/pgSQLの強化
      • プロシージャ、パッケージのサポート
      • Oracle PL/SQL構文のサポート
      • PL/SQLの移行が非常に容易になる。SQLも一部Oracle構文をサポート。
    • 実行計画制御(HINT句導入)
      • PostgreSQLコミュニティではHINTは「遅れた考え方」として否定しているが、PPASではあえて導入。
  • 性能に関してはPostgreSQLと同等。
  • 今後の取組み
    • PPASの9.2対応
    • Postgres-XC?検証等をやるみたい。

A4 外部データラッパによるPostgreSQLの拡張

  • 個人的に一番楽しみにしていたトラック。
  • 講師はs87さん
  • 外部データラッパの概要の紹介
  • 実装済みの外部データラッパの紹介
    • しまった、JPUG勉強会向けに作成したxml_fdwもPGXNとかに登録しておけば紹介してもらえたのに・・・orz
  • 外部データラッパによる異種DBMS結合など、外部データラッパのメリットの紹介
  • 外部データラッパ制御コマンドの簡単な説明。
  • 外部データへのアクセスがどのような経路で行われるかの説明。これは分かりやすい。
  • C言語による具体的な実装方法・・・が、ここはさわりのみ紹介。
    • 講演後にs87さんと話したけど、ここをきっちり説明するには30分という枠じゃ全然足りないとのこと。
    • そりゃそうか。JPUG勉強会のxml_fdwでも30分では説明不十分だったし・・・。
  • Tips
    • ResourceOwnerへのコールバック関数登録を行ってエラー時のリソース解放を行う話は知らなかった。
      • でも、かなり敷居は高そう。
    • 最近、pythonでデータラッパを簡易に実装するフレームワークも出たらしい。
  • 9.2での取り組み
    • FDWオブジェクトの強化。列単位でのオプション指定など。
    • pgsql_fdw のcontrib取り込み
    • 外部テーブルへのANALYZE機能
質疑応答
  • dblinkとの違いは?
    • dblinkは関数形式、FDWはSQLで記述できる。
    • ただし、FDWは参照のみ。更新が必要ならdblink
  • 本体に含める(contrib化されそうな)FDWは?
    • file_fdwとpgsql_fdwだけだと思われる。
    • コミュニティの方針として外部製品に依存するものは本体には含めないから。

クロージング&ライトニングトーク

JPUG貢献賞発表
LT Stado(GridSQL)
  • TPC-Hでのスケーラビリティ向上結果。
LT Let's Postgresの最近の人気記事
  • 前フリ。PGCon発表枠に漏れてしまった坂井さんの愚痴w あるいは陰謀説w
  • 最近、人気のLet's Postgresの記事紹介。
  • 編集スタッフ募集。
LT threat modeling
  • すいません、私のヒアリング&リーディング能力では良くわかりませんでした・・・orz
LT 9.2 JSON機能紹介
  • 講師は板垣さん
  • JSON型は自前でパースしている。
  • ちょっと厳密にチェックしすぎ?
  • 日本語の扱いがぁゃιぃ
  • 配列→JSON、行型→JSONなど
  • JSON型に関してはTom Laneに愛がないw
  • トーク後、ちょうど隣席に話者の板垣さんがいたので、JSONへのアクセスAPIの有無について確認してみたら、今のところは実装されていなさそうとのこと。
    • ちょっと前にHEADのソースを見た時にもそれっぽいものがなかったけど、やっぱり取得APIは未実装なのか・・・
LT ppc64でスケーラビリティを上げる
  • 9.2にも取り込まれる。
  • 64CPUでもスケールを確認。
  • たっぷりCPUを積んだマシンじゃないと効果が見えない改善?

懇親会

  • 別件の用事があったので不参加・・・

PGCon2012ツイートまとめ

有難いことにPGCon2012のハッシュタグ(#pgcon12j)のまとめを作ってくれた人がいるので、こっちにも載せておく。改めて見てるとPPASのセッションが、nuko_yokohama無双状態w
PostgreSQL Conference 2012 #pgcon12j のまとめ - Togetter