Я пытаюсь понять, что происходит во время гонки в хранилище данных 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?
Если бы я использовал транзакции, один из исполняемых объектов ("проигравший") вызвал бы исключение?