Google云数据存储区速度很慢(>;800ms),只需通过计算引擎进行简单查询 [英] Google cloud datastore slow (>800ms) with simple query from compute engine
本文介绍了Google云数据存储区速度很慢(>;800ms),只需通过计算引擎进行简单查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当我尝试从(微)计算引擎查询Google Cloud Datastore时,通常需要>800ms才能得到回复。我得到的最好的是450ms,最差的是>3秒。
我的印象是延迟应该要低得多(比如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');
});
不确定它是否相关,但我的应用程序引擎项目位于美国中部地区,我正在从中运行查询的计算引擎也是如此。
更新
经过进一步测试,我发现默认身份验证(Token?)您在使用Google提供的Node.js库时获得的信息将在大约4分钟后过期。
换句话说:如果您使用相同的流程,但在两次请求之间等待了4分钟或更长时间,则查询时间将回到>800ms。
我还尝试了使用密钥文件进行身份验证,这似乎做得更好:后续请求仍然更快,但初始请求只需要一半的时间(>400ms)。
推荐答案
您看到的对数据存储区的初始请求延迟很可能是由于缓存预热造成的。数据存储区使用分布式体系结构来管理扩展,从而允许您的查询根据结果集的大小进行扩展。通过执行更多的相同查询,数据存储区为您的查询做的准备越充分,结果的速度也就越一致。
如果您希望在较低的数据存储区访问速率下获得相似的结果速度,建议配置您自己的缓存层。Google App engine提供了Memcache,它针对数据存储的使用进行了优化。由于您是从Compute Engine发出请求,因此可以使用其他第三方解决方案,如Redis或Memcached。这篇关于Google云数据存储区速度很慢(>;800ms),只需通过计算引擎进行简单查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文