1000個のエンティティがあるとしましょう。ユーザーに次のようにファセット検索でエンティティを見つけてもらいたいです。
- ユーザーがフィルターを選択
- ajaxリクエストがGAEに送信されます
- サーバーは一致するエンティティの数を返します
- エンティティが少なくなるまで繰り返します
つまり、適用されたすべてのフィルター(チェックボックスのみ)により、最大1000回の読み取りが発生する可能性があります(返されるエンティティが少なくなるため、後続のフィルターのコストは低くなります)。これは、1日に約10回の「検索」(=複数のフィルターを適用)すると、5万回の無料読み取りクォータがすべて消費される可能性があることを意味します。
Memcachingの結果は実際にはオプションではありません。適用できるフィルターが30個ある場合、すべての組み合わせを保存するには、2 ^ 30 = "over 10億"のmemcacheエントリがあります(エンティティが変更されたときにすべて更新する必要があります)最初に10億のデータストア読み取りを行います)。
どうやら私は何かを得ませんでした。結果を効率的にキャッシュまたは計算するにはどうすればよいですか?