mixi.jp ミクシィ アーキテクチャ
スポンサーリンク
日本を代表するSNSサイト、ミクシィ(Mixi)のアーキテクチャについて。
mixi.jpArchitecture
Mixiは、日本で成長の早いソーシャルネットワーキングサイトです。
Mixiは、次のようなサービスを提供します:
日記、コミュニティ、メッセージ、レビュー、フォトアルバム。LiveJournalと同じアプローチの多くを開発しました。彼らが簡単に彼らのシステムをどのようにスケールさせていったかについて書きます。
サイト: http://mixi.jp
情報源
オープンソースとスケール
http://mysqluc.com/presentations/mysql06/mixi_update.pdf
プラットフォーム
元ネタ
http://highscalability.com/mixi-jp-architecture
mixi.jpArchitecture
Mixiは、日本で成長の早いソーシャルネットワーキングサイトです。
Mixiは、次のようなサービスを提供します:
日記、コミュニティ、メッセージ、レビュー、フォトアルバム。LiveJournalと同じアプローチの多くを開発しました。彼らが簡単に彼らのシステムをどのようにスケールさせていったかについて書きます。
サイト: http://mixi.jp
情報源
オープンソースとスケール
http://mysqluc.com/presentations/mysql06/mixi_update.pdf
プラットフォーム
- Linux
- Apache
- MySQL
- Perl
- Memcached
- Squid
- Shard - http://highscalability.com/tags/shard
- 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]
スポンサーリンク
スポンサーリンク
いつもシェア、ありがとうございます!
もっと情報を探しませんか?
関連記事
最近の記事
- パナソニック ジェットウォッシャードルツ EW-DJ61-Wのホースの修理
- LinuxセキュリティモジュールIntegrity Policy Enforcement
- アマゾンのEcho Show 5を買ったのでレビューします
- アマゾンのサイバーマンデーはAlexa Echo Show 5が安い
- Android スマートフォン OnePlus 7T と OnePlus 7の違い
- Android スマートフォン OnePlus 7 をAndroid10にアップデートしてみた
- クレジットカードのバーチャルカードの比較のまとめ
- 活動量計 Xiaomi Mi Band 4を買ってみたのでレビュー
- Android スマートフォン OnePlus 7 のレビュー
- AliExpressでスマートフォンを買い物してみた
- パソコンのホコリ対策 レンジフードフィルターと養生テープ
- 80PLUS GOLDのPC電源ユニットAntec NeoEco 750 Goldのレビュー
- イギリスの付加価値税 VAT は払い戻しを受けられる
- イギリスのロンドンでスーツケースなど荷物を預けられる場所は
- イギリスのロンドンで地下鉄やバスに乗るならオイスターカードを使おう
- イギリスのヒースロー空港からロンドン市内への行き方
- 航空便でほかの航空会社に乗り継ぎがある場合のオンラインチェックイン
- SFC会員がANA便ではなくベトナム航空のコードシェアを試して解ったこと
- ベトナムの入国審査でeチケットの掲示が必要だった話
- シアトルの交通ICカードはオルカカード(Orca)です
人気のページ
- Windows7 IME 辞書ツールで単語の登録に失敗しました
- C言語 popen()でコマンドを実行して出力を読み込む
- Windows7で休止状態にする方法
- CentOS MySQLの起動、停止、再起動
- loggerコマンドでsyslogにエラーを出力する方法
- パソコンパーツの買取をしてくれる店のまとめ
- Java Mapの使い方 get(),put(),remove(),size(),clear()
- 楽天のRポイントカードを作ってみた
- iPhone 5 から iPhone 6 に乗り換えたのでレビュー
- netstatコマンドのステータスの意味
スポンサーリンク
過去ログ
2020 : 01 02 03 04 05 06 07 08 09 10 11 122019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
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