私はいつも、twitter、facebook、google plus などのソーシャル ネットワーキング Web サイトのアーキテクチャについて疑問に思っていました。好奇心から知りたいのですが、コメント付きの長い投稿と短い投稿(画像、Webリンクなどを含む)をどのように管理していますか。それらはデータベースまたはxmlファイルに保存されますか、それともいくつかの組み合わせで保存されますか? このような大量のデータを実際にどのように管理しているのでしょうか?
ありがとう
私はいつも、twitter、facebook、google plus などのソーシャル ネットワーキング Web サイトのアーキテクチャについて疑問に思っていました。好奇心から知りたいのですが、コメント付きの長い投稿と短い投稿(画像、Webリンクなどを含む)をどのように管理していますか。それらはデータベースまたはxmlファイルに保存されますか、それともいくつかの組み合わせで保存されますか? このような大量のデータを実際にどのように管理しているのでしょうか?
ありがとう
Facebook は、今年初めに IBM の Silicon Valley Lab で技術的な講演を行い、Apache hBase の使用と、MySQL が十分に拡張できないことについて話しました。彼らはデータの構造を深く掘り下げるのではなく、システムを動かすインフラストラクチャと、非常に高速な読み取り操作にどのように重点を置いたかについて説明しました。
一般に、これらの規模のサイトでは規模と速度が非常に重要であり、システムに組み込まれた自動冗長性を備えたシャード データベース構造に大きく依存しています。データベースのパフォーマンスに劇的な影響を与えるため、通常、参照整合性や定義済みスキーマなどのデータベースの概念は使用しません。Facebook の場合、私の記憶が正しければ、基本的にデータを記述した JSON オブジェクトを保存し、必要に応じて新しいデータ構造をサポートするためにオブジェクトに新しいフィールドを簡単に追加できました。大規模なテーブルで列操作を実行し、多くの異なる独立したマシンでそれらを同期させ、システムを完全にオフラインにしないのは悪夢です。
Facebook ページのHBase には、役に立つと思われる興味深いグラフィックスと情報がいくつかあります。