Запросы Google Datastore и возможная согласованность

Я хотел бы подтвердить свое понимание возможной согласованности в хранилище данных Google. Предположим, что у меня есть сущность, определенная следующим образом (используя ndb):

class Record(ndb.Model):
    name = ndb.StringProperty()
    content = ndb.BlobProperty()

Я думаю, что понимаю сценарии 1, но у меня есть сомнения относительно сценариев 2 и 3, поэтому некоторые советы будут высоко оценены.

Сценарий 1: Я вставляю новую запись с именем "Luca" и заданным содержанием. Затем я запрашиваю хранилище данных:

qry = Record.query(name=="Luca")
for r in qry.iter():
    logger.info("I got this content: %r" % r.content)

Я понимаю, что из-за возможной согласованности только что вставленная запись не может быть частью набора результатов. Я знаю об использовании запросов предков, чтобы преодолеть это при необходимости.

Сценарий 2: Я читаю существующую запись с именем "Luca", обновляю содержимое и записываю ее обратно. Например, предполагая, что у меня есть ключ "k" этой записи:

r = k.get()
r.content = "new content"
r.put()

Затем я выполняю тот же запрос, что и в Сценарии 1. Когда я получаю результаты, предположим, что запись является частью набора результатов (например, потому что индекс уже содержал запись с именем «Luca» и ключом k). Могу ли я тогда гарантировать, что содержимое поля будет иметь новое значение «новый контент»? Другими словами, если я обновлю запись, оставив только ее ключевые и индексированные поля, я гарантированно прочту самое последнее значение?

Сценарий 3: Я делаю аналогично Сценарию 2, где k - ключ записи с именем «Luca»:

r = k.get()
r.content = "new content"
r.put()

но затем я запускаю модифицированную версию запроса:

qry = Record.query(name=="Luca")
for k in qry.iter(keys_only=True):
    r = k.get()
    logger.info("I got this content: %r" % r.content)

В этом случае логика говорит мне, что я должен получить последнее значение содержимого, потому что чтение по ключу гарантирует строгую согласованность. Буду признателен за подтверждение.

Ответы на вопрос(1)

Ваш ответ на вопрос