PostgreSQLサミット、成功裏に閉幕
カンファレンスは、同プロジェクトに長く関わってきた著名な開発者Bruce Momjianの基調講演で幕を開けた。冒頭、PostgreSQLに未処理のパッチはありませんと報告して笑いを誘ってから、カンファレンスの開催理由を説明した。そして、PostgreSQLの小史と、その未来について語った。
MomjianはPostgreSQLで担ってきた自身の役割を大いなる名誉だと言い、プロジェクトの10年先は見当もつかないが、現在よりもPostgreSQLのようなツールが広く使われるようになっているだろうと述べた。
Bruce Momjian |
そして、大いなる日々は過ぎてからそれと分かるものだとMomjianは述懐した。結婚式や卒業式であれば日取りが決まっているし招待状も来る。しかし、意義ある出来事は前触れもなく起こるものだ。オープンソースの開発者がプロジェクトに関わるのも、同じようなところがある。暇なときに数時間で作ったパッチを投稿することから始まり、次第にのめり込み、気がつくと専任者になっていたという人が大半だというのである。
PostgreSQLの歴史
PostgreSQLが生まれたのは1980年代、ところはバークレーのカリフォルニア大学だった。当時関わった人たちのほとんどが「就職」し、Momjian言うところのメンテナンス・モードに入っていた1996年4月のこと、Marc Fournierが1通の電子メールをpostgres95メーリングリストに送った。それは、PostgreSQLには大きなものだけでも欠陥が山ほどあると指摘し、時間と場所さえあれば有用なプロジェクトになると提案していた。
議論が始まると、Fournierは自らプロジェクトの開発サーバーを提供する用意があると述べ、バークレーを離れて近代的なオープンソース・プロジェクトにすることを提案した。Fournierは、議論の中で、少数の開発者が時間をかけて取り組む必要があると指摘し、多くの開発者が少しずつ関わるのではうまくいかないと述べている。
Fournier提供のCVSUPサーバーは1996年7月8日に現実のものとなった。今回のカンファレンスの開催日はこの日を記念したものである。直ちにリリースに向けた作業が始まり、プロジェクトはメンテナンス・モードを脱したのだった。
続いて、Momjianは1997年以来のPostgreSQLウェブサイト――象が煉瓦の壁を叩いているコミカルなロゴから現在のプロフェッショナルな組織を連想させるものまで――を展望した。
次に、世界地図を示した。そこには、PostgreSQLを代表して訪れた個所がプロットされている。北米・欧州・アジアのほとんどにマークがあり、近々、インドとパキスタンを訪問する予定だという。そして、プロジェクトの歴史の中で折々に作成されたCDと日本語版PostgreSQLマニュアルを披露する「発表会」で、Momjianは基調講演を締めくくった。
基調講演の次に、EnterpriseDB のCEO、Andy Astorが登壇し短い発表を行った。同社は約100名を擁する企業にまで発展したが、PostgreSQLだけを扱っているという。「取り組むべき仕事が得られたのはPostgreSQLのお陰」だと述べ、使途を将来の開発に限定した募金に2万5000ドルを拠出すると表明した。
次に登壇したGreenplumのAyush Parasharは、PostgreSQLをベースとするBizgresデータベースのパフォーマンス改善について話した。Bizgresのソートとコピーのアルゴリズムに加えたさまざまな改良について説明し、Bツリーではなくビットマップ・インデックスを用いることで、疎な大規模データベースのパフォーマンスが大きく改善されると述べた。
その改良はPostgreSQLに移植されるのかという質問に対しては、Greenplumの別の社員が、十分なテストを行ってコードが確立してからだと答えた。
一方、PostgreSQLの開発者でありカンファレンスの責任者でもあるJosh Berkusは、PostgreSQL 8.2に盛り込む機能は3週間後には確定されるため、これに組み込むなら、Bizgresパッチを直ちに提供する必要があると述べた。
ライトニング・トーク
第3セッションはライトニング・トークだった。1時間の間に10人が入れ代わり立ち代わりに登場し、きっかり5分間の持ち時間でそれぞれの話題を語っていく。話について行くのが少々難しかったが、理解できた限りでは極めて面白いものだった。最初の2人はVoIP(Voice over Internet Protocol)を専門とする企業Skypeの社員だった。
最初に登壇したHannu Krosingは、Skypeは、PostgreSQLを利用して同社が目標とする規模にまでスケールアップできるようなスケーラブルなデータベース・システムを構築していると述べた。社内でPL/Proxyと呼んでいるこのプロジェクトは間もなくオープンソース化されるそうだ。機能ごとにデータベースを分割し、それを簡易な方法で統合することを基本原理としているのだという。
2番目に登壇したAkso OjaはSkytoolについて語った。ハードドライブのフェイルオーバーと汎用キューイングのためのキューイング・ツールだそうだ。
3番目に登壇したJPUG(Japanese PostgreSQL Usergroup)メンバーのHiroshi Saitoは、PostgreSQLのためのSNMPデーモン、pgsnmpdについて語った。これにより、PostgreSQLデータベースの運用状況が調査可能になるのだという。
4番目に登壇したのはGreg Sabino Mullaneで、DBD::Pgを、最良のデータベースと最良の言語――PostgreSQLとPerl――の統合だと絶賛した。DBD::PgモジュールはPostgreSQLクライアント・ライブラリーlibpqを使っており、do()ループが極めて高速になるという。そのほか、UTF-8(Unicode)サポートなどの強化点についても触れた。
CVSからの離脱を試みているそうで、今後のDBD::PgのリリースはSubversion(svk)上で開発されるという。Mullaneは、PostgreSQLもSubversionに移行してくれたらと考えていると述べた。さらに、Windows、Perl6、parrot、DBI v2もサポートしたいという。
5番目に登壇した自称「M」は、Mac OS X対応PostgreSQLクライアントPGXについて語った。これはPostgreSQL管理ツールではなく、PostgreSQLデータベース用の簡単なフロントエンド・ツールだそうだ。
PGXでは、照会の実行はブロックされない。つまり、データベースの照会中もプログラムは停止せず、ユーザーは作業を続けることができる。照会を中止できるのかとの質問に対しては、まだ書いていないと素っ気なく答えていた。PGXはオブジェクティブCで書かれており、複数のデータベースに同時に同じ内容の照会を行うことができるという。
6番目に登壇したJean-Paul Argudoは、Slony-Iを紹介した。これは、複数の実装に格納されているデータを統合するための汎用ソリューションだ。マスター・データベースをスレーブのネットワークにレプリケーションするとユーザーは多くのデータベースに接続しなければならなくなる。そこで、Slony-Iでは、スレーブ・データベースにマスター・データベースのネットワークをレプリケーションするのだという。
7番目に登壇したCommand Prompt(トルコ)のDevrin Gunduzがテーマに選んだのは、Red Hatクラスタリングだ。PostgreSQLを使ったRed Hat Cluster Suiteについて、データ、ホスト、サーバー、電源の冗長システムとして語った。Gunduzによると、無停止で稼働するという。必要なものは、Red Hat Enterprise Linuxの実行に十分な性能を持つハードウェアと、同じ構成を持つサーバーが2~8台だという。
8番目に登壇したNeil Conwayはバークレー・リサーチ・プロジェクトTelegraphCQについて語った。ストリーム型照会を基本概念とするプロジェクトだそうだ。照会は長命だが、データは短命だからだという。活用例として、セキュリティ・モニタリング・センサー・ネットワークを挙げていた。
このプロジェクトについて知りたい方は、telegraph.cs.berkeley.eduへ。
9番目に登壇したAlvaro Herreraが話題にしたのは、Autovacuumメンテナンス・ウィンドウだった。ほとんどのUnixベース・システムにあるタスク・スケジューラーcronを利用したシステムだという。メンテナンス・ウィンドウで、データベースの負荷が少ない時間帯にクリーンナップを実行するようにスケジュールできるそうだ。
トリを飾ったのはDavid Fetterだった。データベース内のオブジェクトとしてのリレーショナル・データベース管理システムの実行について語り、オブジェクト・ベースのデータベースとリレーショナル・データベースのパフォーマンスの違いを簡潔に論じた。
このライトニング・セッションで、第1日午前の部は終わった。午後は、Gavin SherryとNeil Conwayの2人による「Introduction to hacking PostgreSQL」と題した連続講演で、それぞれ1時間半ずつという長丁場だった。少なくともC言語の基礎知識があることを会場のほぼ全員について確認した後、講演が始まった。
Conwayによれば、PostgreSQLの内部を理解するにはC言語を知っている必要があるが、幸いなことにC言語は学びやすい言語だという。一方、PostgreSQLのコードベースは成熟しており、C言語の学習用コードとしても適切だ。Unixシステム・プログラミングの知識があればなおよいが、知りたい部分によっては不要だという。
デバッグする際の技術的な助言も幾つか述べた。その一つは、コードに説明のつかないバグが入り込んだ場合は、まっさらな状態からクリーンな状態を保ちつつコンパイルし直して原状に戻せというものだった。
また、Emacsを挙げて、快適に作業したければ適切なテキスト・エディターを選ぶことが重要だと述べ、さらに、ccache、distcc、Valgrindなど、デバッグを効率的に行うためのツールを挙げた。
講演の後半はSherryの受け持ちで、分かりやすく楽しいチュートリアル・セッションだった。Sherryはいろいろな注意点を挙げたが、読む人を悩ませる理解しにくい癖のあるコードスタイルは避けるべしというのがその一つ。パッチやコードを書く場合は前後のコードを見て、そのスタイルに合わせるべきだという。
もう一つは、パッチを書こうという場合、とりわけ機能を追加したい場合は、その旨をプロジェクトに伝え、歓迎されるものであることを確かめること。実際、2万5000行のパッチが拒否された例があるという。
そして、パッチを書くときは、以下のように自問してみるとよいそうだ。
- このパッチあるいは機能は有用だろうか
- このパッチは、PostgreSQLバックエンドのためのものだろうか、あるいは、製作現場つまりcontrib/ディレクトリのためのものだろうか。
- すでにSQL標準に定義されていないか。
- すでに他の人が提案していないか。メーリングリストのアーカイブやtodoリストを調べてみよう。
現実に、ほとんどの提案は不適切なものだという。また、コードには十分なコメントを付け、適切なテストをして通ったものを投稿するようにとSherryは警告した。
このPostgreSQLカンファレンスでは、メインイベントの後に、コード・スプリントが用意されている。コード・スプリントについては、Postgres Code Sprintへ。
PostgreSQLに集中化は似合わない
初日最後のセッションは資金調達がテーマで、司会はBerkus。Hiroki Kataokaが登壇しJPUG(Japanese PostgreSQL Users Group)の現状の話から議論が始まった。
日本では競合するMySQLよりもPostgreSQLの方が知名度が高いが、それは早くから日本語をサポートしていたことが大きいという。JPUGは1999年7月23日にディレクター8名、メンバー32名で発足し、今ではディレクター26名、メンバー2,982名に成長している。日本語メーリングリストの登録者数は7,000名だという。
Kataokaが示した日本地図は48都道府県に区分けされており、JPUG支部など、何らかの活動が行われているところに印が付いていた。およそ半数の都道府県に支部がある。JPUGはさまざまな活動を行い、PostgreSQLの普及を図っている。PostgreSQLセミナー、サマーキャンプ、定期発行のニュースレター、PostgreSQLステッカー。JPUGイベント用のPostgreSQL飲料水ボトルまである。日本の登録非営利団体JPUGには、数多くの企業が支援をしている。
次いで、Jean-Paul ArgudoがフランスのPostgreSQL団体postgresqlfr.orgの現状を説明した。Argudoはこの団体の会計を担当しているという。発足は2004年、Drupalを利用したウェブサイトのほかに、irc.freenode.net上にもチャネル#postgresqlfrを開いている。1901年に制定された法律による登録非営利団体で、50のメンバーが年間20ユーロを拠出し、ウェブサイトには2,000名のユーザーがいる。ウェブサイトで寄付を募っているが、初年度のウェブ寄付は25ユーロだけだったという。
ウェブサイトには、PostgreSQL関連文書の仏訳が1,400ページほど、移行に関する情報、仏訳ニュース、本家PostgreSQLウェブサイトの情報が掲載されている。書籍の制作が進行中だという。
そのほかの団体はBerkusが紹介した。現在、寄付を受け付けている非営利団体は4つ、日本ではJPUG、フランスではPostgreSQLfr、ドイツではFFIS、その他の地域に対しては、米国に本拠を置くSPI(Software in the Public Interest)がある。米国では501(c)3による非営利団体となるのは極めて困難で多額の費用を要するため、PostgreSQLはSPIに参加しているのだという。
Josh Berkus |
そして、Berkusは、PostgreSQLに集中化は似合わないと述べた。
以上の紹介に続いて、Berkusは、PostgreSQLの内部組織、とりわけ、非営利団体の扱いとPostgreSQLの資金事情について、議論の核心に入った。
第2日
カンファレンス第2日は初日に比べてぐっと技術寄りになり、pgpool、pgcluster、Tsearch2などのPostgreSQLサブプロジェクトについて、開発者がさまざまに語った。
午前は、トロント大学経済学部のPeter St. Ongeが科学分野のリサーチにおけるデータベースの役割について話した。PostgreSQLには柔軟性と拡張性があり高速なため、リサーチには理想的だという。
リサーチでのデータベースの利用には独特のニーズがあると指摘し、ラボによって事情は異なるという。ほとんどのところではLAMP(Linux、Apache、MySQL、PHP)プラットフォームを使っているが、リサーチ・ラボでは、St. Onge言うところのLAPP(Linux、Apache、PostgreSQL、PHP)プラットフォームに切り替わりつつあるという。
St. Onge自身は、データベースの中にデータ処理ロジックを組み込むことを目指しているという。資料を集め、分析し、質量分析器にかけ、解析し、保存し、保管庫に入れるまで、人が関わる作業には誤りが付きものだが、作業の自動化で誤りを防げるだろうという。
たとえば、ラボによって異なる単位を使っていることが多い。したがって、華氏を摂氏に変換する機能がデータベースに内蔵されていれば、複数のリサーチ・ラボのデータを統合しやすくなるだろうという。
PostgreSQL 10周年記念カンファレンスは総じて順調に進んだ。セッションの時間は厳しく守られ、技術的な問題はごくわずかしかなく、日程は滞りなく進行した。すべての講演は記録され、そのほとんどはビデオに録画されている。数週間もすれば、カンファレンスのウェブサイト上で、どの講演でも自由に聴けるようになるだろう。
内容は大部分高度に技術的なもので私の理解を超えること度々だったが、聴衆はしっかりと受け止めていたようだ。周囲にいた人たちの反応から判断する限り、ほとんどの人は講演の内容を理解し評価していた。カンファレンスの予算はおよそ3万ドル。これには、講演者の多くに支給した旅費も含まれている。
Berkusによると、登録は90名で、講演できなかったのはそのうち5名だけだったという。「数名は特別な事情(健康上の理由など)によるものです。一方、通信事情で登録できなかった4名が『飛び入り』で講演しました。ですから、予定を少しオーバーしました」。このほか、空席待ちの人が11名いたが、結局参加はできなかった。
次回カンファレンスの検討がすでに始まっており、Berkusは次のように述べている。「来年開催の可能性を検討しているところです。おそらく、300名規模のユーザー・カンファレンスになるでしょう。もっとも、来年にするか再来年にするかは流動的ですし、場所はまだ決まっていません。いずれカンファレンスのウェブサイトにアンケートを掲載します。RSSを提供しますので、次回PostgreSQLカンファレンスに関心がある方は気にかけていただき、回答していただければと思います」
カンファレンスの長期的な効果については、次のように述べた。「PostgreSQLのコミュニティは本当に大きく広がっていますから、このカンファレンスで調整と意思の疎通が良くなるのではと期待しています。コミュニティのさまざまな分野の開発者が顔を合わせたことで、たった1回ではありますが、言語・距離・時差の壁を少しは超えることができるでしょう」
「いろいろな考え方を分かち合ったことがコード開発の促進として現れてくると思います。たとえば、レプリケーション/クラスタリングを扱っているチームは沢山ありますが、お互いに多くを学んだことでしょう。人々が個人的に知り合ったことで、今後メーリングリスト上で互いを見る目が微妙に変わるだろうと思います。そうなりそうもない人たちもいましたけど。どのような姿勢の変化が起きるかは分かりませんが、結果はすぐに分かるでしょう」
今年のカンファレンスは、Berkus、Andrew Sullivan、Peter Eisentraut、Gavin Sherryがボランティアで取り仕切った。Berkusによれば、次回は、専門業者に依頼する予定だという。「これから、しばらく休もうかと思います」
NewsForge.com 原文