Java Google数据存储-与批处理存储争用过多

Java Google数据存储-与批处理存储争用过多,java,google-cloud-datastore,objectify,Java,Google Cloud Datastore,Objectify,我有这个简单的结构 ParentEntity => ChildEntity 我在一次保存中放入了20000个子实体,如下所示 ofy().save().entities(childEntities).now() 但由于争用太多,它失败了,但是它可以与10K-14K实体一起工作。 我找不到它达到的极限,请参见。您提到的极限页面声明- 对实体组的最大写入速率-每秒1次 注意:您可以为实体组一起批写。这允许 您需要在此限制内将多个实体写入一个实体组 同一页还指示每次提交/写入的最大

我有这个简单的结构

ParentEntity 
   => ChildEntity
我在一次保存中放入了20000个子实体,如下所示

ofy().save().entities(childEntities).now() 
但由于争用太多,它失败了,但是它可以与10K-14K实体一起工作。
我找不到它达到的极限,请参见。

您提到的极限页面声明-

对实体组的最大写入速率-每秒1次

注意:您可以为实体组一起批写。这允许 您需要在此限制内将多个实体写入一个实体组


同一页还指示每次提交/写入的最大实体数为500。如果所有20000个实体都是单亲实体(实体组)的子实体,则您的写入速度将受到如上所述的限制。尝试将写入拆分为每个批少于或等于500个实体,并在每个批之间添加一个轻微延迟(1秒)

如果所有20k个实体都在一个实体组中,那么最好启动一个事务并将其写入该txn。您不需要添加任何延迟。@stickfigure-当我尝试使用新的google cloud API时,当事务中的实体总数超过500个时,它仍然无法提交事务。我得到的错误是-一次调用不能写入超过500个实体,代码=无效的参数。使用Objectfy/底层AppEngine数据存储API时,这是否会有不同的效果?使用Objectfy,我可以通过一次调用编写大约10K个实体。@stickfigure您不能在一次事务中添加20K,因为事务大小太大,调用失败。