gae.unindexed在开发服务器上被忽略了?

时间:2012-02-08 02:58:41

标签: google-app-engine google-cloud-datastore

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操作。我希望这些属性在开发服务器上被忽略,但可以在生产中使用。任何人都可以确认或否认这个吗?或者解释为什么它不起作用?

2 个答案:

答案 0 :(得分:1)

我使用objectify并且开发服务器正确地报告了我期望的写入操作的数量。它确实考虑了我标记为未编制索引的属性。

我不知道如何修复您的设置,但我可以反驳您的猜测,并说您的更改应该反映在开发服务器写入操作计数中。

答案 1 :(得分:1)

您确定不会将数据存储区与数据存储区写入混淆吗?

使属性无索引可减少数据存储区写入,但不会影响将实体持久保存到数据存储区所需的放置次数。您是否通过AppStats看到了看跌期权的数量?