2002年2月5日,オープン・ソースのRDBMSであるPostgreSQLの新バージョン7.2がリリースされた。PostgreSQL開発の中心メンバーであり,「はじめてのPostgreSQL」の著者でもあるBruce Momjian氏に,今後の開発方針などについて聞いた。次バージョンとなる7.3では,双方向のレプリケーション(非同期複製)などをサポートすると語る。(聞き手は高橋 信頼=日経オープンシステム)

Bruce Momjian氏
---PostgreSQLの開発体制について教えてほしい
 PostgreSQLは,米California大学Berkley校で開発されたpostgresが源流で,1996年に我々が受け継いだ。当時California大学で開発にあたっていたJolly Chen氏とAndrew Yu氏が,時間的制約から開発を継続できなくなったため,我々が手を挙げた。

 当初6人のコア・メンバーが中心になって開発していたが,現在はThe PostgreSQL Global Development Groupとして多くの開発者が加わっている。多国語対応などを担当してくれている,日本PostgreSQLユーザー会会長の石井達夫氏もGlobal Development Groupのひとりだ。日本からはほかに井上浩氏も加わってくれている。彼も非常に素晴らしい技術者だ。

 私の役目は,多くの開発者をコーディネートすることだ。誰も引き受けたがらない役目なのでね(笑)。開発者を目的にフォーカスさせ,どのような機能が必要か,優先順位をつけ,横道に逸れないようにするのが仕事だ。

---新しいバージョン7.2の特徴は
 不要になったデータを再利用可能にするための処理であるvacuumを,テーブルをロックしなくとも行えるようになり,長期間止められないシステムでも採用しやすくなった。

 大規模システムへの対応も強化した。オプティマイザを強化し,問い合わせ処理などをより効率的に行えるようにした。light weight lockと呼ぶ,コストの低いロック機構の追加などにより,マルチプロセッサ・システムでの実行性能も向上した。

 セキュリティ関連では,パスワードをMD5(Message Digest #5)で暗号化して格納する機能なども備えた。

---今後の機能強化の予定は
 9カ月ごとに大きなバージョン・アップを行うことを目標にしている。次のバージョン7.3では,レプリケーション(非同期更新)を実装する予定だ。いくつかの技術を検討した。

 最終的に,カナダの大学に在籍している研究者が開発したPostgres-Rという,サーバー間のメッセージ交換をベースにした実装を採用することにした。マスターからレプリカへの一方向だけでなく,複数のサーバーが相互に複製できる双方向のレプリケーションだ。複数のサーバーが同時に同じデータを更新してしまうコンフリクトの発生を回避するための機能も備える。トリガー・ベースの実装はパフォーマンスが悪化するので採用しなかった。

 そのほかにも追加したい機能たくさんはあるが,詳しくはオフィシャル・サイトのTODOリストを見てほしい。

---あなたがVice Presidentを務めていた,PostgreSQLのサポートなどを業務とする会社である米Great Bridgeが,2001年9月,出資が集まらず業務を停止した
 Great Bridgeには,PostgreSQLのコア・メンバー3人を雇用していた。その3人は今もPostgreSQLの開発を続けている。私に関して言えば,PostgreSQLの開発にかける時間はむしろ増えた(笑)。Great Bridgeの営業停止が,PostgreSQLの開発に影響を与えることはない。

 オープン・ソースは,ビジネス・モデルとしてはまだ確立されていない。しかし,開発モデルとして最高であることは間違いない。資金に制限されることなく,広く優れた技術者と知恵を集めることができる。だからこそPostgreSQLはこれだけ短期間に,ここまで発展できた。