Livelli di coerenza dei dati
Le query Datastore possono fornire i risultati a uno dei due livelli di coerenza:
- Le query fortemente coerenti garantiscono i risultati più recenti, ma potrebbero richiedere più tempo per essere completate.
- Le query eventualmente coerenti� vengono eseguite in genere più rapidamente, ma a volte potrebbero restituire risultati obsoleti.
In una query con coerenza finale, anche gli indici utilizzati per raccogliere i risultati vengono accessi 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 transazionale.
Coerenza dei dati delle query Datastore
Le query restituiscono i risultati con diversi livelli di garanzia di coerenza, a seconda della natura della query:
- Le query predecessore (quelle all'interno di un gruppo di entità) sono fortemente coerenti per impostazione predefinita, ma possono invece essere rese coerenti in modo definitivo impostando il criterio per la lettura di Datastore (vedi sotto).
- Le query non discendenti sono sempre coerenti alla fine.
Il recupero di un'entità per chiave, chiamato anche "ricerca per chiave", è fortemente coerente.
Impostazione del criterio per la lettura di Datastore
Per migliorare il rendimento, puoi impostare i criteri di lettura di Datastore in modo che tutte le letture e le query siano coerenti nel tempo. L'API consente anche di impostare esplicitamente un criterio di elevata coerenza, ma questa impostazione non avrà alcun effetto pratico, poiché le query non discendenti sono sempre coerenti alla fine, indipendentemente dal criterio.
Puoi anche impostare la scadenza della chiamata di Datastore, ovvero il tempo massimo, in secondi, che l'applicazione attenderà prima che Datastore restituisca un risultato prima di interrompere l'operazione con un errore. La scadenza predefinita è di 60 secondi. Al momento non è possibile impostarla su un valore superiore, ma puoi ridurla 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, devi creare una configurazione del servizio Datastore (DatastoreServiceConfig
), utilizzando la classe helper nidificata DatastoreServiceConfig.Builder
e passandogli un'istanza della classe ReadPolicy
. Il seguente esempio mostra come impostare la criterio per la lettura, la scadenza della chiamata o entrambe:
Passaggi successivi
- Scopri come specificare cosa restituisce una query e controllare ulteriormente i risultati della query.
- Scopri le limitazioni comuni per le query su Datastore.
- Scopri di più sui cursori delle query, che consentono a un'applicazione di recuperare i risultati di una query in batch convenienti.
- Scopri la sintassi e la struttura di base delle query per Datastore.