2016-10-13 3 views
0

リアルタイムで大量の低レイテンシのアプリケーション(リアルタイムビッダー、広告配信など)の場合、メモリ内のすべてのドメインオブジェクト(ユーザー、キャンペーン、アプリなど)を読み込む手法は何ですか? etc)を使用してブート時にロードし、データベースの照会を避けます。 私は、人々が実際にどのようにそれを実装しているのかを知りたいと思っています。 (例えば、Twitter、Facebookなど)とその経験は何ですか?メモリにドメインオブジェクトをロードし、データベースクエリを作成する必要がないいくつかの異なる手法はありますか?

上記のようなアプリケーションの使用例については、すべてのデータを大きなボックス(50〜60 GB)に収めることができ、うまく機能しますが、ある時点では拡大縮小の代替ソリューションを検討したい(大きなボックスを使った垂直方向のスケーリングは好みではありません)

このような問題については、実用的な体験をお寄せください。 (私はシャーディングのようなものはいくつか考えていますが、人々がそれを維持するためにオーバーヘッドなどのソリューションを使用しているかどうかはわかりません)。

+0

FacebookやTwitterなどのシステムを簡単に構築することはできません。 –

+0

私はあなたに同意しますが、FBから誰かがいるかもしれない、Twitterは彼らがそれをやっている方法をいくつか光を発することができます:)私は彼らが要求ごとにいくつかのDB呼び出しを行っていないと確信しています、TBH、 FB、Twitterのようなスケール - 私はちょうどそのアイデアを伝えたいと思っていました。 – Gaurav

答えて

0

データアクセスパターンが重い、データをキャッシュすることができ、データベースの読み込み負荷を軽減する必要がある場合、memcached、etcd、redisなどの分散キャッシュ/キー値ストアが理想的です。

この文書をチェックしてください:https://www.usenix.org/system/files/conference/nsdi13/nsdi13-final170_update.pdf、どのようにFacebookがmemcacheを使用していますか。

関連する問題