NoSQLとしてMySQLを使うDeNAが、memcachedよりも高速な75万クエリ/秒を実現 - Publickey
モバゲーで知られるDeNAは、バックエンドデータベースにNoSQLを使っていません。なぜか? それはMySQL/InnoDB 5.1の環境で秒間75万クエリという、多くのNoSQLでも実現できないような高性能を実現しているから。DeNAの松信嘉範(まつのぶよしのり)氏は、自身のブログにこんな内容のエントリ「Using MySQL as a NoSQL - A story for exceeding 750,000 qps on a commodity server」(英語)をボストしています。Yoshi... > 続きを読む
URL: | http://www.publickey1.jp/blog/10/nosqlmysqldenamemcached75.html | ||||||||
---|---|---|---|---|---|---|---|---|---|
『Publickey - Enterprise IT × Cloud Computing × W...』のほかのエントリー | |||||||||
ブログで紹介: |
|
||||||||
カテゴリー: | コンピュータ・IT | ||||||||
キーワード: | MySQL memcached cache DeNA innodb クエリ ベンチマーク | ||||||||
タグ: | MySQL468 nosql242 memcached190 DeNA140 データベース119 db100 パフォーマンス80 Database68 handlersocket45 performance20 | ||||||||
お気に入り: |
|
||||||||
このエントリーのブックマークを追加・編集 |
最終更新時間: 2010年10月27日00時14分
ブックマークしているユーザー (747 + 132)
-
103 RT
RT表示
- lettas0726 すごいじゃないか。
- barukichi mysql
- hyoshiok 858
- miguse NoSQLとしてMySQLを使う?
- kiki114 MySQLのSQL部分をスキップすることで処理を高速化
-
tfmagician
これは使ってみたいよなぁ。ま、今はまったく必要ないが。
1 RT
-
@masaa_ma
気になるなあ。
RT @tfmagician: これは使ってみたいよなぁ。ま、今はまったく必要ないが。
-
@masaa_ma
気になるなあ。
- ucho HandlerSocketがちょっぱやという話
- mikage014 「memcachedはすぐれたプロダクトですが、まだ多くの最適化の余地が残っています」
- hiro_y MySQL+HandlerSocketでmemcached超え。
- masaya-chonan 「MySQLのデータベースエンジン(ここではInnoDB)に対して、パースなどを行わず直接アクセスするアプローチが最良」
- lanius 「MySQLのデータベースエンジンに対して、パースなどを行わず直接アクセスするアプローチ」。
- nekora 一周廻ってDAMの時代クルー
- pplaceCEO DeNAにも、こういうことをやっている人がいるということのほうが意外に思えた。
- a2ikm InnoDBのストレージエンジンを直接叩いて(行と列を指定して)操作する感じなのでSQLは出てこない(MySQLのクライアントを介せば普通に使える)
-
YasSo
ほぇー。これはすごいな。
1 RT
-
@4416_
すげー。
QT @yasso: ほぇー。これはすごいな。
-
@4416_
すげー。
- youhey DeNAではMySQLをNoSQLのように使うことで、NoSQLやMemcachedを使わずに高性能なデータベースを実現している
- setamise 『MySQL/InnoDB 5.1の環境で秒間75万クエリ』InnoDBに直接アクセスするHandlerSocket(MySQLプラグイン)により、memcachedを超えるパフォーマンスを達成。
- songe ブックマーク数が伸びてるから見てみたら日本語も英語も理解できないw
- hamasta MySQLは老兵ではないようです。
- ideo NoNoSQL。InnoDbに直接働きかけたりあれやこれやするとMySQLなのに秒間75万クエリが実現したそうです。
- bobbyjam99 "memcachedよりもMySQL+HandlerSocketの方が高性能"
- japanrock SQL関連のオーバーヘッドをなくし、データベースエンジンに直接アクセスして高速化するアプローチ
- matarillo InnoDBにこだわらなければMySQL Cluster + NDB APIもあるね。リンク先でも言及されてる。
- abandoned MySQLのエンジン使ってるけど、やってることはNoSQL、と。すると、あとは実装の優劣の差が性能差に。/他のNoSQLな実装との比較は……自分でやれ、と(苦笑。
- mwsoft InnoDBに直アクセスで性能7倍以上
- ikeikeikeike これはカッコいい。単純にそう思う。
- umiyosh memcached = 40万qps, HandlerSocket+MySQL = 75万qps
- Iridium パーサーを使わないなら自前でデータベースを作っても別に一緒じゃないのか?あと他にどんな処理が必要だっけ?
- makesit MySQLを使うDeNA
- silver_arrow SQLを使わず直接InnoDBにアクセス。
- tengo1985 StonebrakerはVoltDBのときにSQLは別に遅くなくてロギングやバッファ管理が遅いんだ、みたいなこと言ってたけどどうなのかな?あれもSQLはストアドにしてJavaで書いておくから早いみたいだし同じような話か?
- hiromark これは試してみたいな。
- zoom1 通常のMySQLの機能も使えるのは素晴らしい。ただ、サーバのSSD化が進むと高速化の仕方もまた変わって行きそう #yam
- kamm ネトゲのサーバとかでめちゃくちゃ使えそう
- sakef MySQLをNoSQLのように使う。
- saitoudaitoku すげーな「MySQL内部のストレージエンジンAPIを使ってInnoDBに直接アクセスするのだ」
- MuneOchi HandlerSocketはMySQLのデーモンプラグインで、アプリケーションからMySQLをNoSQLのように扱えます。HandlerSocket最大の目的は、InnoDBのようなストレージエンジンに対し、SQL関連のオーバーヘッドなしにアクセスすることです。
- ys0000 クエリ性能がハンパないらしい。
- masami75 NoSQLに皮を被せるのではなく、SQLの皮をむいちゃうという考え方。
- uemu 興味深いアプローチ
- suikinchikamoku nonoSQL
- kskmeuk DQIIIの魔法使いに毒針みたいだ。MySQL にぶすっとハートブレイクショットしたら、memcached よりもはやかったでござるとかすごい。
- deep_one 個人的にはMySQLが本当にRDBなのかをまず疑問に思っているが(笑)/パーサーを飛ばすというとこは、設計段階でシビアな命令を書くことになるんだろうなぁ。
- dk19810313 あとで
- nilab HandlerSocket「MySQLのプラグインとして実装し、NoSQLのプロトコル/APIを受け入れ、MySQL内部のストレージエンジンAPIを使ってInnoDBに直接アクセス」NoSQLとしてMySQLを使うDeNAが、memcachedよりも高速な75万クエリ/秒を実現 - Publickey
- taketyan memcached より速いってどんだけ ...
-
tshimuran
DeNAとMySQL。
1 RT
-
@USTWRAP
読む
RT @toshiro: DeNAとMySQL。
-
@USTWRAP
読む
- jkobori すごいな
- ryuzi_kambe 機械語(マシン語)のSQL版みたいなもんか・・・ 1 RT
- atyks NoSQLとしてMySQLを使うDeNAが、memcachedよりも高速な75万クエリ/秒を実現 - Publickey
- Itisango "MySQLのデータベースエンジン(ここではInnoDB)に対して、パースなどを行わず直接アクセスするアプローチが最良だと。"
- tksmd MySQL のプラグインで、memcached よりも高速なスループットを DeNA が実現している話のまとめ
- Untouchable 物理的なレイヤーについてはMySQLに任せて、そこにNoSQL的にアクセスするようにしてるというわけか
- t_ita 「データベースエンジンに対して、パースなどを行わず直接アクセスするアプローチが最良」。Oracleでは絶対不可能なアプローチだな…
- kunioya MyISAM ってかふつうにISAMで実装したらもっと早いな。面倒だけど。
- daishin_uehara HandlerSocketを用いてMySQLのSQLレイヤをすっ飛ばすと、データがオンメモリ状態でNoSQLに負けない速度を叩き出せるという話。
- toritaro NoSQLとしてMySQLを使うDeNAが、memcachedよりも高速な75万クエリ/秒を実現
- fixme ストレージエンジンに直接アクセスすることでオーバヘッドをカット。おもしろい。
- ionis SQLのパースをすっ飛ばして、直接アクセスするプラグインを利用しているんだってさ。
- otchy210 SQL というハンディキャップを持つ中で、最適を追求して作り上げた InnoDB が超高性能だった、という話。NoSQL の実装がまだ最適化しきれてないという事の裏返しかも。
- kotaro-ono mysql パフォーマンス
- takimo すごいなー。そこら辺の人が真似したら確実にやばそうなしろものだw/飛天御剣流の天翔龍閃的なイメージ。
- amayan へぇ
-
u1tnk
memchacedより早いとはな…同じデータがSQLでも触れるのは便利。
1 RT
-
@tokorom
たしかにこれには衝撃受けました。アプリサイド寄り技術者のぼくでさえ。
QT @u1tnk: memchacedより早いとはな…。 / MySQLでmemcachedよりも高速な75万クエリ/秒を実現 - Publickey
-
@tokorom
たしかにこれには衝撃受けました。アプリサイド寄り技術者のぼくでさえ。
-
gfx
樋口さんすげー!
1 RT
- @i110 memcachedとの一貫性を気にしないでよくなるメリットはでかいね。“@__gfx__: 樋口さんすげー!
- dominion525 たしかGoogleでもSQL解析部はスルーして libmysqlを直接叩く、みたいな話を聴いたような気がする。足回りに関してはMySQLの実績を活用できるから。
-
rhosoi
これは相当普通でないアプローチだわ
1 RT
-
@digitalcube
!
RT @rhosoi これは相当普通でないアプローチだわ
-
@digitalcube
!
- satosssi MySQL のなかなかにキモい使い方
-
wasai
MySQLでそこまでできるとは…
3 RT
-
@phantom_jp
これは凄いですね!
RT @wasaist: MySQLでそこまでできるとは…
-
@phantom_jp
これは凄いですね!
- maropu MySQLで75万q/s
- misshiki (引用)「DeNAではMySQLをNoSQLのように使うことで、NoSQLやMemcachedを使わずに高性能なデータベースを実現している」
- rightgo09 SQLをパースせずにガチでエンジンにアクセス。変なSQLは絶対入れないってことかな
- tiadeen2 「MySQLのデータベースエンジン(ここではInnoDB)に対して、パースなどを行わず直接アクセスするアプローチが最良」→HandlerSocket。ということらしい。制限事項の「No security」ってなんだろ?
- nakunaru handlersocket
- hirose504 HandlerSocketはMySQLのデーモンプラグインで、アプリケーションからMySQLをNoSQLのように扱える/ストレージエンジンに対し、SQL関連のオーバーヘッドなしにアクセス/HandlerSocketを用いたMySQLはmemcachedよりも178%も高速
- willnet すごいな
- girled さすがにこんなに高度なシステムが必要なサービス作るなんて想像つかないけど(それがモバゲーなんだろうけどw)、ちょっと触ってみたいはみたいなあ。「システムの制約的にそんな仕様では作れません」って言えない
-
sahiro316
MySQLのエンジン使ってるけど、やってることはNoSQL、と。すると、あとは実装の優劣の差が性能差に。/他のNoSQLな実装との比較は……自分でやれ、と(苦笑。
1 RT
-
@kagerou_ts
なるほどKVSとSQL、両方の経路でアクセスできるということならすげーなこれ
RT @sahiro MySQLのエンジン使ってるけど、やってることはNoSQL、と。すると、あとは実装の優劣の差が性能差に。/他のNoSQLな実装…
-
@kagerou_ts
なるほどKVSとSQL、両方の経路でアクセスできるということならすげーなこれ
- tote102 なぜ最初からNoSQLに特化したDBを使わないのか
- akuwano 素晴らしい。NoSQLを模索/使用するメリットよりMySQLを使うメリットが大きいって胸を張って言えるのはMySQLを知り尽くしている松信さんだからだとおもいます。
- mrkn InnoDB のパフォーマンスと、memcached の最適化可能性を露出させた功績は大きいね。
- plasticscafe これはすごいなぁ、覚えておこう
- kenshino4649 IT
- deg84 sqlはまだまだ早くなるぜ!ってこと?
- nak812 なるほど、、MySQLもSQLのレイヤを取っ払ってしまえばNoSQLとなる、、か。さすがにそんな発想は思いもつかなかった・・・⇒⇒
- orangehalf SQLのパーサがボトルネックだからInnoDBに直接アクセスすればいいじゃんという発想もさることながら、それをサービスで使えるレベルにまで実装しているのがすごい
- oqzl これは試す
- hiby 速さだけをDBに求めるなら話は簡単だよなあ。みたいな話。raw device使ってcacheが…とか言ってる違和感あるなー。
- NetPenguin NoSQLの使用を検討する場合に候補として考える。対象データはテーブルに格納する形になるのかな・・・??
- t-murachi HandlerSocket http://bit.ly/aLadma / Perl と C++ 用のライブラリがあるんですってよ http://slidesha.re/bKJVXP MySQL バイナリ互換性問題がネックではあるな…。
- green-japan DeNAは「世界でも指折りのMySQLの超ヘビーユーザとして知られています」 1 RT
- shg 凄い・・・
- SuiJackDo MySQLのデーモンプラグインHandlerSocketによりベンチマークではmemcachedより178%高速。サービスでの利用実績あり。
- f_oggy RDBMSでSQL使う場合、SQL発行に伴なう各種手続きがオーバーヘッドという話。パースはキャッシュできるからまだマシだけど排他処理とアクセスパスを決める処理がとにかく邪魔。
- gifumaster No security 気軽には導入できそうにないな。ちょっとこわい。
- Nan_Homewood これはすごい
- uk-ar この結果は、MySQLのSQLレイヤが非常にコストの高いものであり、それをスキップすることが確実に性能向上につながることをはっきりと示しています。また興味深いことに、HandlerSocketを用いたMySQLはmemcachedよりも178%も高速
- Rinta スクラッチ開発でもなく、パラメータチューニングでもない、中間的なアプローチが有効だった例。なるほどねー。
- ya--mada ただのデータストアとしてしか使ってないなら…って気もするが?
- abars すげー。
- pitworks モバゲーで知られるDeNAはMySQL/InnoDB 5.1の環境で秒間75万クエリをさばく。すべてがメモリに乗っていてもSQLのオーバーヘッドは大きいので、InnoDBに対して、パースなどを行わず直接アクセスするアプローチを取っている
- yokoyamen こりゃMySQLじゃなくてYourSQLだな
- tpro 『MySQLのデータベースエンジン(ここではInnoDB)に対して、パースなどを行わず直接アクセスするアプローチが最良』
- nabetama すごい人たくさんいる
- moguno SQLは重いよねって話。下名SQLは超苦手で良く解らんのですが、テキストの暗号をパースさせる正規表現の親戚と思えばちょい納得。C#とかだと正規表現をプリコンパイル出来るけど、そんなレベルじゃ解決できない?
- LukeSilvia HandlerSocket の話。SQL のパースやロック、SQL 実行計画にコストがかかるのでそこをスキップ。memcached の40万qps(素のMySQL で10万)を上回る。DeNA はmemcached をほどんど使っていない。HnadlerSocket はトランザクションは未対応
- ahmok 内容はよくわからないが、MySQLをNoSQLとして使っている時点で、もうなんだかスゴイ
- hiroshi_revolution #followdaibosyu NoSQLとしてMySQLを使うDeNAが、memcachedよりも高速な75万クエリ/秒を実現 - Publickey
- katow これは面白いなあ。ソフトウェアの世界には限界はないね。
- rti7743 mysql - sql = my
- karronoli 発想がおもしろい.以前どっかでMySQLの構造がカオスってるみたいなの見た気がしたけど内部でのデータの持ち方はそれなりに取り回せるようにやっぱなってんのね
- ma_chupic_chu スゴすぎる
- abe_hn HandlerSocketで、memcachedより高速。
- kokorohamoe OracleでSQLコンパイル済みだとどうなるのか気になった。SQLを通信のたびにテキストとして送り込んでCPU使ってパースするのって、OSSぐらい?
- kumonopanya MySQLの形をしたNoSQL。MySQLに自社開発したデーモンプラグインを利用しNoSQLの様に使う事で秒間75万クエリを実現した。
- lizy これを「MySQLを使っている」と表現するのは違和感がある
- nippondanji handlersocketがトランザクション非対応だということにも着目すべき。更新性能の比較もあるとなお嬉しい。/InnoDBスバラシス。
- AMENOHI SQLだとパース処理が重いけど、DBストレージに直接アクセスしたら激速だった、ってことなのか
- tsam NoSQLとしてMySQLを使うDeNAが、memcachedよりも高速な75万クエリ/秒を実現 - Publickey -
- kai_kuchiki DeNA謹製HandlerSocketさん続報。 1 RT
- aratafuji 秒間75万クエリ…。 2 RT
- himomen 記事を読む限りはSQLのパーサ次第でMySQLはまだまだ速くなる可能性を持ってるってことだな…
-
t-wada
さすが松信さんだ
5 RT
-
@kat21
これすごい!かこええーー
RT @t_wada さすが松信さんだ
-
@kat21
これすごい!かこええーー
- tarotarorg MySQLをNoSQLとして使いこなす荒業について、日本語解説
- SiroKuro sql パースをスキップしたらそら速いわ
- mirakui 出たなHandlerSocket 1 RT
- t_43z すげえ
はてなブックマークを使ってみませんか?
はてなブックマークはオンラインでブックマークを管理・共有できる無料サービス。自宅、職場、外出先、どこからでも同じブックマークにアクセスできます。ユーザーはみんなでブックマークを共有して効率良く情報収集しています。あなたもはてなブックマークを始めてみませんか?
- ニューヨーク ジョフリー・バレエスクー...
- ¥ 1,680
- 3 Kids Dreamin'
- ¥ 600
- 【トリーバーチ】 TORY BURCH ショルダ...
- ¥ 55,650
- 英日対訳 アメリカ人を一週間でその気に...
- ¥ 1,470
関連エントリー enhanced by Preferred Infrastructure
- ソーシャルゲームのためのMySQL入門 - Technology of DeNA engineer.dena.jp 1166 users
- memcachedを知り尽くす:第1回 memcachedの基本|gihyo.jp … 技術... gihyo.jp 386 users
- @IT Special PR:600億PVもMySQLで! モバゲーのインフラ底力 www.atmarkit.co.jp 240 users
- 漢(オトコ)のコンピュータ道: MySQLを高速化する10の方法 nippondanji.blogspot.com 1011 users
- mixi Engineers’ Blog » Tokyo Tyrantによる耐高負荷DBの構築 alpha.mixi.co.jp 507 users
このエントリーを含むエントリー (6)
- 垂直統合システムは「オープンメインフレーム」と呼ばれるようになる... www.publickey1.jp 17 users
- デルもクラウドサービス参入か。ワシントンにデータセンター用の土地... www.publickey1.jp 7 users
- アグレッシブエンジニア: NoSQLとしてのMySQLの動作確認(HandlerSock... blog.tanarky.com 2 users
- HandlerSocket の Node.js クライアント node-handlersocket リリー... d:id:koichik 29 users
- 感謝! Publickeyに初めてスポンサー広告が入りました - Publickey www.publickey1.jp 14 users
- Android★SQUARE:2010/10/28:あきらめない心 blog.livedoor.jp:an_square 2 users
このエントリーを含む日記 (7)
以下のタグスポンサーの提供でお送りしています