今年4月に米サンタクララで開催された「MySQL Conference & Expo 2011」において、ディー・エヌ・エー(DeNA)が「Corporate Contributor of the Year 2011」を受賞した。同社が開発したMySQLのプラグイン「HandlerSocket」が評価されたためだ。HandlerSocketは、MySQLのフロントエンドを置き換え、SQLを介さずに素早い処理を可能にする技術。MySQL Conferenceの位置付けや、HandlerSocketの開発の経緯などについて、DeNAシステム統括本部IT基盤部インフラ担当プリンシパルアーキテクトMySQLエバンジェリストの松信嘉範氏と同じくシステム統括本部IT基盤部の樋口証氏に聞いた。

(聞き手は吉田 洋平=日経コンピュータ



MySQL ConferenceでCorporate Contributor of the Yearを受賞することにはどういった意味があるか?

写真●ディー・エヌ・エー システム統括本部IT基盤部インフラ担当プリンシパルアーキテクトMySQLエバンジェリストの松信嘉範氏(右)と、システム統括本部IT基盤部の樋口証氏
写真●ディー・エヌ・エー システム統括本部IT基盤部インフラ担当プリンシパルアーキテクトMySQLエバンジェリストの松信嘉範氏(右)と、システム統括本部IT基盤部の樋口証氏

松信:MySQL Conferenceは米オライリーが主催する世界最大のMySQLのカンファレンスで、Corporate Contributor of the YearはMySQLコミュニティにもっとも貢献した企業に贈られる賞だ。私はDeNA入社以前にMySQL社に所属していたことなどから、過去にも何度か同カンファレンスに参加してきた。日本のサービス企業がCorporate Contributor of the Yearを受賞したのは今回が初めてだ。

MySQL Conferenceで評価を受けたHandlerSocketとはどのような技術なのか?

樋口:MySQLは大きく分けて2層の構成になっている。クライアントからSQLを読みとってデータベース(DB)に渡すフロントエンドの部分と、そのSQLを処理するDBエンジンだ。DBエンジンには「InnoDB」が使われることが多い。

 この二つのうち、DBエンジンの性能はメモリーDBなどNoSQLのDBと比較してもそん色ない。MySQLが、メモリーDBなどと比べて処理が遅いと言われる原因は、フロントエンドにある。そのため大量のデータを処理する多くのWeb系企業が、memchachedなどをキャッシュとして使い、フロントエンドの遅れを回避している。

 HandlerSocketは、昨年の春に私が開発した技術で、MySQLのフロントエンドを置き換え、SQLを介さずに素早い処理を可能にするためのものだ。SQLではなく独自の言語を使う。HandlerSocketを使うことで、処理速度が大きく高まり、これまではNoSQLのDBを使わなくてはならなかったような場面でも、MySQLで処理を完結できるようになる。

MySQLで処理を完結させると、フロントエンドにmemchachedなどを使う場合に比べてどんなメリットがあるのか?

樋口:システムの構成が単純になるため、トラブルを減らせる。モバゲーでは以前、memchachedをキャッシュに使っていた。memchachedに必要なデータがなかったら、MySQLに取りにいくという構成だった。この構成自体に問題があるわけではないが、分かれていたシステムが一つになれば、それだけ構成が単純になり、トラブルの元は減る。

 運用コストを減らす効果もある。MySQLは特定のクエリーに無駄が多く、データベースとアプリケーションの間のトラフィックが多いという問題があるが、HandlerSocketでは独自の言語を使っておりトラフィックに無駄が少ない。トラフィックが減るので、使用するハードウエアも減らせる。

DeNAではHandlerSocketをどういった用途に使っているのか?

樋口:去年の8月から、モバゲーのデータ処理に使っている。モバゲーでは、ほぼすべてのページで、ページが遷移するごとにユーザーを識別するための基本的な情報を取得している。基本的な情報とは、ユーザーのニックネームなどだ。

 このため、ページの遷移のたびに大量の処理が発生する。こうした処理のうち、特に早い処理が必要な一部について、HandlerSocketに割り振っている。

MySQLコミュニティにとって、HandlerSocketにはどのような意味があるのか?

松信:近年、「NOSQLがあればMySQLはいらないよね」という流れになりつつあったところに、一石を投じたことが一番大きいと思う。HandlerSocketはオープンソースなので、当社以外にも利用する企業が増えているようだ。