Zapytania Google Datastore i ewentualna spójność

Chciałbym potwierdzić moje zrozumienie ewentualnej spójności w magazynie danych Google. Załóżmy, że mam obiekt zdefiniowany w następujący sposób (przy użyciu ndb):

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

Myślę, że rozumiem Scenariusze 1, ale mam wątpliwości co do Scenariuszy 2 i 3, więc niektóre rady byłyby wysoko cenione.

Scenariusz 1: Wstawiam nowy rekord o nazwie „Luca” i podaną treść. Następnie wysyłam zapytanie do magazynu danych:

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

Rozumiem, że ze względu na ewentualną spójność właśnie wstawiony rekord może nie być częścią zestawu wyników. Wiem o używaniu zapytań przodków, aby w razie potrzeby przejąć to zadanie.

Scenariusz 2: Czytam istniejący rekord o nazwie „Luca”, aktualizuję zawartość i zapisuję go z powrotem. Na przykład, zakładając, że mam klucz „k” tego rekordu:

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

Następnie uruchamiam to samo zapytanie, co w scenariuszu 1. Kiedy otrzymuję wyniki, zakładam, że rekord jest częścią zestawu wyników (na przykład, ponieważ indeks zawierał już rekord o nazwie „Luca” i klucz k). Czy mam wtedy gwarancję, że zawartość pola będzie miała nową wartość „nowa treść”? Innymi słowy, jeśli zaktualizuję rekord, pozostawiając tylko jego klucz i indeksowane pola, czy mam gwarancję przeczytania najnowszej wartości?

Scenariusz 3: Robię podobnie do Scenariusza 2, gdzie k jest kluczem rekordu o nazwie „Luca”:

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

ale potem uruchamiam zmodyfikowaną wersję zapytania:

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)

W tym przypadku logika mówi mi, że powinienem uzyskać najnowszą wartość treści, ponieważ czytanie według klucza gwarantuje dużą spójność. Byłbym wdzięczny za potwierdzenie.

questionAnswers(1)

yourAnswerToTheQuestion