【发布时间】:2011-12-29 18:20:26
【问题描述】:
我有以下实体(通过 JDO 指定):
@PersistenceCapable(
identityType = IdentityType.APPLICATION, detachable = "true")
public class Subscription {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long id;
@Persistent
private String user;
@Persistent(defaultFetchGroup = "true")
private Link feedUrl;
@Persistent(defaultFetchGroup = "true")
@Extension(vendorName = "datanucleus", key = "gae.unindexed", value="true")
private Link hubUrl;
@Persistent
@Extension(vendorName = "datanucleus", key = "gae.unindexed", value="true")
private String title;
@Persistent(defaultFetchGroup = "true")
@Extension(vendorName = "datanucleus", key = "gae.unindexed", value="true")
private Set<String> seenEntryIds;
}
(查看完整的实体定义here)
它只有三个索引属性,id、user 和 feedUrl。在开发服务器上运行时,控制台说每个实体会产生 6 个写入操作。
但是,在生产中运行时,配额详细信息页面显示有 4,276 个实体放置操作和 164,110 个索引写入操作,这使得每个实体平均有 38 个索引写入。这比我预期的要高得多,也比开发服务器显示的要高得多。
我添加了gae.unindexed 属性late yesterday,然后也推送了更改。因此,我希望今天发生的所有实体 put(这是配额详细信息页面报告的内容)不会反映任何额外的索引写入。
【问题讨论】:
标签: google-app-engine google-cloud-datastore