2014年を迎えるにあたり、
「クラウド、ビッグデータ時代」にデータベースが果たす役割
- ──次バージョンのPostgreSQL 9.
4について、 すこしお話を聞かせてください。2014年秋ごろのリリースと伺っていますが、 石井さんが9. 4で最も注目する新機能はどれになるでしょうか。 石井:まずロジカルレプリケーションですね。これまでも精度の高いレプリケーションは可能だったんですが、
アーキテクチャが一緒である必要があった。9. 4からはそういう制約から解放され、 たとえばバージョンの異なるPostgreSQL間や、 テーブル単位でのレプリケーションが可能になります。 (ロジカルレプリケーションは) pg_ dumpなどで代用すればできないことはなかったんですが、 やはり手間がかかります。機能としてサポートされることでPostgreSQLの可用性がますます高まることになります。 あとはストリーミングレプリケーションの改善でしょうか。いままでは稼動系から待機系にストリーミングする際、
プライマリサーバにほかのバックアップサーバが追従するのが難しく、 1日単位の時間がかかることも多かったのですが、 これが大幅に改善される予定です。 - ──JSONサポートもさらに拡張されるようですし、
楽しみなバージョンですね。 石井:そうですね。ただ日本のユーザはまだ8系を使っているケースが多く、
9. 4の機能が充実しても大きな影響は少ないかもしれません。海外のユーザは新バージョンを積極的に導入する傾向が強いのですが、 国内ユーザはマイナーバージョンアップにさえ積極的なところは少ない。データベースというインフラ部分に手を入れることを好まないんですね。正直、 この差が開いていくことはあまり喜ばしいとはいえないと思います。 ただ、
先にお話に出たAmazon RDSですが、 AWSはユーザにとくに通知することなくアップデートすることが多いので、 これが日本のユーザにどう受け入れられるかは興味深く見ています。Amazon RDS for PostgreSQLも最初から現時点で最新のPostgreSQL 9. 3ですし、 こうした動きが広がれば何らかの変化がもたらされるかもしれません。 - ──クラウドの普及がユーザのデータベースへのアプローチを変えていくと?
石井:ユーザのアプローチだけでなく、
PostgreSQLの今後のアップデートにも影響してくるでしょうね。実はクラウドというのは気を抜いて使っているとけっこうコストがかかるんですよ。時間単位で課金されますからね。ストレージの容量も放っておくとどんどん増えていきます。かといって、 クラウドの普及がそれで止まることはない。となるとデータベースは、 いかに扱うデータ量を削減できるかということが重要な機能として求められるようになると見ています。 - ──ということは、
9. 4以降の開発スケジュールもかなり決まっているのでしょうか。 石井:9.
4については、 ほぼ仕様は固まっていてあとは実装していくだけです。現在、 コミュニティでメインの議論になっているのはそれ以降のバージョンにおける機能強化ですね。 9.
4で採り入れるロジカルレプリケーションもその一環といえるのですが、 今後、 PostgreSQLはデータベースエンジンの並列化に着手していく予定です。現状PostgreSQLは、 1つのセッション、 1つのSQLの中ではすべての処理を逐次的に行っているため、 OLAPやBIのように1つのSQL処理に長時間かかるアプリケーションでは高速化にも限界がある。これを解決するにはやはりデータベースエンジンの並列化は避けて通れないチャレンジだといえます。 - ──データベースの高速化という話でいけば、
最近プロプライエタリ製品でちょっとしたブームとなっているインメモリデータベースなどはどう思われますか。 石井:うーん、
少なくともPostgreSQLの開発メンバーにはあまり興味のない話題ですね。なぜかというと、 たとえメモリにデータを置くとしても、 データ量がテラバイト級になれば、 それをなめるだけでかなり時間がかかります。メモリ周りのバス転送がデータ量に追いつかないからです。いくらインメモリデータベースといっても、 技術的にかなりデータ量を減らさないと、 満足のいくパフォーマンスは得られないのではないでしょうか。それよりはデータベースそのものを高速化していくアプローチのほうが、 PostgreSQLには適しているかと。 - ──重要なのはやはり原点となるI/
Oの高速化というわけですね。 石井:ビッグデータ時代になり、
扱うデータ量がますます増えるようになるからこそ、 データベースはI/ Oをひたすら速くすることにこだわるべきだと思います。PostgreSQLはMySQLに比べてパフォーマンスが劣ると言われることもありますが、 たとえば監視ソフトのZabbixなどを使ったベンチマークテストをすると、 意外なことに高負荷の環境下ではPostgreSQLのほうが良い数値を出す場合が多いんです。とくにデータ量が多くなればなるほどPostgreSQLの優位性は高くなります。そうした優位性は残しつつ、 さらなるパフォーマンス向上をミッションとして目指していきます。