Consultas do Google Datastore e consistência eventual
Gostaria de confirmar minha compreensão da consistência eventual no armazenamento de dados do Google. Suponha que eu tenha uma entidade definida como segue (usando ndb):
class Record(ndb.Model):
name = ndb.StringProperty()
content = ndb.BlobProperty()
Acho que entendo os Cenários 1, mas tenho dúvidas sobre os Cenários 2 e 3, portanto, alguns conselhos seriam muito bem-vindos.
Cenário 1: Eu insiro um novo registro com o nome "Luca" e um determinado conteúdo. Em seguida, consultei o armazenamento de dados:
qry = Record.query(name=="Luca")
for r in qry.iter():
logger.info("I got this content: %r" % r.content)
Eu entendo que, devido à consistência eventual, o registro recém-inserido pode não fazer parte do conjunto de resultados. Eu sei sobre o uso de consultas ancestrais, a fim de superar isso, se necessário.
Cenário 2: Eu li um registro existente com o nome "Luca", atualizo o conteúdo e o escrevo de volta. Por exemplo, supondo que eu tenha a chave "k" deste registro:
r = k.get()
r.content = "new content"
r.put()
Em seguida, executo a mesma consulta do Cenário 1. Quando obtiver os resultados, suponha que o registro faça parte do conjunto de resultados (por exemplo, porque o índice já continha o registro com o nome "Luca" e a chave k). Tenho então a garantia de que o conteúdo do campo terá seu novo valor "novo conteúdo"? Em outras palavras, se eu atualizar um registro, deixando seus campos chave e indexados sozinho, tenho a garantia de ler o valor mais recente?
Cenário 3: Eu faço de forma semelhante ao cenário 2, novamente, onde k é a chave de um registro com o nome "Luca":
r = k.get()
r.content = "new content"
r.put()
mas depois executo uma versão modificada da consulta:
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)
Nesse caso, a lógica me diz que eu deveria estar recebendo o valor mais recente do conteúdo, porque a leitura por chave garante uma consistência forte. Eu apreciaria a confirmação.