LinkedIn の 「ザ・クラウド」
(Translate to English)Friday May 23, 2008
The LinkedIn Blog に, 彼らが JavaOne で発表したときのスライドが置いてあった.
- LinkedIn - A Professional Network built with Java Technologies and Agile Practices
- LinkedIn Communication Architecture
ひとつ目のスライドの #19, #20 に, LinkedIn の
The Cloud
(ユーザのネットワーク, いわゆる 「ソーシャル・グラフ」)
のアーキテクチャの紹介が載っている.
別のエントリ
(Via: High Scalability)
と併せて想像すると, おおよそこんな感じ:
- グラフの規模は 2,200 万ノード (ユーザ), 1 億 2,000 万エッジ (リンク)
- グラフは, リレーショナル・データベースではなく, すべてをメモリ上に展開 (12 GB JVM ヒープ. C++ によって実装したメモリ・キャッシュに JNI 経由でアクセス) して管理
- このグラフ管理サーバ (「クラウド・サーバ」) を 40 台運用し, ユーザ・セッション単位でスティッキーに負荷分散
- グラフの基となるコネクション情報はデータベースに格納されている. これに変化があったときにデータベースから出力されるトランザクション・ログを, 各 「クラウド・サーバ」 が取り込み, メモリ上のグラフを更新
- あるユーザとあるユーザがどのようなパスで (誰を介して) 結ばれているかの探索 (findRoute(m1, m2)) は, 両方のユーザを起点として実行
これってまさに
high-performance computing to interpolate and interrogate the social graph
(日本語訳記事)
を地でいってるわけで, なかなか興味深い.
![]()
LinkedIn - A Professional Network built with Java Technologies and Agile Practices
Tags: customer java javaone jonathanschwartz sun web2.0












