2

ここで概説するように、GoogleAppEngineのシャーディング値の理論を理解しています。

http://code.google.com/appengine/articles/sharding_counters.html

しかし、シャーディングした値に対してクエリを実行したい場合はどうなりますか?値はN個の異なるカウンターにランダムに分割されているため、単純にクエリを実行することはできません。これらの値を合計して、メインエンティティを更新するための解決策はありますか?他の人がこの問題に対してどのような解決策を考え出したのか知りたいです。

編集:タスクキューAPIを発見しましたが、バックグラウンドでメイン値を更新するための解決策のようです。シャーディングと並行してこれを使用しようとした人はいますか?

4

1 に答える 1

0

そうです、シャード間で分割されているため、別のデータストアクエリで合計を1回のショットで使用することはできません。ただし、最初のクエリを実行してすべてのシャードを収集し、それらをメモリに合計してから、その合計を使用して元のクエリを実行することができます。

それを超えて、はい、タスクキューは間違いなくバックグラウンドでこのような作業を行うための良いアプローチです。アイデアについては、この講演をご覧ください。

http://www.google.com/events/io/2010/sessions/high-throughput-data-pipelines-appengine.html

于 2011-04-11T19:09:32.103 に答える