PostgreSQL Unconference メモ

昨日開催されたPostgreSQLアンカンファレンス@東京(2/16) : ATNDのメモ

セッション内容

  • セッション内容は当日、その場でしゃべりたい人が登録。
  • 今回のセッション内容&タイムスケジュール

  • セッションは全部で17本。開始早々にほとんど埋まる。
  • 自分が話している時間は人の話が聞けないので、選択がなかなか悩ましい。
  • 後でわかったけど、結構ガチな発表が多かった印象。ネタ系って俺だけ?w
  • 参加者は(ATND登録者上は)39名。会場に何人来ていたのかは数えなかった・・・。

以下、とりあえずTweetと記憶を頼りに簡単にメモっておく。今回は1部屋とはいえ2会場で実施したので、およそ半分近くはきちんと聞けていません・・・。

PostgreSQLの超精密測定

  • スピーカーははやみずさん
  • pg_fine_tracerというトレースベースのイベントロガーを作成
    • PostgreSQL本体にも手を加えている。
    • 公開してるかはやみずさんに確認したところ、今はまだ未公開とのこと。
  • PostgreSQLを結構改造してるっぽい。バッファアクセス回数やヒット/ミス回数、バッファ上のページ寿命とかを取得。すげえ。 >pg_fine_tracer
  • QA. SystemTapでも出来るのでは?→pg_finr_tracerはSystemTapよりも軽いよ! ログ格納はオンメモリなので軽い。
  • pgの各バックエンドが確保する累積heap量のプロファイルが簡単できるとよいという話
  • 性能測定の項目や手法に関する議論に発展(細かいところは理解できなかった・・・)。
  • 資料はここにアップされています。

vFabric Postgres(右側)

  • スピーカーはMichael Paquierさん
  • PostgreSQLが使える仮想スタック?の話。
  • ブラウザで管理・操作インタフェースを持っているっぽい。>vFabric Postgres
  • vFabric Postgresでは、最適化されたチューニングパラメータで、すぐに動くようになっているということかな。
  • QA. shared_buffersは再起動すると状況に応じて可変に最適値に変動するようだ。
  • QA. vFabricの性能の安定性ってどうなのか?性能測定結果は?パキエルさんはまだ聞いてないみたい。

Writable-FDW(左側)

小ネタ:漢数字型(右側)

  • 私(ぬこ@横浜)のネタ発表。
  • 特に資料は用意せず、VM上でのksjのデモと説明のみ。
  • 意外に受けが良かった。実用性はないけどw
  • 上限値についてしっかり突っ込みを受けた。
    • 本当はnumericに変換すればいいのだろうけど・・・。
  • SAKAI Kiyoshiさんの無茶ぶりツイートw
    • PostgreSQLでの漢数字型の拡張、面白かったw 数値だからぜひリテラルなしでSQLに書けるようにして欲しい(←無茶)

Custom Background Workers(左側)

pgsql-fdw(左側)

  • スピーカーは花田さん
  • 9.3に入る予定のpgsql-fdwの話。
  • 資料は発表直前に作成していたっぽいw
    • 別途資料もアップされる・・・と思う。
  • T○m L@ne・・・伏字になっていない気がw
  • pgsql-fdwでのwhere句push down、結合クエリでもpush downしてる。
  • pgsql-fdwでもWritable-FDWにも今後は対応を考えている。
  • IOの分散ができるならOLAP向けの分散クエリ的なのも実現できる?
    • pgsql-fdwを使ったパラレルクエリ処理もちょっと考えていたが、データが大きくないとオーバヘッドの問題で負ける?

pg_stats_statement

  • スピーカーは永安さん
  • これは聞けなかった。残念。後で資料を見よう・・・。

全文検索とpg_trgm(左側)

  • スピーカーは澤田さん
    • NTTDATAの人。藤井さんの弟子らしい。
  • 全文検索の基本的な説明とpg_trgmに関する詳しい説明。
  • 現状のpg_trgmが抱える問題もきちんと説明。
    • 2文字以下の日本語検索が遅い件など
  • pg_trgmがGINインデクスをどう使っているのかという詳しい説明が良かった。Recheckの必要性もきちんと説明。このプレゼンの資料が早く欲しい・・・

ゆるいテキスト検索

  • 私(ぬこ@横浜)のネタ発表その2。
  • 藤井さんから正規化方式について公開されている正規化仕様に基づいているのか?という質問あり。
    • 今回作成したものは完全に独自仕様。
    • 一応、公開仕様自体はちょっとだけ見たけど・・・。
  • 後の懇親会のときに坂井さんから「出版業界ではこういう検索機能があると嬉しいケースがあるかも」とコメントをもらった。
  • 資料は以下の場所にアップしました。

9.3の新しいロックモード(右側)

  • スピーカーは笠原さん。
  • これは聞けなかった。残念。後でアップされたら資料を見よう・・・
  • 坂井さんのツイート:Postgres9.3ではFOR KEY SHAREとFOR NO KEY UPDATEって新しいロックが実装されるそうです。ロックの話を聞くとなぜかいつもハラハラします。

pg_hint_plan(左側)

  • スピーカーは藤井さん
  • PostgreSQLの実行計画をクエリコメント記述で制御するpg_hint_planの説明。
  • HINTに関するコミュニティの見解。
    • 利用者がHINTに頼ってしまう悪癖。
    • HINTがデータサイズに追随しない問題
    • 実行計画改善に関するフィードバックがなくなる。
  • HINTに関するNTTDATAの見解。
    • とにかく性能を安定させたいためにHINTを使う。
    • チューニングの最終手段。
    • DBMSからのマイグレーション促進。
  • QA. PPASのプラン機能とは異なるが統合するのか?→そのつもりはない。全く別物と考えてほしいとのこと。

pg_dbms_stats(左側)

  • スピーカーは引き続き藤井さん
  • 統計情報を固定するpg_dbms_statsの説明。
  • pg_dbms_statsにはロック、ロック解除、バックアップ、リストア、パージ(削除)、エクスポート、インポートなどの機能がある。指定対象はデータベース、スキーマ、テーブル、カラム。
  • pg_dbms_statsでは、ANALYZEの更新を抑止するわけではなく、オリジナル統計情報のスナップショットを持たせて、オリジナルとマージした結果をプランナに渡す。
  • pg_dbms_statsとANALYZE無効化との違い。ANALYZE以外に取得される統計情報があるから。列単位での固定化の指定(ANALYZEだと表単位)。
    • 花田さんから「ANALYZEでも列指定できるんじゃない?」という突っ込みツイートがあった。
  • 統計情報固定化の問題はHINTの問題と同様。データスケールへの問題、コミュニティへの報告がなくなる。
  • pg_dbms_statsのエクスポートファイルはバイナリっぽい?(binaryモードでCOPYしてるっぽい)

Amazon E2CでPostgres-XCをインストールしてみた

  • スピーカーは永安さん
  • これは聞けなかった。残念。後で資料を見よう・・・。
  • 花田さんのツイート:Postgres-XCのDISTRIBUTE BY ROUND ROBINはパーティション決定のオーバーヘッドが低いからINSERTが大量にくるログ蓄積みたいなモデルで有効なのかな? 使いどころが難しそう。

閑話休題

  • 2/16は「寒天の日」らしく、いくつかの発表で寒天ネタが出たらしいが・・・
  • 今回のアンカンファレンスにおける、NTTDATA関係者の多さについてw
  • なんか、今日は何気にHOOKに絡む話が多かったなあ・・・。色々注目されているから、PostgreSQL文書にもHOOK開発に関する章が追加されてもいいんじゃないのかなあ・・・。

PostgreSQLへのマイグレーションの話

  • スピーカーは江川さん
  • PostgreSQL移行時の課題。今日はコストの話とノウハウの話。
  • SQL移行に関するツールの話。 ora2pg(DDL移行が非常に簡単), orafce(SQL置換コストの削減), sed/awk, 独自ツール(NTTDATAやTIS等、各社作っていたりする)。DML変換のデファクトスタンダードはまだない。
  • QA. 某DBMSの某PLなんちゃらを使用している某DBMSからの移行は、やはり移行コストが高くなる。今は有効なツールがない。
  • QA.PostgreSQL移行後のバックアップ手法としてはRMANよりPITRがおすすめ。

HOOKで遊ぼう

  • スピーカーは笠原さん
  • これは聞けなかった。残念。後で資料を見よう・・・。
  • なんか発表途中にちらと自分の名前を呼ばれたような・・・気のせいか。

PostgreSQLでDWH

  • スピーカーはkingyokkunさん。
  • 発表というよりディスカッションに近い感じ。
  • DWHのデータスケールは数百GB〜1TBを想定?その範囲で、どういう機能が必要か?
    • DWH向けだとオーソドックスな機能+パーティショニングとパラレルクエリがあればいいのでは?という永安さんの意見。
    • ETLでDWHの集計等は結構どうにかなってしまうのかもしれない?という議論
  • PostgreSQLに列指向を組み込むのは効果があるかという議論。
    • PG-Stormでは内部的に列指向として作成されている。まあ有効なのでは?とのこと。
  • PostgreSQL 9.3のマテビューが加わると、DWH的に何か使えないかという話。
  • データロードならpg_bulkloadが使えるのではないかという話。
  • 入れるデータの特性が分かっていれば、それにあった最適な圧縮アルゴリズムを適用できないか?
    • 例えばDNA配列のデータとか。
    • この件からちょっと外れるけど、EXIとXMLスキーマを使った超圧縮XML型とかもこれに近い考え方になるのかも。
    • 全く同じ値のデータを一つの領域にまとめられないのか?という海外さんの大胆な意見。
  • 花田さんのツイート
    • DWH関連からクエリ所要時間の予測の話題に。大規模なクエリの進捗が分かるツールとかあるといいのかも。
    • DWHでカーディナリティの低いデータについて、実際の値を外部に出してポインタだけタプルで持つと格納効率いいよね、という話。Enum型使う案とかTOAST使う案とか。

SQLの話(右側)

  • スピーカーははやみずさん?
  • 内容は聞けなかったけど、もしかすると予告していたINGRESSの話なのかな?

クロージング&懇親会

  • 永安さんがクロージングで閉会を宣言。
  • 懇親会会場もこの後に決めるというアンカンファレンスらしい(?)ノリです。
  • 1次会は14名参加。
    • ここからがある意味、アンカンファレンスの本番とも言えるかw
    • かなりアレな内容もあるのでここでは書きませぬ。
  • 2次会は6名(たぶん)
    • もっとアレげな(でもかなり真面目な内容も含む)ので、内容はここでは書きませぬ。
    • 永安さん、ビールこぼしてしまってごめんなさい・・・_o_