ゴルフに関するエッセイを読んでいたら,こんな文章に目が留まった。「ゴルフの世界でも,功なり名を遂げた者は可能性をあきらめないタイプと相場が決まっている」。エッセイの著者である夏坂 健氏いわく「もし,あなたが物事を悪い方向に考えるタチだとしたら,ことゴルフに限ってさえ,現状維持がいいところ。悲観主義者とスライス打ちに未来はない。」だそうだ(「ゴルファーを笑え!(夏坂 健著,新潮社)」より)。

 これはエッセイのごくごく一部を抜き出しただけであり,夏坂氏の軽妙洒脱な文章やそのニュアンスは伝えられないのだが,とにもかくにも「悲観主義者とスライス打ちに未来はない」というフレーズが気になったのである。

 気になると同時に,ぱっと頭に浮かんだのは,「悲観主義者にオープンソース・ソフトは向かない」という,今ここで改めて記してみるとちょっと刺激的な感じがするフレーズだった。

オープンソース・ソフトで新規事業に挑む

 そのエッセイを読んだのは,オープンソースのデータベース管理システム「PostgreSQL」を用いて大規模システムを構築したユーザー企業を取材したばかりのときだった。これらのユーザー企業がなぜ,前例がほとんどなかった規模のシステムにPostgreSQLを採用したのかに関心があったため,唐突にこのようなフレーズが浮かんだのだろう。

 例えば,コニカはオンライン・プリント・サービスなどを提供するWebサイト「コニカ オンラインラボ」のバックエンドでPostgreSQLを利用している。多いときで150万枚/月ほどプリント(紙焼き)されるデジタル画像の情報や約13万人(2003年3月末時点)の会員情報を,PostgreSQLを使ったデータベース・サーバーで管理している(関連記事)。

 またヤマハは,携帯電話ユーザー向けに着信メロディを販売するサイト「メロっちゃ!」の会員情報や楽曲情報を管理するデータベース・サーバーにPostgreSQLを採用している。メロっちゃ!は,2003年4月末時点で約340万人/月の会員が利用する人気携帯サイトである。

 いずれもPostgreSQLを利用したデータベース・サーバーとしては大規模な事例である。規模もさることながら,1日24時間利用可能なオンライン・サービスなので,高信頼性と高可用性も求められる。従来なら,商用のデータベース管理システムが採用されるのが普通だろう。

 実際,ヤマハの担当者によれば,システム構築の開始当初の1999年初頭には,「商用のデータベース管理システムの利用を検討した」という。しかし当時は,着信メロディ販売サービスが始まったばかりであり,事業として成り立つかどうか見当が付かなかった。それでも,すでに着信メロディ販売サービスを開始していた他社にこれ以上遅れを取るわけにもいかない。だから,なるべくお金を掛けずに,なおかつ素早くシステムを構築しなければならなかった。こうした事情については,コニカ オンラインラボのシステム構築時にもほぼ当てはまる。

用意周到に計画し,妥協できる点は妥協する

 両社とも,“新規事業とそのためのシステムを,できる限りお金を掛けずに,なおかつ迅速に立ち上げる”必要があったわけだ。とらえ方によっては,ピンチと言える状況なのだが,両社はオープンソースのデータベース管理システムを使って事業を立ち上げ,先に紹介したような規模にまで成長させることができた。

 極端に言えば,システム構築時に,「オープンソースのデータベース管理システムでは実績がほとんどない」「商用のデータベース管理システムを購入する予算がない」などと悲観的にとらえていたら,今の成功はなかったかもしれない。

 もちろん両社とも,楽観的にとらえて,あるいは蛮勇をふるってオープンソースを利用したわけではない。小規模なシステムや社内システムでPostgreSQLを利用したシステムを試したり,本当に必要なシステムの機能・性能を絞り込むことにより,「これならいける」と見定めてから採用している。

 構築過程で,実現不可能だったため妥協している点もある。例えば,オンラインラボで使われているバージョンのPostgreSQLでは,データベースの再利用可能な領域を増やすための処理(VACUUM処理)を実行すると,当該テーブルに排他ロックがかかる。そのため,現状では週に一度,オンライン・サービスを停止してVACUUM処理を行う必要があり,24時間365日ノンストップでのサービスは提供できていない。

 また,前例がほとんどない規模のシステムとなると,さまざまな工夫も求められる。ヤマハの例では,多くのユーザーから同時にアクセスされたときに,特定のデータベースに対する処理要求がボトルネックになりかねなかった。そこで,頻繁にアクセスされるテーブルについてはWebサーバー側にキャッシュする,PostgreSQL特有の継承処理を利用して頻繁にアクセスされるテーブルを分割する,など処理性能を高める工夫を施している。

悲観主義に陥りそうなときにオープンソース・ソフトは解決策になりえる

 先が見えにくいシステムの構築時に,悲観的にならずに「何とかならないものか」と果敢に挑戦するときの手段としてオープンソース・ソフトが利用され始めている。と同時に,こうした挑戦がオープンソース・ソフトの成長を支えているのではないだろうか。工夫しながら使っていくことにより,新たな機能・性能に関する要求が生まれ,いつかは実装される可能性が出てくる。

 PostgreSQLの例では,テーブルをロックしないVACUUM処理(コンカレントVACUUM)はより新しいバージョンのPostgreSQLで可能になったし,今後はレプリケーション機能も標準機能として使えるようになる見込みだ。こうして考えてみると,「悲観主義者にオープンソース・ソフトは向かない」と言うよりも,「悲観主義に陥りそうなときの解決策としてオープンソース・ソフトは有効だ」と言うべきなのだろう。

(田島 篤=日経Linux副編集長)

■お知らせ
 日経Linuxでは,PostgreSQLを利用して信頼性の高いシステムを構築したいユーザー企業に向けて「PosstgreSQL構築・運用ガイド」を6月25日に発行しました。PostgreSQLの基本的な使い方からクラスタやレプリケーションなどを用いた信頼性の高いシステムの構築方法,Oracleデータベースとの差異や移行方法までを紹介しています。興味を持たれた方はぜひ,こちらのページで詳細をご覧ください。