Livelli di coerenza dei dati
Le query del datastore possono restituire i risultati a due livelli di coerenza:
- Le query molto coerenti garantiscono i risultati più recenti, ma potrebbero richiedere più tempo per essere completate.
- Le query coerenti in modo definitivo in genere vengono eseguite più rapidamente, ma a volte possono restituire risultati non aggiornati.
In una query con coerenza finale, anche gli indici utilizzati per raccogliere i risultati vengono acceduti con coerenza finale. Di conseguenza, a volte queste query possono restituire entità che non corrispondono più ai criteri della query originale, mentre le query fortemente coerenti sono sempre coerenti a livello di transazioni.
Coerenza dei dati delle query di Datastore
Le query restituiscono i risultati con diversi livelli di garanzia di coerenza, a seconda della loro natura:
- Le query sugli antenati (quelle all'interno di un gruppo di entità) sono fortemente coerenti per impostazione predefinita, ma possono essere rese coerenti in modo definitivo impostando il criterio per la lettura del Datastore (vedi di seguito).
- Le query non relative agli antenati sono sempre coerenti in modo definitivo.
Il recupero di un'entità tramite chiave, chiamato anche "ricerca tramite chiave", è fortemente coerente.
Impostazione del criterio per la lettura di Datastore
Per migliorare le prestazioni, puoi impostare il criterio di lettura di Datastore in modo che tutte le letture e le query siano eventualmente coerenti. L'API consente anche di impostare esplicitamente un criterio di elevata coerenza, ma questa impostazione non avrà alcun effetto pratico, poiché le query non antecedenti sono sempre eventualmente coerenti indipendentemente dal criterio.
Puoi anche impostare la scadenza della chiamata di Datastore, ovvero il tempo massimo, in secondi, che l'applicazione attenderà che Datastore restituisca un risultato prima di abortire con un errore. Il termine per impostazione predefinita è di 60 secondi. Al momento non è possibile impostarlo su un valore superiore, ma puoi modificarlo verso il basso per assicurarti che una determinata operazione non vada a buon fine rapidamente (ad esempio, per restituire una risposta più rapida all'utente). Per impostare il criterio per la lettura di Datastore in Java, crea una configurazione del servizio Datastore (DatastoreServiceConfig
), utilizzando la classe di assistenza nidificata DatastoreServiceConfig.Builder
e passa un'istanza della classe ReadPolicy
. L'esempio seguente mostra come impostare il criterio per la lettura, la scadenza della chiamata o entrambi:
Passaggi successivi
- Scopri come specificare cosa deve restituire una query e come controllare ulteriormente i risultati delle query.
- Scopri le limitazioni comuni per le query su Datastore.
- Scopri di più sui cursori di query, che consentono a un'applicazione di recuperare i risultati di una query in comodi batch.
- Scopri la sintassi e la struttura di base delle query per Datastore.