【发布时间】:2012-01-16 21:22:49
【问题描述】:
我试图了解在 Google AppEngine 数据存储的竞争条件下会发生什么。我一直在使用 Objectify,所以我将在此处使用该符号。
@Cached
public class Car {
@Id
public Long id;
@Unindexed
public String owner = "C";
}
现在考虑我有两个可运行文件尝试同时修改特定汽车的owner。
Car myCar = ofy.get(Car.class, 10);
myCar.owner = "A"; // Other runnable uses "B"
ofy.put(myCar);
System.out.println(ofy.get(Car.class, 10).owner);
我认为在这种情况下,它不确定 Car(10) 是由“A”还是“B”“拥有”,但不会报告任何错误。在将写入持久化到数据存储区之前,“失败者”将不清楚。 printlns 的结果是什么?
如果我使用了事务,其中一个可运行对象(“失败者”)是否会引发异常?
【问题讨论】:
标签: google-app-engine google-cloud-datastore objectify