AppEngine 1.9.2 + Objectify 4.1.2 =巨大的自动生成ID

时间:2014-04-07 13:44:14

标签: google-app-engine objectify

我有一个使用Objectify的AppEngine项目。

  • 我刚刚升级了我的AppEngine SDK => 1.9.2
  • 我从Objectify 3.1迁移到4.1.2

在该切换之前,DataStore中我的实体的生成ID在该范围内:

  • id = 84001
  • id = 86001等。

现在他们是这样的:

  • id = 5105650963054592
  • id = 5649050225344512等。

之前的ID已经有点奇怪了(大差距),但看起来很正常,现在可能出现了问题。

哪里可能是问题?

  • 我的代码/配置?
  • Objectify?
  • DataStore?
  • 没什么,这很正常

Nb:在调用ofy()之前我没有设置ID(类型为Long).save()。entity(entity).now()。

感谢您的帮助。

皮尔。

1 个答案:

答案 0 :(得分:4)

这是正确的行为。 App Engine切换为长且随机的自动生成ID,以减少数据存储区中的争用(并因此提高性能)。

  

可以将数据存储配置为使用两个生成自动ID   不同的自动ID策略:默认策略生成随机   大致均匀分布的ID序列。每个ID   最长可达16位。遗留策略创建了一系列   非连续的较小整数ID。

     

来源:Entities, Properties, and Keys