PGConf.ASIA 2018 にボランティアスタッフとして参加した話

# はじめに
[NTTテクノクロス Advent Calendar 2018](https://qiita.com/advent-calendar/2018/ntt-tx)の 17日目担当 @U_ikki です。

最近、PostgreSQL関連の業務からは離れていますが、以前はPostgreSQLを使用したシステムでのトラブルシューティングを行うサポートや新機能の検証等の業務に携わっていました。
NTTテクノクロスでは、[OSSクラウド基盤トータルサービス](https://www.ntt-tx.co.jp/products/osscloud/service/migration/?utm_source=qiita&utm_medium=ac2018&utm_campaign=17)ということでオンプレからの移行で PostgreSQL 等を扱っています。

今回の記事では、個人でボランティアスタッフとして参加してきた PGConf.ASIA 2018 についてスタッフ視点でご紹介いたします。あとは、おまけとして、合間で聴講していたカンファレンスのセッションについて書こうと思います。
この記事を読んで PostgreSQL やコミュニティ活動に少しでも興味を持っていただければ幸いです。

# 1. PGConf.ASIAって何？

PGConf.ASIAは、アジア圏最大級のPostgreSQLイベントとして、PostgreSQL20周年の2016年に世界の開発者とアジア圏の技術者の交流の機会の場として始まった国際カンファレンスです。公式サイトは[コチラ](https://www.pgconf.asia/JA/2018/)です。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/125929/e852a572-5eda-63e2-cfce-b54c28d99b6e.png)　←登壇者のサインボード
以下の構成で秋葉原コンベンションホールで開催されました。

|日程|概要|
|:---|:---|
|2018年12月10日（DAY0）|プレユーザカンファレンス<br>※別会場で[Developer Unconference](https://www.pgconf.asia/JA/2018/day0-developer-unconference/)を開催|
|2018年12月11日（DAY1）|カンファレンス 1日目<br>午前中に基調講演を含む|
|2018年12月10日（DAY2）|カンファレンス 2日目<br>LTを含む|

来場者数はまだ公開されていませんが、述べ人数だと300～400名といったところかと思います。

## DAY0 で実施していた Developer Unconferenceについて
また PGConf.ASIA とは主催が異なりますが、同時開催のイベントとしてDAY0では別会場にてPGDG（PostgreSQL Global Development Group）主催のDeveloper Unconferenceが行われました。日本の開発者だけでなく、海外から多くのコアメンバが集まり、今後のPostgreSQLの開発についての話し合いが行われていました。

内容は開発者向けですが参加は自由なので、開発に興味があり、英語もイケる！という方は来年参加してみてはどうでしょうか。（3年連続で実施しているのできっと来年もあるはず。）

Unconference の議事録は PostgreSQL の wiki に [＜公開＞](https://wiki.postgresql.org/wiki/PGConf.ASIA2018_Developer_Unconference) されています。議論の結果だけ見るだけでも勉強になると思いますので、興味のある方はぜひ参照してみてください。

# 2. ボランティアスタッフの仕事について

ボランティアの募集時期は10月頃から行われており、PGConf.ASIA 2018の公式HPにて呼びかけがあります。
毎年10名程度が参加されており、カンファレンス当日は実行委員のメンバと合わせて20～30名で運営が行われます。

ボランティアの参加希望の連絡を出してからの返事は早く、1、2日で承認の連絡をいただきました。（ただ、タイムテーブル等の詳細情報の周知があるのは12月に入ってからなので、実際に動き始めるまではしばらく時間があります。）
基本的にボランティアは当日スタッフとして参加することになるので、それまでに何か仕事を依頼されるということはありません。そのため、顔合わせをするのは当日になるので、まずはスタッフの顔と名前を一致させるのが重要でした。

- スタッフの当日の主な仕事
  - 会場の準備/片付け
  - 入退場の管理（受付）
  - 登壇者のアテンド
  - セッション対応
      - 司会
      - 照明、音響調整
      - 同通機器の回収、ドア開閉

今回、自分が担当したのは「会場の準備/片付け」、「入退場管理」、「機器回収、ドア開閉」でした。
当日流れとそれぞれの仕事内容がどんな感じだったのかについては、以下で簡単にですが紹介させてただきます。

## 当日の流れと担当した役割

朝は開場の1時間前ぐらいに集合し、スタッフミーティングを行い、当日の変更内容や注意事項について説明があり、質疑の後、それぞれの担当に分かれていきます。

- 会場の準備/片付け
    - ポスター等印刷物の作成や記念品の袋詰等の多くの作業は実行委員の方が事前に実施されているので、当日は所定の場所に配置したりするだけです。

- 入退場管理
    - 入り口での受付です。チケットのPDFを提示していただき、パスと記念品をお渡しするだけなので、難しくはありません。
    - 朝イチは人がガッと来るので担当者間での連携が必要になります。当日は窓口が3名、どの窓口行くか案内する人が1名という体制で運用しており、割とスムーズにできていたかと思います。

- 機器回収、ドア開閉
    - 今回、セッションAでは同時通訳を用意していたため、そのレシーバーの配布と回収を行っていました。日本語のセッションの場合は海外の方にレシーバーをおすすめし、海外の方が発表されるときは日本の方にお渡しするというような感じです。

- その他
    - 作業ではありませんが、その他としては1日が終了したあと、最後のお客様を見送った後に反省会を実施します。運営で何か問題がなかったか、次の日の対応で変更すべきことがないか等について話し合います。

ちなみにですが、どのスタッフがいつどこで何をするのか情報が記された資料はスタッフ全員に配布されているので、当日は大変助かりました。（結構、細かい内容まで明記されているのでこの資料さえあればどうにかなるという感じです！）

# 3. プログラム委員について
紹介が遅くなりましたが、PGConf.ASIAには実行委員とは異なるメンバで構成されたプログラム委員というものが存在します。

メンバはPGDGのコアメンバとPostgreSQLのコミッタの方で構成されており、送られてきたCFPの内容（タイトルや概要）を元に、カンファレンスでの登壇者を決定しています。（この決定に実行委員は口を挟めません。）

※どのような審査基準で決定しているのかはプログラム委員で閉じており、他のメンバは知ることはできませんが、やはりトレンドの機能やコミュニティとして力を入れているものは必ず入ってきているな。という印象です。

# 4. ボランティアに参加しての感想
今回、3日間ボランティアスタッフとして参加させていただきましたが、皆さん、このイベントのために多くの時間を使い、準備してきており、イベントに対する期待と熱量を感じることができました。

運営委員の中には現在はPostgreSQLとは関係ない業務をされている人もおり、そういった方は普段の業務と並行する形でこちらに参加しており、少しでもPostgreSQLを盛り上げるのに貢献できれば。とおっしゃっていました。（素晴らしいですね）

参加しているスタッフは10社に及んでおり、その分、組織として動きにくい部分があるかもしれませんが、皆さん会社の垣根を超えて活躍されていたかと思います。

# 5. カンファレンスレポート
スタッフは空いた時間には自由にカンファレンスを聴講してもよいということでいくつか聴講させていただきましたので、その範囲にはなりますがご紹介します。
※資料のリンクは見つけ次第、追加しておきます。

## 5.1. DAY0（プレユーザカンファレンス）

![image.png](https://qiita-image-store.s3.amazonaws.com/0/125929/9ffdd6d3-3ee1-72f8-e217-ca21983d3c1c.png)←朝、参加者を待ち受ける図


### session1 （エンジニアのためのオープンソースソフトウエア動向）
黒坂 肇 / 日本 OSS 推進フォーラム

PostgreSQLだけでなくOSS全体の歴史に触れつつ、新しいイノベーションを起こしていくためにOSSをどう活用していくのか、競争力を付けるためにエンジニアをどう育成していくのかということについてお話をされていました。

北東アジアの状況についてお話で中国ではコミュニティに参加する企業が年々増えてきているそうで、ソフトウェア開発に力を入れており、日本としても市場の一つではなく、お手本とする機会も多くなるだろうというお話をされていました。

エンジニアは不足している昨今、フルスタックのエンジニアを育成するのはどうすればいんでしょう。。。正直、興味がある部分は頑張れますが、そんなに興味がない分野でも頑張れるか汗

### session4（IT ベンダから見た PostgreSQL ～これから PostgreSQL を始める方へ～）
湯村 昇平 / 日本電気株式会社

PostgreSQLがどう良くなっているかやNECでのおすすめの設定や事例について紹介に加え、PostgreSQLを採用するにあたって考えないといけないことなどについてお話がありました。

考えないといけない4つのポイントはたしかにこれからPostgreSQLを扱うというかたは必要な内容かと思いました。

- ソースレベルで本体側のバグを発見した場合の対応
- バージョンのサポート
- サポートするプロダクト
- 商用からの移行

移行案件の事例の話でありましたが、同じような機能でも実際に動かしてみるとレコードの見え方が違っているという話はよくあるので、やはり検証は十分にしておかないといけないですね。

### session5（Windows でも PostgreSQL が使いたい）
山本 育 / [PostgreSQL エンタープライズコンソーシアム](https://www.pgecons.org/)

導入として、Windows版とLinux版の違いについても詳細な説明あり、プレユーザ向けに丁寧な説明がされ、本題として、WindowsでPostgreSQLを使用した場合に実際に性能差があるのか？ということについて、SELECT/INSERT/DELETE/UPDATEについて性能測定を行い、その結果を報告されていました。

結論としては、システムに影響があるような性能差はない。ということでした。
また、Windows版の違いについてですが、対応していないcontribモジュールがあったり、インストーラーを使用すると指定できないものがあったり等、初めて知ることも多く勉強になりました。

会場でWindowsでの利用者がどれくらいいるかという質問がありましたが、PostgreSQLを利用していると挙手された方の半分くらいがWindowsでも利用しているということでした。
想像していたよりも多くの方がWindowsで使っているようで驚きました。

Linuxでの情報は多いですが、Windowsでの知見はまだまだそんなに多くはないと思うので、今後もこういった情報が事例等が出てくれば喜ぶ会社も多そうですね。

## 5.2. DAY1

![image.png](https://qiita-image-store.s3.amazonaws.com/0/125929/16c224f4-35c3-ec8f-ed84-69dad86d29ea.png)

###keynote1（What is the Future of PostgreSQL?）
Robert Haas / EnterpriseDB
[スライド](https://www.pgconf.asia/JA/2018/wp-content/uploads/sites/3/2018/12/D1K1.pdf)

スタッフの仕事があったので、前半は聞けていませんが後半では、現在注目が集まっているpluggable storageの導入による利点（開発における既存の機能へのリスク低減による開発の活性化）について語られていました。

また、スレッドモデルへのコンバートについてのお話も少しあり、質疑ではどれくらいの確度があるのか盛り上がっていました。スレッド化を実現するには解決すべき課題は多く、コミュニティメンバの活躍が必要不可欠ということでした。

###keynote2（PostgreSQL and its ecosystems in China and North America）
Grant Zhou / Highgo
[スライド](https://www.pgconf.asia/JA/2018/wp-content/uploads/sites/3/2018/12/D1K2.pdf)

こちらもスタッフの仕事があり、途中だけしか聞けていません。

中国でPostgreSQLの普及が進んでいる理由としては、ライセンスが自由であることが大きいとのことでした。特に基幹系システムではPostgreSQLが好まれているそうです。
※自由というのは、ライセンス料がないことを言っているのか、ソースを改造しても公開しなくてもよいという話だったのかは、部分的にしか聞いていないのでわかりません。。。

### session1（Minimize Downtime! PostgreSQL Major Version Upgrade Using built-in Logical Replication）
鳥越 淳 / NTT OSS センタ

タイトルどおりですが、ロジカルレプリケーションを用いることでメジャーバージョンアップ時のダウンタイムを最小化できるということについてのお話でした。

会場でロジカルレプリケーションを使われているという方は会場の1/3程度いらっしゃり、思ったよりも人数が多いなという印象です。

セッションでは、ロジカルレプリケーションの仕組みについて詳しく言及されており仕様を理解する上でとても参考になりました。
注意点として、ロジカルレプリケーションを用いたバージョンアップを行うには、対象のシステムがロジカルレプリケーションの制約に該当しないことが前提であること。また、リソースに一番負荷の掛かる初期同期の部分の制御がPostgreSQLからは調整できない等の情報もあり、勉強になりました。

## 5.3. DAY2

###session2（Caught up in bloat? Over to ZHeap!）
Dilip Kumar / EnterpriseDB

おそらく今回のカンファレンスで特に注目度が高かったのではないかと思われるセッション。
ZHeapとは、PostgreSQL用の新しいテーブルストレージフォーマットで、（ざっくり過ぎてですが）UNDOログに古い行を移すことでデッドな領域を作成させず、そもそもVACUUMを不要にするというものです。

セッションでは、ZHeapがどのようなページ構造になっているか等の詳細が説明されていました。（が、理解が追いつかなかったので、後日資料が公開されたら改めて内容を確認させていただこうと思います。）

ZHeapについてはEDB社の[blog](https://www.enterprisedb.com/blog/do-or-undo-there-no-vacuum)に書かれているので、興味のある方はぜひ参照ください。

###session2（HypoPG 2: Hypothetical Partitioning support for PostgreSQL）
細谷 柚子 / NTT OSS センタ
Julien Rouhaud / LzLabs

ZHeapと同じ時間帯でやっていたもうひとつのセッションです。

今が旬のパーティショニングのシステムへの導入にあたって、注目されている周辺ツール [HypoPG](https://github.com/HypoPG/hypopg) のお話。
※ちなみに、この記事を書いた12/14時点では2.0はまだbeta版でした

宣言的パーティショニングの実装により、PostgreSQLではパーティショニングを導入しやすくなり、活用の場面は確実に増えています。しかし、パーティショニングは構成によっては性能があまり出ないこともあるため、どのように組むのかが重要になってきます。
このセッションでは、仮想的なパーティショニング構成を組むことで実際に組んだらどうなるだろうというのを低コストで試すことができるようになります。

これからパーティショニングをやりたいというかたはぜひ使ってみて、導入したらどうなるのか確認してみてはどうでしょうか。

###session5（Monitoring PostgreSQL at Scale）
Lukas Fittl / Citus Data
[スライド](https://speakerdeck.com/lfittl/monitoring-postgres-at-scale)

PostgreSQLがもつ統計情報のテーブルを利用して、どういった情報をユーザが取得できるのかというのを、SQLの例を使いつつ説明されていました。（high CPU utilのクエリを特定するには？等々）

タイトルのスケールごとにどのようなモニタリングをするか！という話はあまりなかったですが、モニタリングするときにどのようにすれば確認できるのかというのが、SQLの例を交えつつ、いくつも紹介されていたので大変参考になりました。

### Lightning Talks

![image.png](https://qiita-image-store.s3.amazonaws.com/0/125929/4247bf39-c8d6-b6e1-5541-90331d732f9e.png)

今回も怒涛の各5分間のセッションでした。

- PL/CUDAはいいぞ
    - https://www.slideshare.net/kaigai
- swarm64と組み合わせて分析力強化
- pgbench改造しながら書き込み負荷分散を試したら48並列までは早かった
- インドネシアでOracle to PGにマイグレーションしたら、Cost Down & 性能Up
- ETLツール作って大量データを読み込んだ

## 4.4. social party
最終日の最後には登壇者やイベント参加者の交流の場として、パーティーが開催されました。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/125929/e8ed2c5d-7077-da82-a28a-bb90ff5b0b86.png)

海外のからの方を含め多くの方が参加され、盛り上がっていました。Sake（日本酒）は海外の方からも評判はよく皆さんよく飲まれていました。

# さいごに
長くなってしまいましたが、以上になります。

今回カンファレンスにスタッフとして参加させていただきましたが、多くの方と交流する良い機会になり、とても良い経験になりました。ただ、できればもう少し英語のスキルがあれば。と思います。海外の方も多くいらっしゃったので、もっと PostgreSQL について情報交換をしたかったです。（特に聞き取りが厳しかったです）

普段カンファレンスに参加されている方も、もし機会があればスタッフ側として参加してみるとまた違った見え方になるので、ぜひやってみてはいかがでしょうか。
来年も機会があれば、スタッフ、一般参加者、登壇者かいずれかの形で参加しようと思います。

それでは、明日もNTTテクノクロス [Advent Calendar 2018](https://qiita.com/advent-calendar/2018/ntt-tx)をお楽しみください。
明日は @NaotoHanaue さんのDockerのストレージに関する記事です。お楽しみに！