BLOGTIMES
2007/09/14

本当にこれがMySQLの意外な利用法?

  mixi 
このエントリーをはてなブックマークに追加

読み終わったらタイトルが「あんまり意外じゃないMySQLの使い方」の間違いじゃないかと思ってしまいました。

TechTargetジャパン:mixiの生みの親“バタラ氏”が語るMySQLの意外な利用法

サービス開始から3年余りで会員数が1000万人を超えたSNSの「mixi」。そのシステムはOSSで構築されており、データベース管理システム(DBMS)には「MySQL」を使う。急増するトラフィックをさばくために負荷分散を重ねた結果、現在ではサーバ1000台以上が連なる超分散システムへ。その中でMySQLが果たす役割とは。

タイトルが刺激的過ぎて、自分が内容に期待しすぎてしまったようです。

例えば更新系と参照系を分けてレプリケーションをかけるとか、テーブルごとでDB分割するとか、IDの範囲によるテーブル分割はスケールアウト方法としては常套手段だと思であると思うのですが*1。分散した後のDBの参照をミドルウェアやフレームワークを使って吸収してアプリに影響を与えないようにするのもそんなに珍しくはないと思います。あと、ジョインを自前でというのも単にネステッドループ、ハッシュ、ソートマージ、の各ジョインアルゴリズムを実装すれば済むわけなのでそんなに難しくないはず*2

確かにDBMSの重要なJoinやキャッシュマネジメントを自前のアプリケーションでやって、あくまでDBはISAM/VSAMライブラリであるかのように扱えば速くなるでしょうが、それが意外な使い方であり、mixiを支える技術の本当のキモだといわれると今一つピンとこないです。個人的にはmemcachedの使い方とかすごい気になるんですが、やっぱりそのあたりはこういう記事には出てこないですよね。

  • *1: 少なくとも僕の知っている金融、流通のアプリでは普通でした。ウェブになってからは普通じゃなかったけど。
  • *2: 要はマッチング処理だから、ホストを使っていたりとか、サーバでもテキストファイルでトランザクション処理をやったことがあれば、この辺りの処理は基本中の基本のはず。

トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/2192
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form

コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。

OpenID を使ってログインすることができます。

Identity URL: Yahoo! JAPAN IDでログイン