本質はNoSQLデータベースと言うよりはMemcached
ベースとなっているのは、メモリーキャッシュとストレージだ。Key-Value型のデータでは機能的に不足するところがあり、その課題を解決するためにドキュメント指向になった。そして、データの永続性を確保するためにCouchDBと融合した。
「Couchbase Serverは、Memcachedの機能とドキュメント指向データベースの機能の両方が実現されているものなのです」(橋本氏)
競合するのはOracle CoherenceとOracle Databaseの組み合わせといったもの。実際、Couchbase Serverと比較されることの多いドキュメント指向データベースのMongoDBとは、市場でも競合することはほとんどないとのこと。
さらに、Couchbase Serverは、もともとエンタープライズ用途で使うことを目指した商用製品だと言う。
「中身はオープンソースソフトウェアですが、基本的には商用製品だと言えます。ソースコードは公開されていますが、Couchbaseという会社が提供する商用製品です」(橋本氏)
オープンソースソフトウェアをエンタープライズ領域で使う場合には、製品はオープンソースでサポートサービスだけを有償で提供するというビジネスモデルが多いが、Couchbase ServerはCouchbaseという会社が商用製品として開発、提供し、そのソースコードを公開しているというわけだ。
得意なのは大量ユーザーによるオンライントランザクション処理
Couchbase Serverが、たんなるドキュメント指向型のNoSQLデータベースでないというところを、橋本氏にもう少し解説してもらうと、Zyngaというオンラインゲームのサイトでの利用事例を紹介してくれた。
「Zyngaは人気のあるオンラインゲームのサービスを提供しています。Zyngaのサーバーでは、ユーザーからのアクセスで1秒間に100万、200万というトランザクションが発生します。このような極めて高いオンラインの負荷を裁くのがCouchbase Serverがもっとも得意とするところです。このZyngaのような仕組みを、MongoDBでやろうとしたら、普通は破綻してしまうでしょう。MongoDBは数台のサーバーで大量データを、JSonを使って自由に検索するといったことが得意なものです。ある意味、Couchbase Serverとは済んでいる世界が違うと言えるでしょう」(橋本氏)
オンラインの大量な同時アクセストランザクションを処理するというのは、いわゆるデータベースが得意とするところではない。これはHadoopでもリレーショナルデータベースでも同じであり、これらは基本的に「バッチ処理が得意なバッチデータベースと言えると思います」と橋本氏。そのため、Oracle Databaseなどではオンライン処理性能を向上するためにさまざまな工夫をしていたり、Couchbase Serverと同様なCoherenceと組み合わせたソリューションを展開していたりするというわけだ。
「Couchbaseは結果的にビッグデータを処理するかもしれませんが、どちらかと言えばビッグユーザーの処理をするものです」(橋本氏)
このCouchbaseにSCSKでは、2009年くらいから注目を始めていた。バージョンで言えば1.8のころだ。当初はCouchbase Mobile(現在はCouchbase Lite)に興味を持ったのだとのこと。「ドキュメント指向型で、携帯電話が電波が入ると同期するというのが面白いと思いました」と橋本氏。当時は現在ほど電波情況が良さくなかったこともあり、常につながっていなくてもデータをきちんと管理できるのは面白いと思ったのだ。さらに、何でもかんでもリレーショナルデータベースに入れなくてもいいのではとも考えていた。リレーショナルが得意なところ、それ以外が向いているところを見極め、うまく選択して利用すべきと考えていたのだ。
「XMLデータベースなどにも注目していましたが、今ひとつ市場では発展しませんでした。結局はリレーショナルデータベースしかないのかと思っていましたが、Couchbase Serverのようなものが登場して1つの可能性を感じました。これが、業務系の処理でどこまで使えるのか。市場でのニーズは、確実に高まっていると感じています」(橋本氏)