App Engine的开发服务器上是否忽略了“gae.unindexed”扩展?我在一次写入调用中持有大约246个实体,这总共创建了大约25个数据存储区放置操作。经过一些研究,我确定这是由索引的自动存储引起的。你解决这个问题的方法是添加以下@Extenstion,如下面的实体所示(至少对于JDO):
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class RealmEntity extends BaseEntity implements Serializable {
@Persistent
private String name;
@Persistent
@Extension(vendorName = "datanucleus", key = "gae.unindexed", value = "true")
private String population;
@Persistent
@Extension(vendorName = "datanucleus", key = "gae.unindexed", value = "true")
private String region;
@Persistent
private String slug;
...
然而,在我的实体上添加其中两个注释之后,我仍然得到完全相同的25个put操作。我希望这些属性在开发服务器上被忽略,但可以在生产中使用。任何人都可以确认或否认这个吗?或者解释为什么它不起作用?
答案 0 :(得分:1)
我使用objectify并且开发服务器正确地报告了我期望的写入操作的数量。它确实考虑了我标记为未编制索引的属性。
我不知道如何修复您的设置,但我可以反驳您的猜测,并说您的更改应该反映在开发服务器写入操作计数中。
答案 1 :(得分:1)
您确定不会将数据存储区与数据存储区写入混淆吗?
使属性无索引可减少数据存储区写入,但不会影响将实体持久保存到数据存储区所需的放置次数。您是否通过AppStats看到了看跌期权的数量?