SlideShare a Scribd company logo
Copyright © 2015 NTT DATA Corporation
2015年11月14日
株式会社NTTデータ 澤田雅彦
PostgreSQLコミュニティに飛び込もう
~ PostgreSQLのパッチをレビュー ~
2Copyright © 2015 NTT DATA Corporation
はじめに
PostgreSQLのコミュニティ開発って、
• 興味はあるけどなんか難しそう。。英語とか。
• 「コミュニティ開発」=「すごい機能を開発」
と思っていませんか?
新しい機能を作るだけでなく、パッチのレビュー、typoの修正も一つのコミュニティ開発です。
本日は、PostgreSQLコミュニティにおける「パッチのレビュー方法」についてできるだけ具体的に解
説します。
資料での説明後、実際にパッチをレビューする時間を設けていますので、一緒にやってみましょう。
3Copyright © 2015 NTT DATA Corporation
はじめに ~レビュアーの仕事とは?~
The eventual committer will do their own review before the patch goes
into the code base. The task of a reviewer is to take off load from
committers by catching simple problems.
The reviewer's job is not necessarily to guarantee some level of quality,
but just to report any problems they are able to find. That task is done if
you think the patch is ready for in-depth review from a committer.
レビューアの仕事は、前もって問題を取り除くことで、コミッタの仕事を減らすことです。
レビューアには完璧を求められることはなく、見つけられるだけの問題を見つけることが仕事
になります。もしあなたが、そのパッチがコミッタの詳細レビューにたる品質になったと判断したら、
そこでレビューは完了します。
https://wiki.postgresql.org/wiki/Reviewing_a_Patch/ja より
4Copyright © 2015 NTT DATA Corporation
はじめに ~パッチレビューのモチベーション~
パッチをレビューすることで、
• PostgreSQLの最前線に身を置き、最新情報を知れる。
• レビューしたパッチやその周辺機能に(ソースコードレベルで)詳しくなれる。
• 途中の議論も知れるので、なぜその機能が入ったのか?なぜそのような仕様になっ
たのか?残課題はあるか?どのような条件でバグが発生するか?など、その機能
(やバグ修正)の知識がより深まる。
• 他人のパッチやコミットされたコードを見ることで、プログラミングスキルが向上する。
(PostgreSQL開発における勘所を学べる)
• カンファレンス等でパッチ作成者とコミュニケーションを取りやすくなる。
5Copyright © 2015 NTT DATA Corporation
INDEX
PostgreSQL開発サイクル
PostgreSQLはどのように開発されている?
Commit Festとは?
PostgreSQLのパッチをレビューをしてみよう
パッチレビューに必要なもの
パッチレビューのやり方
おすすめパッチ紹介
Copyright © 2015 NTT DATA Corporation 6
PostgreSQLの開発サイクル
7Copyright © 2015 NTT DATA Corporation
2014年度 2015年度
5
月
6
月
7
月
8
月
9
月
10
月
11
月
12
月
1
月
2
月
3
月
4
月
5
月
6
月
7
月
8
月
9
月
10
月
11
月
12
月
PostgreSQL開発サイクル
CF1 CF2 CF3 CF4 CF5
Feature
Freeze Alpha1,2
Beta1 Beta2 RC1Beta3
9.5開発
9.4開発
コミュニティサポート
CF1 CF2 CF3
9.6開発
Beta1,2
8Copyright © 2015 NTT DATA Corporation
Commit Festとは?
• パッチレビューを集中的に行うサイクル
• 「パッチ作成:1か月、パッチレビュー:1か月」で1サイクル
• 1パッチ、1レビューのルール
• パッチはCommit Fest Appで管理
Ready for
Committer
Needs review
Waiting on
Author
Committed
Returned with
feedback
(次のCFへ。
ただし課題あり。)
Rejected
(提案却下)
Move to next CF
(次のCFで引き続きレ
ビュー)
パッチレビュー中
パッチレビュー完了
パッチクローズ
パッチ
修正・投稿 レビュー
コミット
レビュー
完了
パッチ作成者
レビュアー
コミッター
CF終了
課題あり
提案却下
9Copyright © 2015 NTT DATA Corporation
Commit Fest Appの使い方
• アカウントの作成が必要ですので、登録します。
• https://www.postgresql.org/account/signup/
• Commit Fest Appで現在のCFに移動します。
• https://commitfest.postgresql.org/
レビューする
パッチを選択
します
10Copyright © 2015 NTT DATA Corporation
Commit Fest Appの使い方
「Become reviewer」
を押してレビュアーと
して登録します
11Copyright © 2015 NTT DATA Corporation
Commit Fest Appの使い方
パッチのステータス
を変えるときはここ
Copyright © 2015 NTT DATA Corporation 12
PostgreSQLのパッチレビュー
13Copyright © 2015 NTT DATA Corporation
パッチレビューはコミュニティへの貢献方法の一つ
コミュニティへの貢献方法は
• 新規機能の開発
• バグ修正
• バグ報告
• パッチのレビュー
など様々。
もちろん、
• ソースコード内のコメントのtypo修正
• ドキュメントのtypo修正
もコミュニティへの貢献です。
14Copyright © 2015 NTT DATA Corporation
コメントのtypo修正もコミュニティへの貢献の一つ
15Copyright © 2015 NTT DATA Corporation
レビュアーとしてコミットログに
16Copyright © 2015 NTT DATA Corporation
必要なもの
• 開発環境
• Linux, Windowsどちらでも
• PostgreSQLがコンパイル、起動できるように
• PostgreSQLのソースコードが見れるように
• gitあると便利です
(例) Mac + VMFusion(CentOS) + git + emacs
• ネット環境
• ソースコードの入手、MLへの投稿で必要
(例) git使うときとメール送るときしかネットを使わないので、テザリング環境でも十分
• メールアドレス
• コミュニティで議論するために必要
(例) gmailアカウントを作る
• PostgreSQLコミュニティのアカウント
• Commit Fest Appで必要
• C言語の知識
• C言語で書かれたソースをレビューするので
• 少しの英語力
• 中学生レベルの英語でOK(だと思います)
17Copyright © 2015 NTT DATA Corporation
メーリングリストへの登録
PostgreSQLコミュニティでのコミュニケーションはメーリングリストが主体です。
登録しておくべきメーリングリストは3つ
• pgsql-hackers
• pgsql-hackers@postgresql.org
• 開発、バグ修正関連の議論はここで行われる。パッチレビューコメントを送るのもここ。
• pgsql-committers
• pgsql-committers@postgresql.org
• コミットされた内容が流れる。何がコミットされたかを知る為に必要。
• pgsql-bugs
• pgsql-bugs@postgresql.org
• バグレポートの内容や、その後の議論がここで行われる。
http://www.postgresql.org/community/lists/subscribe/ から今すぐ登録!
18Copyright © 2015 NTT DATA Corporation
パッチレビューの流れ
レビューコメントを送る
パッチをレビューする
これまでの議論を追う
レビューするパッチを決める
19Copyright © 2015 NTT DATA Corporation
レビューするパッチを決める
決め方は人それぞれ
• 機能、分野別
• プランナ関連、インデックス関連、レプリケーション関連…
• contribモジュール別、クライアントアプリケーション別…
• 実業務で関連しそうな所
• 自分が興味ある所
• 難易度別
• PostgreSQLのバックエンド機能(プランナ、レプリケーションなど)より、
PostgreSQLのフロントエンド機能(psql, pg_dump、pgbenchなど)の方が、読むコード
量が少ない場合が多く、取り掛かりやすい
• 規模別
• 大きい機能をレビューしてみたい!(UPSERT、BRINなど)
• 簡単なバグ修正
20Copyright © 2015 NTT DATA Corporation
議論を追う
既に議論が進んでいる場合は、これまでの議論をキャッチアップします。
• どんなことを解決する機能なのか?ユースケースは?
• どのようなインタフェースで作られているか?
• 議論の雲行きを見る。
• それまでの議論での合意事項、未合意事項。
21Copyright © 2015 NTT DATA Corporation
パッチをレビューする
レビューのレビュー
コーディング・レビュー
性能試験
アーキテクチャ・レビュー
機能テスト
提案・仕様レビュー
そのパッチは
本当に必要?
既存機能との重複
はない?
仕様通りに動く?
クラッシュしない?
本当に性能向上する?
他の機能の性能に影響
を与えてない?
コーディング規約
に沿っている?
十分なコメントが
ある?
将来問題になりそうな
依存関係がないか?
他のモジュールと組み
合わせても問題ない
か?
レビューアは本来
やるべきことをす
べて行ったか?
参考:https://wiki.postgresql.org/wiki/Reviewing_a_Patch/ja
22Copyright © 2015 NTT DATA Corporation
Wikiの内容に沿ったレビュー
23Copyright © 2015 NTT DATA Corporation
(例)よくやるレビューの流れ
• パッチをHEADにあててみる
• git diff --check
• コンパイル
• リグレッションテスト(make check-world)
• 仕様通り動くか?
• 性能試験
• 思いつくいろんな使い方をしてみる
• 境界値テストとかでもOK
• すごい大量に実行してみたり、すごい長い文字を入れてみたり
• レプリケーション環境でもちゃんと動くか?pg_upgradeしても問題ないか?
など
ここまでで何か問題があれば、それを開発者に伝えてあげましょう!
24Copyright © 2015 NTT DATA Corporation
パッチがHEADに当たらなかった
25Copyright © 2015 NTT DATA Corporation
仕様通りに動かなかった
26Copyright © 2015 NTT DATA Corporation
(例)そして、パッチを見ていく(コードレビュー)
• コーディング規約
• インデントはスペースは4つ。コメントの書き方もチェック。
• コーディング規約:http://www.postgresql.org/docs/current/static/source.html
• コメント
• 適切なコメントが書いてあるか?コメントの更新忘れはないか?
• ドキュメントパッチ
• ドキュメントの内容に間違いはないか?typoはない?
• リグレッションテストパッチ
• テストすべきテストケースがリグレッションテストにあるか?
• 既存コードの流用
• 既存のコードをうまく利用して作られているか?無駄なコードはないか?
• 環境依存(Windows対応)
• Windowsでも動くように。
• レビュアーそれぞれの視点
• 実装方法がいまいちだと思う。この既存機能と衝突しそう。
• ここのロジックはもっとシンプルに実装できそう。
27Copyright © 2015 NTT DATA Corporation
メールを書くときのポイント
• 日本語を書いて英語に訳す?最初から英語で考える?
• 具体的な例を出して説明する
• For example …
• 他の人が書いている英語のマネをする
• 文を無理に長くしなくてもよい
• I applied the patch to HEAD. But I got FAILED. …
• 箇条書きにする
• 分からないことは素直に聞いてみる
• PostgreSQLコミュニティの人は優しい人が多い
28Copyright © 2015 NTT DATA Corporation
レビューコメントを送る
例えば、
Thank you for updating the patch.
The followings are my review comments and questions.
* pg_stat_vacuum_progress should have the oid of relation begin vacuumed.
* progress_message variable in PgBackendStatus is not used at all.
IIRC, progress_message variable is set the description of processing.
* The progress of VACUUM FULL seems wrong.
When I run VACUUM FULL for a table, I got following progress.
=# SELECT * FROM pg_stat_vacuum_progress;
:
:
* The vacuum by autovacuum is not displayed.
Could you check this on your environment?
Regards,
--
Masahiko Sawada
29Copyright © 2015 NTT DATA Corporation
いざ、レビューコメントを送信
• 返信は必ずpgsql-hackersをTOに入れる。(作成者個人宛てに送らない)
• 議論の途中であれば、議論に参加している他の開発者もTOまたはCCに入れる。
• 基本「reply all」で問題なし。
• メールを送ったら、パッチのステータスを「Waiting on Author」に変更
ここから本当のコミュニティ活動が始まります。
議論→レビューを繰り返し、自分が満足いくまでレビューをしましょう。
また、必要に応じて議論にも参加しましょう!
「”Ready for Committer” is reviewer saying, “Based on my review,
I would have committed this if I had been the patch’s committer.”」
30Copyright © 2015 NTT DATA Corporation
最後に
• CF3はすでに始まっています!
• 約100個のパッチが登録
• その中で「Needs review」は約半数(本日時点)
• ちなみに、FreezeMap(PageInfoMap)パッチをレビューしてくれるかた募集中です!
• これまでの議論の経緯、パッチの説明、全部します。
Copyright © 2011 NTT DATA Corporation
Copyright © 2015 NTT DATA Corporation
32Copyright © 2015 NTT DATA Corporation
(参考) パッチをあてる、リグレッションテストまでのコマンド例
• 開発版のソースコードを入手
• $ git clone git://git.postgresql.org/git/postgresql.git
※既に開発版を入手している場合は、「$ git pull origin master」等で最新にします。
• パッチをHEADにあててみる
• $ cd postgresql
• $ patch -p1 < <パッチへのパス>
または、
• $ git apply <パッチへのパス>
※patchコマンドではあてられるHUNKは全て実際に変更を加えるのに対し、git applyではHUNKが1つでもあたらない場
合に、パッチ全体の適用をやめます(つまり、git applyではパッチの適用がアトミック)
• git diff --check
• $ git diff --check
※ソースコード末尾に空白等がある場合に検知できます。
• コンパイル
• $ make -j 4 > /dev/null
※こうするとコンパイルWARNINGが出た時だけわかります。ただし、
In file included from gram.y:13990:
scan.c: In function ‘yy_try_NUL_trans’:
scan.c:10192: 警告: unused variable ‘yyg’
は、いつも出るWARNINGなので無視します。
• リグレッションテスト(make check-world)
• $ make check-world | tee /tmp/check-world.log
• $ less /tmp/check-world.log
※make check-worldの結果を目で確認しつつ、ログを「FAILED」でgrepします。

More Related Content

What's hot (20)

PG-REXで学ぶPacemaker運用の実例
PG-REXで学ぶPacemaker運用の実例PG-REXで学ぶPacemaker運用の実例
PG-REXで学ぶPacemaker運用の実例
kazuhcurry
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
 
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
Yahoo!デベロッパーネットワーク
 
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
NTT DATA Technology & Innovation
 
InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)
Takanori Sejima
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
Masahiko Sawada
 
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話
Yuta Shimada
 
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
yoku0825
 
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajpAt least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
 
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解
Masahito Zembutsu
 
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
NTT DATA Technology & Innovation
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
 
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
 
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
Tatsuya Watanabe
 
PG-REXで学ぶPacemaker運用の実例
PG-REXで学ぶPacemaker運用の実例PG-REXで学ぶPacemaker運用の実例
PG-REXで学ぶPacemaker運用の実例
kazuhcurry
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
 
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
NTT DATA Technology & Innovation
 
InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)
Takanori Sejima
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
Masahiko Sawada
 
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話コンテナにおけるパフォーマンス調査でハマった話
コンテナにおけるパフォーマンス調査でハマった話
Yuta Shimada
 
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
yoku0825
 
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解
Masahito Zembutsu
 
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
NTT DATA Technology & Innovation
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
 
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
 
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
Tatsuya Watanabe
 

Viewers also liked (20)

PostgreSQLレプリケーション徹底紹介
PostgreSQLレプリケーション徹底紹介PostgreSQLレプリケーション徹底紹介
PostgreSQLレプリケーション徹底紹介
NTT DATA OSS Professional Services
 
PostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラPostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラ
NTT DATA OSS Professional Services
 
NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA と PostgreSQL が挑んだ総力戦NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA OSS Professional Services
 
PostgreSQL - C言語によるユーザ定義関数の作り方
PostgreSQL - C言語によるユーザ定義関数の作り方PostgreSQL - C言語によるユーザ定義関数の作り方
PostgreSQL - C言語によるユーザ定義関数の作り方
Satoshi Nagayasu
 
PostgreSQL 9.5 新機能紹介
PostgreSQL 9.5 新機能紹介PostgreSQL 9.5 新機能紹介
PostgreSQL 9.5 新機能紹介
NTT DATA OSS Professional Services
 
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
Uptime Technologies LLC (JP)
 
PostgreSQL 9.6 新機能紹介
PostgreSQL 9.6 新機能紹介PostgreSQL 9.6 新機能紹介
PostgreSQL 9.6 新機能紹介
Masahiko Sawada
 
pg_bigmを用いた全文検索のしくみ(後編)
pg_bigmを用いた全文検索のしくみ(後編)pg_bigmを用いた全文検索のしくみ(後編)
pg_bigmを用いた全文検索のしくみ(後編)
NTT DATA OSS Professional Services
 
10大ニュースで振り返るpg con2013
10大ニュースで振り返るpg con201310大ニュースで振り返るpg con2013
10大ニュースで振り返るpg con2013
NTT DATA OSS Professional Services
 
perfを使ったPostgreSQLの解析(後編)
perfを使ったPostgreSQLの解析(後編)perfを使ったPostgreSQLの解析(後編)
perfを使ったPostgreSQLの解析(後編)
NTT DATA OSS Professional Services
 
10大ニュースで振り返るPGCon2015
10大ニュースで振り返るPGCon201510大ニュースで振り返るPGCon2015
10大ニュースで振り返るPGCon2015
NTT DATA OSS Professional Services
 
pg_trgmと全文検索
pg_trgmと全文検索pg_trgmと全文検索
pg_trgmと全文検索
NTT DATA OSS Professional Services
 
pg_dbms_statsの紹介
pg_dbms_statsの紹介pg_dbms_statsの紹介
pg_dbms_statsの紹介
NTT DATA OSS Professional Services
 
perfを使ったPostgreSQLの解析(前編)
perfを使ったPostgreSQLの解析(前編)perfを使ったPostgreSQLの解析(前編)
perfを使ったPostgreSQLの解析(前編)
NTT DATA OSS Professional Services
 
pg_bigmを用いた全文検索のしくみ(前編)
pg_bigmを用いた全文検索のしくみ(前編)pg_bigmを用いた全文検索のしくみ(前編)
pg_bigmを用いた全文検索のしくみ(前編)
NTT DATA OSS Professional Services
 
PostreSQL監査
PostreSQL監査PostreSQL監査
PostreSQL監査
NTT DATA OSS Professional Services
 
使ってみませんか?pg_hint_plan
使ってみませんか?pg_hint_plan使ってみませんか?pg_hint_plan
使ってみませんか?pg_hint_plan
NTT DATA OSS Professional Services
 
GresCubeで快適PostgreSQLライフ
GresCubeで快適PostgreSQLライフGresCubeで快適PostgreSQLライフ
GresCubeで快適PostgreSQLライフ
NTT DATA OSS Professional Services
 
PostgreSQL9.3新機能紹介
PostgreSQL9.3新機能紹介PostgreSQL9.3新機能紹介
PostgreSQL9.3新機能紹介
NTT DATA OSS Professional Services
 
PostgreSQL replication
PostgreSQL replicationPostgreSQL replication
PostgreSQL replication
NTT DATA OSS Professional Services
 
PostgreSQL - C言語によるユーザ定義関数の作り方
PostgreSQL - C言語によるユーザ定義関数の作り方PostgreSQL - C言語によるユーザ定義関数の作り方
PostgreSQL - C言語によるユーザ定義関数の作り方
Satoshi Nagayasu
 
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
PostgreSQLアーキテクチャ入門(PostgreSQL Conference 2012)
Uptime Technologies LLC (JP)
 
PostgreSQL 9.6 新機能紹介
PostgreSQL 9.6 新機能紹介PostgreSQL 9.6 新機能紹介
PostgreSQL 9.6 新機能紹介
Masahiko Sawada
 
Ad

Similar to PostgreSQLコミュニティに飛び込もう (20)

PostgreSQL開発コミュニティに参加しよう! (オープンデベロッパーズカンファレンス(ODC)2024 発表資料)
PostgreSQL開発コミュニティに参加しよう! (オープンデベロッパーズカンファレンス(ODC)2024 発表資料)PostgreSQL開発コミュニティに参加しよう! (オープンデベロッパーズカンファレンス(ODC)2024 発表資料)
PostgreSQL開発コミュニティに参加しよう! (オープンデベロッパーズカンファレンス(ODC)2024 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 HiroshimaPostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
Shigeru Hanada
 
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLコミュニティにおける開発プロセスとプロジェクトマネジメント (PM学会 2024年度秋季研究発表大会 発表資料)
PostgreSQLコミュニティにおける開発プロセスとプロジェクトマネジメント (PM学会 2024年度秋季研究発表大会 発表資料)PostgreSQLコミュニティにおける開発プロセスとプロジェクトマネジメント (PM学会 2024年度秋季研究発表大会 発表資料)
PostgreSQLコミュニティにおける開発プロセスとプロジェクトマネジメント (PM学会 2024年度秋季研究発表大会 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会
PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会
PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会
Shigeru Hanada
 
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
NTT DATA Technology & Innovation
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
NTT DATA Technology & Innovation
 
C27 基幹領域への適用におけるpostgre sqlの抱える課題 by 原嘉彦
C27 基幹領域への適用におけるpostgre sqlの抱える課題 by 原嘉彦C27 基幹領域への適用におけるpostgre sqlの抱える課題 by 原嘉彦
C27 基幹領域への適用におけるpostgre sqlの抱える課題 by 原嘉彦
Insight Technology, Inc.
 
【Jpug勉強会】10大ニュースで振り返るpg con2013
【Jpug勉強会】10大ニュースで振り返るpg con2013【Jpug勉強会】10大ニュースで振り返るpg con2013
【Jpug勉強会】10大ニュースで振り返るpg con2013
Daichi Egawa
 
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
Masahiko Sawada
 
[db tech showcase Tokyo 2014] C31: PostgreSQLをエンタープライズシステムで利用しよう by PostgreS...
[db tech showcase Tokyo 2014] C31: PostgreSQLをエンタープライズシステムで利用しよう  by PostgreS...[db tech showcase Tokyo 2014] C31: PostgreSQLをエンタープライズシステムで利用しよう  by PostgreS...
[db tech showcase Tokyo 2014] C31: PostgreSQLをエンタープライズシステムで利用しよう by PostgreS...
Insight Technology, Inc.
 
C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努
Insight Technology, Inc.
 
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
OSC沖縄2014_JPUG資料
OSC沖縄2014_JPUG資料OSC沖縄2014_JPUG資料
OSC沖縄2014_JPUG資料
kasaharatt
 
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQL監査
PostgreSQL監査PostgreSQL監査
PostgreSQL監査
Ayumi Ishii
 
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
Yoshiyuki Asaba
 
PostgreSQL開発コミュニティに参加しよう! (オープンデベロッパーズカンファレンス(ODC)2024 発表資料)
PostgreSQL開発コミュニティに参加しよう! (オープンデベロッパーズカンファレンス(ODC)2024 発表資料)PostgreSQL開発コミュニティに参加しよう! (オープンデベロッパーズカンファレンス(ODC)2024 発表資料)
PostgreSQL開発コミュニティに参加しよう! (オープンデベロッパーズカンファレンス(ODC)2024 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 HiroshimaPostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
Shigeru Hanada
 
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLコミュニティにおける開発プロセスとプロジェクトマネジメント (PM学会 2024年度秋季研究発表大会 発表資料)
PostgreSQLコミュニティにおける開発プロセスとプロジェクトマネジメント (PM学会 2024年度秋季研究発表大会 発表資料)PostgreSQLコミュニティにおける開発プロセスとプロジェクトマネジメント (PM学会 2024年度秋季研究発表大会 発表資料)
PostgreSQLコミュニティにおける開発プロセスとプロジェクトマネジメント (PM学会 2024年度秋季研究発表大会 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会
PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会
PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会
Shigeru Hanada
 
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
NTT DATA Technology & Innovation
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
NTT DATA Technology & Innovation
 
C27 基幹領域への適用におけるpostgre sqlの抱える課題 by 原嘉彦
C27 基幹領域への適用におけるpostgre sqlの抱える課題 by 原嘉彦C27 基幹領域への適用におけるpostgre sqlの抱える課題 by 原嘉彦
C27 基幹領域への適用におけるpostgre sqlの抱える課題 by 原嘉彦
Insight Technology, Inc.
 
【Jpug勉強会】10大ニュースで振り返るpg con2013
【Jpug勉強会】10大ニュースで振り返るpg con2013【Jpug勉強会】10大ニュースで振り返るpg con2013
【Jpug勉強会】10大ニュースで振り返るpg con2013
Daichi Egawa
 
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
Masahiko Sawada
 
[db tech showcase Tokyo 2014] C31: PostgreSQLをエンタープライズシステムで利用しよう by PostgreS...
[db tech showcase Tokyo 2014] C31: PostgreSQLをエンタープライズシステムで利用しよう  by PostgreS...[db tech showcase Tokyo 2014] C31: PostgreSQLをエンタープライズシステムで利用しよう  by PostgreS...
[db tech showcase Tokyo 2014] C31: PostgreSQLをエンタープライズシステムで利用しよう by PostgreS...
Insight Technology, Inc.
 
C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努
Insight Technology, Inc.
 
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
OSC沖縄2014_JPUG資料
OSC沖縄2014_JPUG資料OSC沖縄2014_JPUG資料
OSC沖縄2014_JPUG資料
kasaharatt
 
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQL監査
PostgreSQL監査PostgreSQL監査
PostgreSQL監査
Ayumi Ishii
 
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
Yoshiyuki Asaba
 
Ad

More from NTT DATA OSS Professional Services (20)

Global Top 5 を目指す NTT DATA の確かで意外な技術力
Global Top 5 を目指す NTT DATA の確かで意外な技術力Global Top 5 を目指す NTT DATA の確かで意外な技術力
Global Top 5 を目指す NTT DATA の確かで意外な技術力
NTT DATA OSS Professional Services
 
Spark SQL - The internal -
Spark SQL - The internal -Spark SQL - The internal -
Spark SQL - The internal -
NTT DATA OSS Professional Services
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
NTT DATA OSS Professional Services
 
Hadoopエコシステムのデータストア振り返り
Hadoopエコシステムのデータストア振り返りHadoopエコシステムのデータストア振り返り
Hadoopエコシステムのデータストア振り返り
NTT DATA OSS Professional Services
 
HDFS Router-based federation
HDFS Router-based federationHDFS Router-based federation
HDFS Router-based federation
NTT DATA OSS Professional Services
 
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントPostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
NTT DATA OSS Professional Services
 
Apache Hadoopの新機能Ozoneの現状
Apache Hadoopの新機能Ozoneの現状Apache Hadoopの新機能Ozoneの現状
Apache Hadoopの新機能Ozoneの現状
NTT DATA OSS Professional Services
 
Distributed data stores in Hadoop ecosystem
Distributed data stores in Hadoop ecosystemDistributed data stores in Hadoop ecosystem
Distributed data stores in Hadoop ecosystem
NTT DATA OSS Professional Services
 
Structured Streaming - The Internal -
Structured Streaming - The Internal -Structured Streaming - The Internal -
Structured Streaming - The Internal -
NTT DATA OSS Professional Services
 
Apache Hadoopの未来 3系になって何が変わるのか?
Apache Hadoopの未来 3系になって何が変わるのか?Apache Hadoopの未来 3系になって何が変わるのか?
Apache Hadoopの未来 3系になって何が変わるのか?
NTT DATA OSS Professional Services
 
Apache Hadoop and YARN, current development status
Apache Hadoop and YARN, current development statusApache Hadoop and YARN, current development status
Apache Hadoop and YARN, current development status
NTT DATA OSS Professional Services
 
HDFS basics from API perspective
HDFS basics from API perspectiveHDFS basics from API perspective
HDFS basics from API perspective
NTT DATA OSS Professional Services
 
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
NTT DATA OSS Professional Services
 
20170303 java9 hadoop
20170303 java9 hadoop20170303 java9 hadoop
20170303 java9 hadoop
NTT DATA OSS Professional Services
 
ブロックチェーンの仕組みと動向(入門編)
ブロックチェーンの仕組みと動向(入門編)ブロックチェーンの仕組みと動向(入門編)
ブロックチェーンの仕組みと動向(入門編)
NTT DATA OSS Professional Services
 
Application of postgre sql to large social infrastructure jp
Application of postgre sql to large social infrastructure jpApplication of postgre sql to large social infrastructure jp
Application of postgre sql to large social infrastructure jp
NTT DATA OSS Professional Services
 
Application of postgre sql to large social infrastructure
Application of postgre sql to large social infrastructureApplication of postgre sql to large social infrastructure
Application of postgre sql to large social infrastructure
NTT DATA OSS Professional Services
 
Apache Hadoop 2.8.0 の新機能 (抜粋)
Apache Hadoop 2.8.0 の新機能 (抜粋)Apache Hadoop 2.8.0 の新機能 (抜粋)
Apache Hadoop 2.8.0 の新機能 (抜粋)
NTT DATA OSS Professional Services
 
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~
NTT DATA OSS Professional Services
 
商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと
NTT DATA OSS Professional Services
 
Global Top 5 を目指す NTT DATA の確かで意外な技術力
Global Top 5 を目指す NTT DATA の確かで意外な技術力Global Top 5 を目指す NTT DATA の確かで意外な技術力
Global Top 5 を目指す NTT DATA の確かで意外な技術力
NTT DATA OSS Professional Services
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
NTT DATA OSS Professional Services
 
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントPostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
NTT DATA OSS Professional Services
 
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
NTT DATA OSS Professional Services
 
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~
NTT DATA OSS Professional Services
 
商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと
NTT DATA OSS Professional Services
 

PostgreSQLコミュニティに飛び込もう

  • 1. Copyright © 2015 NTT DATA Corporation 2015年11月14日 株式会社NTTデータ 澤田雅彦 PostgreSQLコミュニティに飛び込もう ~ PostgreSQLのパッチをレビュー ~
  • 2. 2Copyright © 2015 NTT DATA Corporation はじめに PostgreSQLのコミュニティ開発って、 • 興味はあるけどなんか難しそう。。英語とか。 • 「コミュニティ開発」=「すごい機能を開発」 と思っていませんか? 新しい機能を作るだけでなく、パッチのレビュー、typoの修正も一つのコミュニティ開発です。 本日は、PostgreSQLコミュニティにおける「パッチのレビュー方法」についてできるだけ具体的に解 説します。 資料での説明後、実際にパッチをレビューする時間を設けていますので、一緒にやってみましょう。
  • 3. 3Copyright © 2015 NTT DATA Corporation はじめに ~レビュアーの仕事とは?~ The eventual committer will do their own review before the patch goes into the code base. The task of a reviewer is to take off load from committers by catching simple problems. The reviewer's job is not necessarily to guarantee some level of quality, but just to report any problems they are able to find. That task is done if you think the patch is ready for in-depth review from a committer. レビューアの仕事は、前もって問題を取り除くことで、コミッタの仕事を減らすことです。 レビューアには完璧を求められることはなく、見つけられるだけの問題を見つけることが仕事 になります。もしあなたが、そのパッチがコミッタの詳細レビューにたる品質になったと判断したら、 そこでレビューは完了します。 https://wiki.postgresql.org/wiki/Reviewing_a_Patch/ja より
  • 4. 4Copyright © 2015 NTT DATA Corporation はじめに ~パッチレビューのモチベーション~ パッチをレビューすることで、 • PostgreSQLの最前線に身を置き、最新情報を知れる。 • レビューしたパッチやその周辺機能に(ソースコードレベルで)詳しくなれる。 • 途中の議論も知れるので、なぜその機能が入ったのか?なぜそのような仕様になっ たのか?残課題はあるか?どのような条件でバグが発生するか?など、その機能 (やバグ修正)の知識がより深まる。 • 他人のパッチやコミットされたコードを見ることで、プログラミングスキルが向上する。 (PostgreSQL開発における勘所を学べる) • カンファレンス等でパッチ作成者とコミュニケーションを取りやすくなる。
  • 5. 5Copyright © 2015 NTT DATA Corporation INDEX PostgreSQL開発サイクル PostgreSQLはどのように開発されている? Commit Festとは? PostgreSQLのパッチをレビューをしてみよう パッチレビューに必要なもの パッチレビューのやり方 おすすめパッチ紹介
  • 6. Copyright © 2015 NTT DATA Corporation 6 PostgreSQLの開発サイクル
  • 7. 7Copyright © 2015 NTT DATA Corporation 2014年度 2015年度 5 月 6 月 7 月 8 月 9 月 10 月 11 月 12 月 1 月 2 月 3 月 4 月 5 月 6 月 7 月 8 月 9 月 10 月 11 月 12 月 PostgreSQL開発サイクル CF1 CF2 CF3 CF4 CF5 Feature Freeze Alpha1,2 Beta1 Beta2 RC1Beta3 9.5開発 9.4開発 コミュニティサポート CF1 CF2 CF3 9.6開発 Beta1,2
  • 8. 8Copyright © 2015 NTT DATA Corporation Commit Festとは? • パッチレビューを集中的に行うサイクル • 「パッチ作成:1か月、パッチレビュー:1か月」で1サイクル • 1パッチ、1レビューのルール • パッチはCommit Fest Appで管理 Ready for Committer Needs review Waiting on Author Committed Returned with feedback (次のCFへ。 ただし課題あり。) Rejected (提案却下) Move to next CF (次のCFで引き続きレ ビュー) パッチレビュー中 パッチレビュー完了 パッチクローズ パッチ 修正・投稿 レビュー コミット レビュー 完了 パッチ作成者 レビュアー コミッター CF終了 課題あり 提案却下
  • 9. 9Copyright © 2015 NTT DATA Corporation Commit Fest Appの使い方 • アカウントの作成が必要ですので、登録します。 • https://www.postgresql.org/account/signup/ • Commit Fest Appで現在のCFに移動します。 • https://commitfest.postgresql.org/ レビューする パッチを選択 します
  • 10. 10Copyright © 2015 NTT DATA Corporation Commit Fest Appの使い方 「Become reviewer」 を押してレビュアーと して登録します
  • 11. 11Copyright © 2015 NTT DATA Corporation Commit Fest Appの使い方 パッチのステータス を変えるときはここ
  • 12. Copyright © 2015 NTT DATA Corporation 12 PostgreSQLのパッチレビュー
  • 13. 13Copyright © 2015 NTT DATA Corporation パッチレビューはコミュニティへの貢献方法の一つ コミュニティへの貢献方法は • 新規機能の開発 • バグ修正 • バグ報告 • パッチのレビュー など様々。 もちろん、 • ソースコード内のコメントのtypo修正 • ドキュメントのtypo修正 もコミュニティへの貢献です。
  • 14. 14Copyright © 2015 NTT DATA Corporation コメントのtypo修正もコミュニティへの貢献の一つ
  • 15. 15Copyright © 2015 NTT DATA Corporation レビュアーとしてコミットログに
  • 16. 16Copyright © 2015 NTT DATA Corporation 必要なもの • 開発環境 • Linux, Windowsどちらでも • PostgreSQLがコンパイル、起動できるように • PostgreSQLのソースコードが見れるように • gitあると便利です (例) Mac + VMFusion(CentOS) + git + emacs • ネット環境 • ソースコードの入手、MLへの投稿で必要 (例) git使うときとメール送るときしかネットを使わないので、テザリング環境でも十分 • メールアドレス • コミュニティで議論するために必要 (例) gmailアカウントを作る • PostgreSQLコミュニティのアカウント • Commit Fest Appで必要 • C言語の知識 • C言語で書かれたソースをレビューするので • 少しの英語力 • 中学生レベルの英語でOK(だと思います)
  • 17. 17Copyright © 2015 NTT DATA Corporation メーリングリストへの登録 PostgreSQLコミュニティでのコミュニケーションはメーリングリストが主体です。 登録しておくべきメーリングリストは3つ • pgsql-hackers • [email protected] • 開発、バグ修正関連の議論はここで行われる。パッチレビューコメントを送るのもここ。 • pgsql-committers • [email protected] • コミットされた内容が流れる。何がコミットされたかを知る為に必要。 • pgsql-bugs • [email protected] • バグレポートの内容や、その後の議論がここで行われる。 http://www.postgresql.org/community/lists/subscribe/ から今すぐ登録!
  • 18. 18Copyright © 2015 NTT DATA Corporation パッチレビューの流れ レビューコメントを送る パッチをレビューする これまでの議論を追う レビューするパッチを決める
  • 19. 19Copyright © 2015 NTT DATA Corporation レビューするパッチを決める 決め方は人それぞれ • 機能、分野別 • プランナ関連、インデックス関連、レプリケーション関連… • contribモジュール別、クライアントアプリケーション別… • 実業務で関連しそうな所 • 自分が興味ある所 • 難易度別 • PostgreSQLのバックエンド機能(プランナ、レプリケーションなど)より、 PostgreSQLのフロントエンド機能(psql, pg_dump、pgbenchなど)の方が、読むコード 量が少ない場合が多く、取り掛かりやすい • 規模別 • 大きい機能をレビューしてみたい!(UPSERT、BRINなど) • 簡単なバグ修正
  • 20. 20Copyright © 2015 NTT DATA Corporation 議論を追う 既に議論が進んでいる場合は、これまでの議論をキャッチアップします。 • どんなことを解決する機能なのか?ユースケースは? • どのようなインタフェースで作られているか? • 議論の雲行きを見る。 • それまでの議論での合意事項、未合意事項。
  • 21. 21Copyright © 2015 NTT DATA Corporation パッチをレビューする レビューのレビュー コーディング・レビュー 性能試験 アーキテクチャ・レビュー 機能テスト 提案・仕様レビュー そのパッチは 本当に必要? 既存機能との重複 はない? 仕様通りに動く? クラッシュしない? 本当に性能向上する? 他の機能の性能に影響 を与えてない? コーディング規約 に沿っている? 十分なコメントが ある? 将来問題になりそうな 依存関係がないか? 他のモジュールと組み 合わせても問題ない か? レビューアは本来 やるべきことをす べて行ったか? 参考:https://wiki.postgresql.org/wiki/Reviewing_a_Patch/ja
  • 22. 22Copyright © 2015 NTT DATA Corporation Wikiの内容に沿ったレビュー
  • 23. 23Copyright © 2015 NTT DATA Corporation (例)よくやるレビューの流れ • パッチをHEADにあててみる • git diff --check • コンパイル • リグレッションテスト(make check-world) • 仕様通り動くか? • 性能試験 • 思いつくいろんな使い方をしてみる • 境界値テストとかでもOK • すごい大量に実行してみたり、すごい長い文字を入れてみたり • レプリケーション環境でもちゃんと動くか?pg_upgradeしても問題ないか? など ここまでで何か問題があれば、それを開発者に伝えてあげましょう!
  • 24. 24Copyright © 2015 NTT DATA Corporation パッチがHEADに当たらなかった
  • 25. 25Copyright © 2015 NTT DATA Corporation 仕様通りに動かなかった
  • 26. 26Copyright © 2015 NTT DATA Corporation (例)そして、パッチを見ていく(コードレビュー) • コーディング規約 • インデントはスペースは4つ。コメントの書き方もチェック。 • コーディング規約:http://www.postgresql.org/docs/current/static/source.html • コメント • 適切なコメントが書いてあるか?コメントの更新忘れはないか? • ドキュメントパッチ • ドキュメントの内容に間違いはないか?typoはない? • リグレッションテストパッチ • テストすべきテストケースがリグレッションテストにあるか? • 既存コードの流用 • 既存のコードをうまく利用して作られているか?無駄なコードはないか? • 環境依存(Windows対応) • Windowsでも動くように。 • レビュアーそれぞれの視点 • 実装方法がいまいちだと思う。この既存機能と衝突しそう。 • ここのロジックはもっとシンプルに実装できそう。
  • 27. 27Copyright © 2015 NTT DATA Corporation メールを書くときのポイント • 日本語を書いて英語に訳す?最初から英語で考える? • 具体的な例を出して説明する • For example … • 他の人が書いている英語のマネをする • 文を無理に長くしなくてもよい • I applied the patch to HEAD. But I got FAILED. … • 箇条書きにする • 分からないことは素直に聞いてみる • PostgreSQLコミュニティの人は優しい人が多い
  • 28. 28Copyright © 2015 NTT DATA Corporation レビューコメントを送る 例えば、 Thank you for updating the patch. The followings are my review comments and questions. * pg_stat_vacuum_progress should have the oid of relation begin vacuumed. * progress_message variable in PgBackendStatus is not used at all. IIRC, progress_message variable is set the description of processing. * The progress of VACUUM FULL seems wrong. When I run VACUUM FULL for a table, I got following progress. =# SELECT * FROM pg_stat_vacuum_progress; : : * The vacuum by autovacuum is not displayed. Could you check this on your environment? Regards, -- Masahiko Sawada
  • 29. 29Copyright © 2015 NTT DATA Corporation いざ、レビューコメントを送信 • 返信は必ずpgsql-hackersをTOに入れる。(作成者個人宛てに送らない) • 議論の途中であれば、議論に参加している他の開発者もTOまたはCCに入れる。 • 基本「reply all」で問題なし。 • メールを送ったら、パッチのステータスを「Waiting on Author」に変更 ここから本当のコミュニティ活動が始まります。 議論→レビューを繰り返し、自分が満足いくまでレビューをしましょう。 また、必要に応じて議論にも参加しましょう! 「”Ready for Committer” is reviewer saying, “Based on my review, I would have committed this if I had been the patch’s committer.”」
  • 30. 30Copyright © 2015 NTT DATA Corporation 最後に • CF3はすでに始まっています! • 約100個のパッチが登録 • その中で「Needs review」は約半数(本日時点) • ちなみに、FreezeMap(PageInfoMap)パッチをレビューしてくれるかた募集中です! • これまでの議論の経緯、パッチの説明、全部します。
  • 31. Copyright © 2011 NTT DATA Corporation Copyright © 2015 NTT DATA Corporation
  • 32. 32Copyright © 2015 NTT DATA Corporation (参考) パッチをあてる、リグレッションテストまでのコマンド例 • 開発版のソースコードを入手 • $ git clone git://git.postgresql.org/git/postgresql.git ※既に開発版を入手している場合は、「$ git pull origin master」等で最新にします。 • パッチをHEADにあててみる • $ cd postgresql • $ patch -p1 < <パッチへのパス> または、 • $ git apply <パッチへのパス> ※patchコマンドではあてられるHUNKは全て実際に変更を加えるのに対し、git applyではHUNKが1つでもあたらない場 合に、パッチ全体の適用をやめます(つまり、git applyではパッチの適用がアトミック) • git diff --check • $ git diff --check ※ソースコード末尾に空白等がある場合に検知できます。 • コンパイル • $ make -j 4 > /dev/null ※こうするとコンパイルWARNINGが出た時だけわかります。ただし、 In file included from gram.y:13990: scan.c: In function ‘yy_try_NUL_trans’: scan.c:10192: 警告: unused variable ‘yyg’ は、いつも出るWARNINGなので無視します。 • リグレッションテスト(make check-world) • $ make check-world | tee /tmp/check-world.log • $ less /tmp/check-world.log ※make check-worldの結果を目で確認しつつ、ログを「FAILED」でgrepします。