Niveles de coherencia de datos
Las consultas de Datastore pueden ofrecer sus resultados en dos niveles de coherencia:
- Las consultas muy coherentes garantizan los resultados más recientes, pero pueden tardar más en completarse.
- Las consultas con coherencia final suelen ejecutarse más rápido, pero en ocasiones pueden devolver resultados obsoletos.
En una consulta de coherencia final, también se accede a los índices utilizados para recoger los resultados con coherencia final. Por lo tanto, es posible que estas consultas devuelvan entidades que ya no coincidan con los criterios de la consulta original, mientras que las consultas con coherencia fuerte siempre son coherentes a nivel de transacción.
Coherencia de los datos de consultas de Datastore
Las consultas devuelven sus resultados con diferentes niveles de garantía de coherencia, según la naturaleza de la consulta:
- Las consultas de ancestros (las que se encuentran en un grupo de entidades) son coherentes de forma estricta de forma predeterminada, pero se pueden hacer coherentes de forma eventual si se define la política de lectura de Datastore (consulta la información que se indica más abajo).
- Las consultas que no son de ancestros siempre son coherentes con el tiempo.
Obtener una entidad por clave, también llamada "búsqueda por clave", es una operación con coherencia fuerte.
Definir la política de lectura de Datastore
Para mejorar el rendimiento, puede definir la política de lectura de Datastore de forma que todas las lecturas y consultas sean coherentes en última instancia. La API también te permite definir explícitamente una política de coherencia fuerte, pero este ajuste no tendrá ningún efecto práctico, ya que las consultas que no sean de ancestros siempre tendrán una coherencia eventual, independientemente de la política.
También puedes definir el plazo de llamada de Datastore, que es el tiempo máximo, en segundos, que esperará la aplicación a que Datastore devuelva un resultado antes de abortar con un error. El plazo predeterminado es de 60 segundos. Actualmente, no se puede aumentar, pero sí reducir para que una operación determinada falle rápidamente (por ejemplo, para devolver una respuesta más rápida al usuario). Para definir la política de lectura de Datastore en Java, crea una configuración del servicio Datastore (DatastoreServiceConfig
) con la clase auxiliar anidada DatastoreServiceConfig.Builder
y pásale una instancia de la clase ReadPolicy
. En el siguiente ejemplo se muestra cómo definir la política de lectura, el plazo de la llamada o ambos:
Siguientes pasos
- Consulta cómo especificar lo que devuelve una consulta y controlar aún más los resultados de las consultas.
- Consulta las restricciones habituales de las consultas en Datastore.
- Consulta información sobre los cursores de consulta, que permiten a una aplicación obtener los resultados de una consulta en lotes.
- Consulta la sintaxis y la estructura básicas de las consultas de Datastore.