iPad 3rd/2 防指紋 PRO GUARD AF HD Grade Anti-Fingerprint / PGAF-IPAD2
 ポケットモンスターホワイト2
ポケットモンスターホワイト2

 ポケットモンスターブラック2
ポケットモンスターブラック2

 ドラゴンズドグマ(数量限定特典『バイオハザード6』体験版用DLコード同梱)
ドラゴンズドグマ(数量限定特典『バイオハザード6』体験版用DLコード同梱)

 ドラゴンクエストモンスターズ テリーのワンダーランド3D
ドラゴンクエストモンスターズ テリーのワンダーランド3D

 TOKYO JUNGLE (トーキョージャングル) (初回生産分限定封入特典「ポメラニアン2色セット(ホワイト・ブラック)」同梱) 特典 Amazon.co.jpオリジナル 「超肉食の猛者
TOKYO JUNGLE (トーキョージャングル) (初回生産分限定封入特典「ポメラニアン2色セット(ホワイト・ブラック)」同梱) 特典 Amazon.co.jpオリジナル 「超肉食の猛者"クロコダイル"」がダウンロードできるプロダクトコード付き

 ペルソナ4 ザ・ゴールデン 特典 PlayStation Vita用スクリーン(タッチスクリーン)オリジナル保護シート(壁紙付き)付き
ペルソナ4 ザ・ゴールデン 特典 PlayStation Vita用スクリーン(タッチスクリーン)オリジナル保護シート(壁紙付き)付き

 MARIO TENNIS OPEN (マリオテニスオープン)
MARIO TENNIS OPEN (マリオテニスオープン)

 Xbox Live 3500 マイクロソフト ポイント カード【プリペイドカード】(NEW)
Xbox Live 3500 マイクロソフト ポイント カード【プリペイドカード】(NEW)

 ドラゴンクエストX 目覚めし五つの種族 オンライン (Wii USBメモリー16GB同梱版) (封入特典:ゲーム内アイテムのモーモンのぼうし同梱)
ドラゴンクエストX 目覚めし五つの種族 オンライン (Wii USBメモリー16GB同梱版) (封入特典:ゲーム内アイテムのモーモンのぼうし同梱)

 神次元ゲイム ネプテューヌV(神限定版)(2012年夏発売予定) 予約特典ネプテューヌビジュアルブック付き
神次元ゲイム ネプテューヌV(神限定版)(2012年夏発売予定) 予約特典ネプテューヌビジュアルブック付き

日本を代表するSNSサイトミクシィ(Mixi)のアーキテクチャについて。

mixi.jpArchitecture

Mixiは、日本で成長の早いソーシャルネットワーキングサイトです。
Mixiは、次のようなサービスを提供します:
日記、コミュニティ、メッセージ、レビュー、フォトアルバム。LiveJournalと同じアプローチの多くを開発しました。彼らが簡単に彼らのシステムをどのようにスケールさせていったかについて書きます。

サイト: http://mixi.jp

情報源

オープンソースとスケール
http://mysqluc.com/presentations/mysql06/mixi_update.pdf

プラットフォーム
どうなっているか?
  • 2年で約400万ユーザに成長し、1日15000人の新規ユーザが参加しました。
  • Alexaで35位、日本で3位です。
  • 100台以上のMySQLサーバがあります。
  • 月に10台以上追加しています。
  • 非永続的なコネクションを使っています。
  • 日記のトラフィックは、リード(読み込み)が85%、ライト(書き込み)が15%です。
  • メッセージのトラフィックは、リード(読み込み)が75%、ライト(書き込み)が25%です。
  • レプリケーションのパフォーマンスの問題に直面したとき、彼らはデータベースを分割しました。
  • 彼らがデータベースを分割しなければならなかったように、レプリケーションのパフォーマンスの問題にぶつかりました。
  • ユーザにより垂直に割るか、テーブルタイプによって水平に割ることを考えました。
  • 結局、テーブルタイプとユーザによってパーティショニングしました。
  • ユーザグループのメッセージのすべては、特別のデータベースに割り当てられます。
  • パーティションキーは、データが格納されるべきデータベースを決定するのに使われます。
  • キャッシュのために、30台 x 2GBメモリをmemcachedに使います。
  • 8TB以上の画像を保存し、1日に23GBぐらい追加されます。
  • MySQLはイメージのメタデータを保存するためにだけに使われます、画像自体のためではありません。
  • たびたび、アクセスされる画像は、複数のマシンのSquidを使用してキャッシュされます。
  • めったにアクセスされない画像は、ファイルシステムから配信されます。
  • それらをキャッシュするメリットがありません。
学んだこと
  • 動的パーティショニングを使うとき、データを格納するためのキーとアルゴリズムを選ぶことは難しいです。
  • 一度データを分割すると、もはや、joinすることができません。そして、データをマージするために異なったデータベースへのたくさんのコネクションをオープンしなければなりません。
  • データベースを分割しているとき、新しいホストを加え、データを再配置することが難しいです。
  • たとえば、 パーティショニングアルゴリズムは、ユーザ 1-Nをホスト1にすべてのメッセージを格納するとしましょう。
  • すぐに、ホスト1がデータを抱えすぎるようになり、そして、あなたがは多くのホストに渡ってユーザを再配置したいと言います。
  • これをするのは、とても難しいです。
  • 分散メモリキャッシュにより、DBへのアクセスはほとんどありません。平均的なページロードの時間は、0.02秒です。
  • あなたは、たびたびコンテンツのタイプによる戦略を開発しなければなりません。例えば、画像は、短いテキストの配信とは異なって扱われるでしょう。
  • ソーシャルネットワーキングサイトは、とても時間が重視されるため、ユーザタイプと同様に時間による分割が役に立つかもしれません。

元ネタ
http://highscalability.com/mixi-jp-architecture
参照しているページ (サイト内): [2008-08-21-2]

関連記事

2007-08-08 固定リンク このエントリーを含むはてなブックマーク

最近の記事

2012-03-30
- Thrift とは
2012-03-29
- FreeBSD で Node.js をビルドする方法
2012-03-28
- IS01 root 取得
2012-03-27
- git reset コミットを取り消す方法
2012-03-26
- Git ワーキングツリーの変更を元に戻す
2012-03-25
- Git commit をやり直しする --amend
2012-03-24
- FreeBSD で GitWeb を動かしてみる
2012-03-23
- Git ブランチを作成する
2012-03-22
- はじめてのGit入門
2012-03-21
- Git 最初にやっておくべき便利な設定
2012-03-20
- Git を FreeBSD にインストールする
2012-03-19
- HBase クラスタの確認
2012-03-18
- HBase を HTTP REST から利用する方法
2012-03-17
- HBase shell でバックスペースが効かない
2012-03-16
- HBase Table の存在を調べる
2012-03-15
- HBase Table を調べる
2012-03-14
- HBase を動かしてみる
2012-03-13
- CentOS openjdk-develをインストールする
2012-03-12
- CentOSでハードウェアRAIDとシングルHDDのベンチマーク
2012-03-11
- Gigabyte EP45-UD3R のRAIDをCentOSで使う

はてなの人気のブックマーク

過去ログ

2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12
プライバシーポリシー