2

次のようなキーを使用して、アイテムのバッチを取得しています。

from google.appengine.ext.ndb import model

# …
keys = [model.Key('Card', id, namespace=ns) id in ids]
cards = yield model.get_multi_async(keys)

appstats での結果は次のとおりです。

アプリ統計のスクリーンショット

逆ウォーターフォールの問題は、それぞれ独自の RPC でキーが 1 つずつ並行して送信されることが原因のようです。

私の質問は、単一の RPC 呼び出しで複数のオブジェクトをキーで取得する方法はありますか? (これにより、アプリの全体的な応答時間が短縮されると仮定します)。

4

1 に答える 1

5

Lecstor によってリンクされたスレッドでの guido の応答を引用します。

呼び出しに渡すmax_entity_groups_per_rpc=Nことで、より少ない RPC の発行をいつでも試すことができ ますget_multi_async()

複数の並列 rpc は、単一のマルチキー RPC よりも効率的です。

HRD の実装を担当するエンジニアは、これが単一のマルチキー Get RPC を発行するよりも効率的であることを保証します。

于 2012-05-24T11:38:11.700 に答える