私はJ2EE/MySQL
、ユーザーがブログを書いたり、質問したり、Wiki ページを作成したり、チャレンジを投稿したり、カスタム クイズを投稿したりできる、ベースのソーシャル ネットワーキング プラットフォームに取り組んでいます。
この種のプラットフォームは大量のデータを生成するため、サイトが適切に機能することを確認する必要があります.
Memcached
リレーショナル DB からブログ、Wiki、質問レベルでデータを完全にキャッシュするために使用することにしました。これにより、ユーザーがこれらのページにアクセスするたびに、 からデータが配信されるようになりますmemcached
。したがって、DB の負荷が減少します。
DB は、新しいレコードが追加された場合と、いくつかのまれなケースでのみヒットします。
これに加えて、次のように複雑になります。
- システムには許可制もあります。
- 各ユーザーは、ユーザーがデータを作成したかどうか、およびその他のルールに応じて、データに対するさまざまな種類のアクセス許可を持っています。
- 権限が適用されたブログ、Wiki、質問レベルのデータをキャッシュするには、セッションとユーザー ID をキーとしてデータを複製する必要があります。これには大量のメモリが必要になります。
- ブログ、ウィキ、質問レベルのデータを DB から取得し
Memcache
、パーミッション レベルのデータを DB から取得しmemcached
、実行時にデータにパーミッションを適用することにしました。
実行時にこのような膨大なデータにアクセス許可を適用すると、処理時間が長くなり、Memcached
クラスターの実装によって得られる利点が失われる可能性があるのではないかと心配しています。
入力内容をお知らせください。