2

IIRC、各Facebookユーザーは5000人の友達を持つことができます。平均は130ですが、最大値ははるかに高くなっています。それらの友達のそれぞれは、数百万のセットから引き出された0個以上のエンティティを「いいね」することができます。たとえば、N軸(カテゴリやサイズなど)でグループ化されたこれらのエンティティのサブセットを見ると、友達が気に入っているエンティティをどのように見つけることができますか?

GAEの場合、コストはデータサイズではなく計算時間です。検索時に、特定のカテゴリとサイズの友達によるすべてのエントリを見つけることはできません。各友達がアクションを実行するときにユーザーのエントリを追加できますが、それは友達が何かをするたびに最大5000のデータエントリを意味します。これは、バックグラウンドであっても、多くのCPU時間です。また、最初の追加で逃した新しい友達がアプリを試してみるのも見逃します。スペースをセグメント化することは理にかなっていますが、友達はグループ化するのが非常に難しい方法でリンクされています。

何か案は?同様の問題を解決しましたか?

4

1 に答える 1

1

アイテム ID をキーとし、「フレンド」ID をプロパティ名として使用して、低レベルのデータストア API を使用してみてください (この場合、プロパティ値は true または false です)。キーフィルターを使用したルックアップは非常に高速でなければならないと思います。

于 2009-11-16T20:00:43.123 に答える