20周年、これまでの歩み
2016年は「PostgreSQL」と命名されてから20年となる。20年でも十分長いが、ソースコードで見るとおよそ30年の歴史がある。イベント基調講演でPostgreSQLの歴史を解説したのはピーター・ハルデンベルグ(Peter van Hardenberg)氏。Heroku PostgreSQLチーム創設メンバーの一人で、PostgreSQLに詳しい。
70年代にエドガー・F・コッド(Edgar F. Codd)博士がリレーショナルデータベース理論を考案し、実際に作られた製品の一つにIngresがある。名前の由来は「INteractive Graphics REtrieval System」。SybaseやMicrosoft SQL ServerもこのIngresの流れをくむ。
1985年、カルフォルニア大学バークレー校のマイケル・ストーンブレーカー博士らがIngresの後継としてPostgresの設計を発表。ここが実質的にはPostgreSQLのスタート地点と考えていいだろう。1989年に最初のバージョンとなるPostgres 1.0が限定的にリリースされ、1994年にはPostgres 4.2へと到達すると同時に大学における研究プロジェクトとしては終了した。
このころ独自のクエリー言語に課題を抱えていた。当時の関係者らは「Postgresが持つクエリー言語はいいエンジンだが、クルマに例えたらステアリングではなくノブとレバーで運転するようなもの」と考えていた。つまり、操作しづらい。そこで同大学の大学院生らがクエリー言語をSQLに置き換え「Postgres95」を公開した。
SQLに対応したものの、Postgres95(Postgresのバージョンの流れだと5.0に相当する)はまだ性能や信頼性に課題があった。また開発者は少ないことも課題となっていた。そこで1996年ごろからFreeBSDなどを参考に、コアチームやコミッターなど役割分担して開発を進めていく体制を整えるようになった。
1995年に大学の研究プロジェクトから離れ、あらためて「Postgres95」としたものの、コミュニティ内で「次の名前はどうする?Postgres96?Postgres V6?」と議論になった。結果的にはSQLに対応していることもあり、1996年末に正式に「PostgreSQL」と決定し、バージョン番号はPostgres時の数字を引き継いで進めることにした。それが20年前。
コミュニティという体制にしても「PostgreSQL」という名前にしても、現在につながる形になったのはこの1996年から。20年が過ぎ、今でもPostgreSQLを発展させているのはグローバルなコミュニティだ。メーリングリストを介して世界中の参加者と意見交換し、コンセンサスを重視する風土を育て、開発を進めてきた。
PostgreSQLと改名した翌月の1997年1月、最初のバージョンPostgreSQL 6.0がリリースされた。6.5ではMVCC(MultiVersion Concurrency Control:多版型同時実行制御)で性能向上させることや日本語などマルチバイト対応が進められてきた。
ここでハルデンベルク氏は「安心して。ここから全てのリリースノートを見直すことはしないよ」と言い、話題を各バージョンの新機能にするのではなく、ビジネスに切り替えた。
2000年前後からPostgreSQLでビジネスをする企業がいくつか生まれた。最初に生まれたのは「PostgreSQL Inc」。コミュニティファウンダーなどが1997年に創設したが、ビジネス的には成功せずひっそりと姿を消した。続けて2000年には「Great Bridge Inc」が生まれた。「データベースのレッドハットになる」と目指し、同年の「25 Coolest Global Companies」に選出されたものの、同じく長くは続かなかった。ようやく機が熟したのか、2004年に生まれたEnterpriseDB社は現在も健在だ。PostgreSQLの開発者たちを抱え、企業向けサポートでビジネスを進めている。こうした起業の動きもPostgreSQLの歴史と無縁ではない。