NDBを使用して、AppEngineデータストアにいくつかの一般的な統計情報を照会しようとしています。それらは100%正確である必要はありません(つまり、結果整合性については心配していません)。それらは一般的にエンティティの数を反映する必要があります。
NDBでは、次のような単純なものを発行しています。
query = MyModel.query(MyModel.source==source, MyModel.created<=some_time).order(-MyModel.created)
count = query.count(keys_only=True)
これは約60秒後にタイムアウトになります。エンティティグループとトランザクションはかなり定期的に使用していますが、これらがこれらのカウントクエリに影響を与えないことを期待しています。現在、約420万のエンティティがMyModel
ありますが、source
フィルターによってこれはおそらく210,000に制限されます。
カスタムmemcache-yロジックを使用せずに、この規模の数値をカウントする別の方法はありますか?数字は正確である必要はなく、単に「一般的に正しい」ことを忘れないでください。