(マイクロ)計算エンジンからGoogle Cloud Datastoreにクエリを実行しようとすると、通常、返信には800ms以上かかります。私が得た最高のものは450msで、最悪のものは3秒以上でした。Google Cloud Datastore slow(> 800ms)、計算エンジンからの簡単なクエリ付き
レイテンシははるかに低く(20-80msのように)低くなければならないという印象を受けていたので、間違っていると思います。
この
は私が(ちょうど単一のエンティティで、単純なデータストアから)照会に使用しています(Node.jsの)コードです:それは、関連するのですが、場合const Datastore = require('@google-cloud/datastore');
const projectId = '<my-project-id>';
const datastoreClient = Datastore({
projectId: projectId
});
var query = datastoreClient.createQuery('Test').limit(1);
console.time('query');
query.run(function (err, test) {
if (err) {
console.log(err);
return;
}
console.timeEnd('query');
});
わからない私のアプリ-Engineプロジェクトクエリを実行している計算エンジンと同様に、米国中部地域にあります。
UPDATE
いくつかのより多くのテストの後、私は、Googleが提供しているのNode.jsライブラリを使用しているときあなたが得るデフォルトの認証が(トークン?)、約4分後に期限切れになることが分かりました。
つまり、同じプロセスを使用してもリクエスト間で4分以上待つと、クエリ時間は> 800msに戻ります。
キーファイルを使用した認証も試みましたが、これはうまくいくようでした。次の要求はまだ高速ですが、最初の要求は半分(> 400ms)しかかかりません。
タイミングを追加するリクエストを試すことはできますか?最初のAPI要求には、認証トークンのフェッチにいくらかのオーバーヘッドがあります。 – Stephen
1回のコールでパフォーマンスをテストしないでください。ループで包み込み、それぞれの時間を記録してから、平均、P50、P90、P95などを見ることができます。 –
あなたのコメントをありがとう! 実際、ループでクエリを実行すると、最初のクエリ対連続クエリのパフォーマンスが非常に明確に把握できます。 最初のクエリは> 800msで、後続のクエリは単純なクエリの場合は<100ms、より複雑なクエリの場合は<250msです。 私の使用例は、ページリクエスト後の単一のクエリです。最初のリクエストをスピードアップできる方法はありますか?認証され、オンデマンドでデータをフェッチする長期実行プロセスを作成する必要がありますか? – Reynaerde