ミクシィのNoSQLデータベース「Tokyo Tyrant」をNetVibesが採用した理由

2010年7月29日はてなブックマーク del.icio.us Twitter
タグ : NoSQL

カスタマイズ可能なポータルサービスを提供するフランスの「NetVibes」は、バックエンドデータベースとしてミクシィの平林幹雄氏が開発し、同社内でも利用されているNoSQLデータベースの「Tokyo Tyrant/Tokyo Cabinet」(以下Tokyo Tyrant)を採用しているそうです(追記:平林氏は7月末でミクシィを退職されるとのこと)。

なぜNetVibesはTokyo Tyrantを採用したのか、その理由がmyNoSQLの記事「Netvibes: A Large Scale Tokyo Tyrant Deployment Case Study」で紹介されています。NetVibesは、Hadoop、CouchDB、Tokyo Tyrant、File system、MySQLを評価した上でTokyo Tyrant/Tokyo Cabinetを採用したとのこと。

NetVibesがどのような理由で彼らがTokyo Tyrantを選択したのかを見る前に、平林氏によるプレゼンテーション「Introduction to Tokyo Products」で、Tokyo Tyrantがどういうソフトウェアなのか、見ておくことにしましょう。

Tokyo Productsとはどんなソフトウェアか?

Tokyo TyrantやTokyo Cabinetを含むTokyo Productsにはさまざまなソフトウェアがあり、オープンソースとして開発されています。

fig

Tokyo Cabinetは、キーバリュー型データストアの実装。特徴として、高い並列性とスケーラビリティを備え、トランザクションにも対応。

fig

Tokyo Tyrantは、Tokyo Cabinetを用いたデータベースサーバ。memcachedと互換プロトコル。

fig

平林氏のプレゼンテーションはこの記事末に埋め込んでおきます。

MySQLでの運用が限界に達し、Tokyo Tyrantへ

myNoSQLの記事でインタビューに答えたのは、NetVibesのエンジニアFlorent Solt氏。

NetVibesは、Tokyo Tyrantを経由してTokyo Cabinetを利用。ポータルで利用しているフィード情報をTokyo Cabinetのデータベースに格納する一方、MySQLも並行して利用しており、こちらはユーザーアカウントなどの情報を管理しているとのこと。

Tokyo Tyrantへ切り替えることになったきっかけは、MySQLでの運用が限界に近づいてきたためだとしています。インタビューの内容を引用しましょう。

(当初はすべてのデータをMySQLで管理していたが)、MySQLの限界が近づいてきたので代替できるものを探し始めたんだ。限界のほとんどは(Blogによる)ディスク領域のフラグメンテーションの問題と、インサートに関する本質的なスピードの問題だった。

1年半前のことだけど、少し調査をしたんだ。当時はいまほど選択肢がなかったけれど。実際に実データでベンチマークをした。Hadoop、CouchDB、Tokyo Tyrant、ファイルシステム、そしてMySQL。予算、レスポンス、知識の差などからTokyo Tyrantを選んだ。

Tokyo Tyrant利用に当たっては、独自のShardingを利用しているとのこと。

データ構造について理解すれば、どの機能を選択するかはそれほど難しくない。例えば、本質的なスピードが必要ならhashを使っているし、複雑なキー構造を用いるならb-treeを、条件付き問い合わせを使うならtableを使っている。

Tokyo ProductsにはShardingや動的なパーティショニングの機能がないので、自分たちで実装している。

Tokyo Cabinetの後継、Kyoto Cabinet

Tokyo Tyrantを開発した平林幹雄氏は、Tokyo Cabinetの後継製品にあたるKyoto Cabinetのバージョン1.0を5月に発表しています

Tokyo Cabinetは全てC言語で記述してあり、標準ライブラリ以外はすべて自作しているため高速化されている半面、メンテナンスが難しくなっているとのことで、Kyoto Cabinetでは、多少性能を犠牲にしてもC++とSTL(標準テンプレートライブラリ)で実装したものと説明されています。

しかしKyoto CabinetはTokyo Cabinetに比べて空間効率と並列性は向上しているとのことで、マルチコア、メニーコアの環境ではKyoto Cabinetのほうが効率がよいそうです。


次の記事≫ Windows Azureも事実上、日本にデータセンターを置くことになった
前の記事≪ 仮想化は、クラウドのインフラとしては不要ではないか?

Loading...

Blogger in Chief

photo of jniino Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。新しいオンラインメディアの可能性を追求しています。
詳しいプロフィール


Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
RSSリーダーで : Feed
≫ 過去の記事を読む




アクセスランキング - 過去7日間

  1. 次の10年、「統計分析」こそテクノロジー分野…
  2. 米国で求められているクラウドのスキルは? A…
  3. [速報]VMworld 2010、クラウド時…
  4. 経過報告:「SAP」をSocial Appl…
  5. その分析、Hadoopなら速く安くできます …
  6. 技術評論社のクラウド技術誌「G-CLOUD …
  7. グーグル、オラクルとの係争を理由に今年のJa…
  8. グーグルが構築した大規模システムの現実、そし…
  9. [速報]VMworld 2010、IT as…
  10. デスクトップ仮想化、シトリックスCEOに10…
  11. グーグルが構築した大規模システムの現実、そし…
  12. アドビ「iPadでFlashアプリを動かす」…
  13. メタクラウドAPIのDeltacloud、D…
  14. 呼びかけ:「SAP」をSocial Appl…

アーカイブ  (最新記事10)

バックナンバー

2010年9月
2010年8月
2010年7月
2010年6月
2010年5月
2010年4月
2010年3月
2010年2月
2010年1月
2009年12月
2009年11月
2009年10月
2009年9月
2009年8月
2009年7月
2009年6月
2009年5月
2009年4月
2009年3月
2009年2月






Trackbacks (TrackbackURL:http://www.publickey1.jp/mt/mt-tb.cgi/1192)

  • (トラックバックは承認後に掲載されます)

Comments