App Engine最近宣布支持跨组(XG)事务;当在多个实体组之间使用时,预计这些事务会产生额外的开销,但如果我在事务开始时指定我想要一个XG事务,但实际上只访问一个实体组,那么我会看到显着的性能影响吗?
我之所以问是因为JDO要求在持久化管理器级别指定XG-ness,而仅为所有事务打开它会更简单(我只需要在几种罕见情况下使用它)...
我之所以问是因为JDO要求在持久化管理器级别指定XG-ness,而仅为所有事务打开它会更简单(我只需要在几种罕见情况下使用它)...
从官方文档中得知:
只涉及单个实体组的XG事务的行为类似于单组事务。该事务内的操作在计费和资源使用方面与等效的单组事务相同,但是延迟更高。
来源: https://developers.google.com/appengine/docs/python/datastore/overview
虽然没有记录或定义这种情况,但最安全的做法是假定所有交易都存在开销。
如果您担心开销,那么您可能不应该使用JDO,因为创建PersistenceManager本身就有很多开销。