クラウドコンピューティングの普及にともない,
リレーショナルデータベースとして23年の歴史をもつPostgreSQLもまた,
新しい機能を入れるといままで見えなかった課題が見えてくる
- ――リリースされてからすでに2ヵ月ほど経ちましたが,
まずは10月にリリースされた 「PostgreSQL 11. 0」 の特徴についてお話いただけるでしょうか。 石井:今回のバージョンアップではパーティショニングが非常に強化されました。個人的にはJITコンパイラによる高速化,
そしてインデックスだけで問い合わせが完了する (テーブルアクセスを必要としない) カバリングインデックスによる問い合わせの高速化も, 大きなポイントだと思っています。また, 地味ですがパラレルクエリの高速化も重要なアップデートですね。 - ――ほかのデータベースと同様に,
ここ数年のPostgreSQLもクラウドにフォーカスした機能強化が続いている印象を受けるのですが, 今回のバージョンアップもやはりクラウドネイティブな方向に向かっていると見てよいでしょうか。 石井:もちろんそういう面もありますが,
PostgreSQLは大容量, 大量ユーザ, 高速化という課題に対し, OLTPとOLAPという2つの側面からアプローチしています。そしてこれまでの経緯からいえばやはりトランザクション処理の改善が中心にあり, たとえばロックのオーバーヘッドを減らしたり, 今回のパーティショニング強化などはそうした流れの延長線上にあります。一方, OLAPに関してはOLTPよりもやるべきことが多いというのが正直なところですね。先ほど触れたパラレルクエリの高速化はOLAPへの取り組みという面でも重要な機能強化だといえます。 クラウド指向な機能強化という流れでいえば,
パーティショニングの大規模対応をより進めていくことが挙げられます。PostgreSQL 11ではパーティショニングの管理機能がかなり改善されましたが, まだパフォーマンス的に伸びる余地は大きいと見ています。先日, 富士通の開発者の方が 「パーティションの数を10くらいに増やしても性能の劣化はほとんど見られないが, 100や1000など極端に増やすと途端に落ちてしまう」 という話をされていましたが, 現在, この課題を解決するためのパッチが出てきているところです。PostgreSQL 12, またはその先のPostgreSQL 13では, パーティショニングの大幅な改善が期待できるはずです。 - ――パーティショニングの強化を図ったらまた別の課題が見えてきたという感じでしょうか。
石井:PostgreSQLに限らず,
これがオープンソース開発のおもしろいところだと思うのですが, 新しい機能を入れるといままで見えてこなかった課題が可視化されてくるんですね。たとえば今回のアップデートの目玉であるJITコンパイラにしても, 実装してみたら自律的に性能を出すというレベルまでにはいかなかったので, 現状ではデフォルトでオフとなっています。しかしこうしたことは実際に入れてみなければわからないですし, 試行錯誤の繰り返しがあってソフトウェアの開発は発展していくと思っています。
- ――PostgreSQL 12以降で,
石井さんが個人的に解決したいと思っている課題はなにかありますか? 石井:私は最近はそれほど新機能の開発に深くコミットしていないのですが,
SRA OSS全体で取り組んでいる課題としてマテリアライズドビューがあります。OracleからPostgreSQLへの移行における阻害要因のひとつとされているのがマテリアライズドビューの問題で, PostgreSQLの場合, 定期的にリフレッシュ (更新) するのですが, 差分でのリフレッシュができません。したがって差分リフレッシュに比べて大幅に時間がかかってしまいます。マテリアライズドビューの改善に関しては以前からニーズはあったのですが, 一時期トーンダウンしてしまい, あまり話題に上らなくなってしまいました。ですがポルトガルで行われた 「PGConf. EU 2018」 で当社の若手エンジニアがマテリアライズドビューの改善に関する発表を行い, ニーズがまだ存在することを確認できたので, 長い目で見ながらじっくりと取り組んでいきたいと考えています。
“フェアでフラットな開発コミュニティ” を作るために
- ――PCConf.
EUなど, 石井さんは以前からグローバルのカンファレンスやコミュニティ活動にも積極的に参加されていますが, 最近のPostgreSQLコミュニティに関してはどうご覧になっていますか。 石井:コミュニティの活動内容そのものは今も昔もそんなに変わりはないですが,
新しい人や若い人をコミュニティに引きつけることはやっぱり難しくなってきていると感じます。とくに日本はただでさえIT系の人材が不足しているのに, その中でデータベースやオープンソースの開発に興味をもつ人を見つけることは非常に大変なのではないかと。ただ, PostgreSQLは非常にオープンなプロジェクトであり, そのオープン性に魅力を感じる人は少なくないと思うので, 個人的にはそれほど悲観していません。技術的に良い提案であれば, 若い人でも開発の中心にコミットすることができる, それは開発者として非常に魅力的なことだと思います。また, PostgreSQLの開発コミュニティ自体, いろいろな方が集まっているので, 組織運営に関するノウハウも学ぶ場所としてもおもしろいのではないでしょうか。 コミュニティの運営に関しては2018年に大きな動きがひとつありまして,
8月にCode of Conduct (CoC) が公開されました。個人的にはこれをPostgreSQLにとって非常に重要なマイルストーンだと捉えていて, 人種や性別などによる差別を許さない, フェアでフラットな開発コミュニティを作っていこうとする姿勢は非常に評価できます。少なくとも5年前に比べるとずいぶん若い人や女性をカンファレンスで見るようになりましたから。 実はこの話は続きがありまして,
私はPostgreSQLエンタープライズコンソーシアムのコミュニケーションリレーションシップの部会長を務めているのですが, そこの方々にCoCの話をしたところ 「ぜひ日本語に翻訳して公開しましょう」 という流れになりまして, コンソーシアムの方で翻訳にお金を出し, 日本語での公開が実現しています。こうしたトレンドは世界共通かもしれませんが, 国内外を問わず, PostgreSQLコミュニティ全体が良い流れに乗っているという感じはすごくありますね。現在, グローバルでもPostgreSQLのシェアが増えているのですが, コミュニティに良い空気が流れているということも影響しているのかもしれません。