はやみずの「は」

PostgreSQL in academia

このエントリはPostgreSQL Advent Calendar 2014の8日目の記事です。昨日は nuko_yokohama さんのPostgresql advent calender 2014 using jsonb by ecpg でした。

アカデミアにおけるPostgreSQL

最近では、PostgreSQLをはじめとするオープンソースDBMSの普及はめざましく、様々なアプリケーションのバックエンドデータベースとして利用されるに至っています。このオープンソースDBMS普及の流れは、データベースを使ったシステム開発の現場だけではなく、データベースシステムを作り出す、データベース研究の世界にも広まりを見せています。

そのトレンドを数字で追ってみるべく、今回はデータベースのトップ会議であるSIGMODの論文のなかで、PostgreSQLが何らかの形で利用されている論文の採択数を調べてみました。

SIGMODは1976年から毎年開催されている国際会議で、データベース系研究の論文投稿先として最も難しい(=価値のある研究が集まる)トップ3*1の一角をなす由緒ある国際会議です。SIGMODに採択された論文はトップレベルの研究者による厳しい審査をくぐり抜けているものに限られているため、研究として信頼に足る内容であり、かつ新規性が高く価値のあるものだと太鼓判を押されたものといえます。

そのような論文の中でPostgreSQLが使われているということは、PostgreSQLが最先端のデータベース技術を実装するテストベッドとして選ばれ、様々な実験データを格納して新たなデータベースアプリケーション実装のバックエンドとしてPostgreSQLが使われているということであり、データベース研究のしっかりとした"足場"としてPostgreSQLが利用されている、ということになります。

SIGMOD (2000〜2014) における論文採録数(PostgreSQLの利用・言及)

今回は、SIGMOD採択論文のうち、2000年度から2012年度を対象として集計を行いました。 また集計対象の論文は、研究論文、産業論文、デモ論文等全てを含めて、平等に1本とカウントしています。

f:id:hayamiz:20141208202854p:plain

このグラフでは、PostgreSQLが何らかの形で論文中に記載されている論文を、次の2つのグループに分けて採択数をカウントしてみました。

  • PG利用PostgreSQLに新規技術を実装、バックエンドのデータストアにPostgreSQLを利用など、何らかの形で実験にPostgreSQLを利用しているもの
  • PG言及PostgreSQLを実験に利用していないが、PostgreSQLに関して言及しているもの

また、PG利用とPG言及の総数の、毎年の採択論文総数に対する割合を折れ線グラフで表示しています。

このグラフから、2000年代におけるPostgreSQLの利用数の伸びが見て取れます。2000年、2001年はPostgreSQLの利用・言及論文数は0本でしたが、そこから着実に数を伸ばして、2011年の落ち込みを除くと、この7〜8年は採択研究の10%以上がPostgreSQLを利用・言及していることがわかります。ここ数年のSIGMODではグラフデータ処理等の非リレーショナルなデータ処理に関する話題も多く、またPostgreSQL以外にも様々なDBMSが世の中で広く使われている中で、一定数の研究を支える足場の技術としてPostgreSQLがしっかりとした存在感を示していることがわかります。

一昔前は、データベース研究というと研究のために自前でデータベースシステムを作るということが割とよく行われていて、多くのデータベースシステムが研究プロジェクトが終わるとともに寿命を迎えていました。PostgreSQLもその出自はUC Berkeleyの研究から生まれたデータベースシステムPOSTGRES*2でしたが、OSSとして成長を続け、プロダクトとして今も生き続けて多くの人に使われ続けている稀有な例といえます。

MySQLとの比較

さて、ここまでPostgreSQLの話ばかりしてきましたが、オープンソースDBMSとしてPostgreSQLとともに双璧をなすMySQLはどうなっているかも集計してみました。

f:id:hayamiz:20141208205702p:plain

このグラフでは、PostgreSQLMySQLそれぞれについて利用・言及のある論文の数を比較しています。 MySQLPostgreSQLと同じようなトレンドでその利用・言及数が伸びていますが、成長が顕著な2002年〜2009年にかけては常にPostgreSQLよりやや論文数が少ない結果となりました。しかし、この数年の論文数はPostgreSQLと同様に安定期に入り、PostgreSQLおおよそ同等といってよい程度の普及率になっています。

論文中の実験におけるPostgreSQLMySQLの利用のされ方の傾向としては、ちゃんと集計はしていませんが、MySQLはデータストアとして利用して、その上に構築するアプリケーション技術に関して新規な研究をしているパターンが多い一方で、PostgreSQLは実行エンジンやオプティマイザ等のDBMSの内部的なコンポーネントに関する新規技術の実装テストベッドとして利用するパターンが多いように見受けられました。

PostgreSQLはコードの質の高さにおいて定評があり、個人的にもデータベースの教科書に載っているようなソフトウェアアーキテクチャが綺麗に実際に動くコードとして実現されていると感じます。一方MySQLはどちらかというと実践指向という印象で、フィットする用途では使い勝手や性能は良いものの、アーキテクチャやコードの質に関しては。。。という感じです。 そのため、データベースシステムの技術のテストベッドとして拡張するような実験では、比較的PostgreSQLが選ばれやすいのかもしれません。

まとめ

この記事では、SIGMODにおける論文採択数から、データベース研究におけるPostgreSQL普及のトレンドを少しだけ分析してみました。 様々なデータ処理のアプリケーション構築だけでなく、未来のデータベース技術を生み出す研究の世界でも、PostgreSQLがそれを支えていることがお分かり頂けたかと思います。

明日のPostgreSQL Advent Calendar担当は yohgaki さんです。

*1:残り2つはVLDB、ICDE

*2:さらにそのご先祖さまにあたるINGRESもUC Berkeleyの研究から生まれています