1

Obtient (Iterable e) retourne des données fortement cohérentes ou éventuellement des données cohérentes. J'ai regardé la documentation mais je n'ai pas trouvé la réponse.Quel est le niveau de cohérence d'un lot à obtenir dans Google Cloud Datastore

+0

La cohérence pragmatique de * tout * "magasin de données" dépend entièrement de la façon dont les données y parviennent, et si elles peuvent être modifiées afin que tout ce qui se trouve dans le magasin soit "périmé à l'arrivée". C'est une ressource partagée qui doit être traitée comme ... une ressource partagée. Les mises en garde habituelles s'appliquent, "Google ou non". –

Répondre

1

Réponse courte

Un get batch (disons 500 articles), ne fait aucune garantie de cohérence en dehors des entités individuelles. En d'autres termes, il a la même cohérence que 500 recherches individuelles, où chaque entité sera fortement cohérente. Les transactions sont atomiques, vous ne verrez donc pas de transactions partielles.

réponse plus longue

Un détail de mise en œuvre en cours (sujet à changement), est qu'un lot get sera sera fortement marquée par des entités dans la même Entity Group. Entre les groupes d'entités, il sera éventuellement cohérent.

À titre d'exemple, tenez compte des éléments suivants:

Vous envoyez une demande de client A (cA) pour supprimer 5 entités du groupe de l'entité 1 (EG1), enveloppé dans une transaction (TX1). Après validation, vous émettez une deuxième requête de cA pour écrire 5 entités dans le groupe d'entités 2 (eg2), également enveloppé dans une transaction (tx2).

Le client B (cB) effectue un traitement par lots pour ces 10 entités à peu près en même temps.

résultats possibles:

  • Toutes les 10 entités sont retournées
    • EG1 est lu avant TX1 commit, EG2 est lu après tx2 commettent
  • Aucune entité sont retournés
    • EG1 est lu après TX1 commit, EG2 est lu avant tx2 commettre
  • 5 entités de EG1 sont retournés
    • EG1 est lu avant TX1 commit, EG2 est lu avant tx2 commettre
  • 5 entités de EG2 sont retournés
    • EG1 est lu après TX1 commit, EG2 i s en lecture après tx2 engagement

Remarque, à aucun moment les résultats des opérations partielles sont revenus, puisque les transactions sont atomiques Cloud Datastore.