Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine AppEngine-优化POST请求时的读/写计数_Google App Engine_Google Cloud Datastore_Jdo - Fatal编程技术网

Google app engine AppEngine-优化POST请求时的读/写计数

Google app engine AppEngine-优化POST请求时的读/写计数,google-app-engine,google-cloud-datastore,jdo,Google App Engine,Google Cloud Datastore,Jdo,我需要优化我正在使用的POST请求的读/写计数 有关请求的一些信息: 用户发送约100个项目的JSON数组 servlet需要使用单个long属性检查是否有任何接收到的项比数据存储中的对应项更新 我正在使用JDO 我现在做的是(伪代码): 这显然会导致每个请求大约100个读取请求 减少此逻辑的读取计数的最佳方法是什么?使用JDO查询?我读到使用“IN”-查询只会导致一个接一个地执行多个查询,因此我认为这对我没有帮助:( 还有PersistenceManager.getObjectsById(

我需要优化我正在使用的POST请求的读/写计数

有关请求的一些信息:

  • 用户发送约100个项目的JSON数组
  • servlet需要使用单个
    long
    属性检查是否有任何接收到的项比数据存储中的对应项更新
  • 我正在使用JDO
我现在做的是(伪代码):

这显然会导致每个请求大约100个读取请求

减少此逻辑的读取计数的最佳方法是什么?使用JDO
查询
?我读到使用“IN”-查询只会导致一个接一个地执行多个查询,因此我认为这对我没有帮助:(

还有PersistenceManager.getObjectsById(Collection)。这有什么帮助吗?找不到关于这将发出多少请求的任何文档。

最佳选择是

pm.getObjectsById(ids);
因为这是为了在一次调用中获取多个对象(特别是因为您有ID,所以有键)。当然,当前代码(2.0.1及更高版本)应该为getEntities()执行单个数据存储调用。请参见

pm.getObjectsById(ids);

因为这是为了在一个调用中获取多个对象(特别是因为您有ID,所以有键)。当然,当前代码(2.0.1及更高版本)应该为getEntities()执行单个数据存储调用。请参见

我认为您可以使用以下调用执行批处理获取:

Query q = pm.newQuery("select from " + Content.class.getName() + " where contentKey == :contentKeys");   
类似于上面的查询将返回您需要的所有对象。
您可以从这里处理其余的所有事务。

我认为您可以使用下面的调用来执行批处理获取:

Query q = pm.newQuery("select from " + Content.class.getName() + " where contentKey == :contentKeys");   
类似于上面的查询将返回您需要的所有对象。
您可以从这里处理所有其他的问题。

显然,这不是您在这里引用的“低级API”,您刚刚使用appstats工具进行了检查,这导致了一个数据存储get调用:)是的,我认为@DataNucleus是正确的。我一直这么想。。。谢谢你指出。很明显,这不是你刚才引用的“低级API”,只是用appstats工具检查了一下,这导致了一个数据存储get调用:)是的,我认为@DataNucleus是正确的。我一直这么想。。。谢谢你指出。这个getObjectsById调用实际上是做什么的?它是对每个id执行批处理get还是执行getObjectById?“当然,当前代码(2.0.1及更高版本)应该对getEntities()执行单个数据存储调用”。显然,您可以很容易地阅读日志来确认这样的事情。getObjectsById调用的实际用途是什么?它是对每个id执行批处理get还是执行getObjectById?“当然,当前代码(2.0.1及更高版本)应该对getEntities()执行单个数据存储调用”。显然,你可以很容易地阅读日志来确认这些事情