Consistencia de lectura - Amazon DynamoDB

Consistencia de lectura

Amazon DynamoDB está disponible en varias regiones de AWS de todo el mundo. Cada región es independiente y se encuentra aislada de las demás regiones de AWS. Por ejemplo, si tenemos una tabla denominada People en la región us-east-2 y otra tabla denominada People en la región us-west-2, se consideran dos tablas completamente independientes. Para ver una lista de las regiones de AWS en las que DynamoDB está disponible, consulte Regiones y puntos de enlace de AWS en la Referencia general de Amazon Web Services.

Cada región de AWS consta de varias ubicaciones distintas denominadas Zonas de disponibilidad. Cada zona de disponibilidad está aislada de los errores que se produzcan en otras zonas de disponibilidad y proporciona conectividad de red de baja latencia económica con otras zonas de disponibilidad de la misma región. Esto permite la replicación rápida de los datos entre varias zonas de disponibilidad de una región.

Cuando la aplicación escribe datos en una tabla de DynamoDB y recibe una respuesta HTTP 200 (OK), la escritura se ha realizado y es duradera. Los datos presentan consistencia final en todas las ubicaciones de almacenamiento, normalmente en el plazo de un segundo o menos.

DynamoDB admite las lecturas coherentes finales y de consistencia alta.

Lecturas consistentes finales

Al leer datos de una tabla de DynamoDB, la respuesta podría no reflejar los resultados de una operación de escritura reciente. La respuesta podría incluir algunos datos anticuados. Si repite la solicitud de lectura tras un breve intervalo de tiempo, la respuesta debería devolver los datos más recientes.

Lecturas de consistencia alta

Cuando se solicita una lectura de consistencia alta, DynamoDB devuelve una respuesta con los datos más actualizados, de tal forma que refleja las actualizaciones de todas las operaciones de escritura anteriores que se han llevado a cabo correctamente. No obstante, esta coherencia conlleva algunas desventajas:

  • Una lectura de consistencia alta podría no estar disponible si se produce un retraso o una interrupción en la red. En este caso, DynamoDB podría devolver un error de servidor (HTTP 500).

  • Las lecturas con coherencia alta pueden tener mayor latencia que las lecturas con coherencia final.

  • Las lecturas altamente consistentes no se admiten para los índices secundarios globales.

  • Las lecturas con coherencia alta utilizan mayor capacidad de rendimiento que las lecturas con coherencia final. Para obtener más información, consulte Modo de capacidad de lectura/escritura

nota

DynamoDB utiliza las lecturas eventualmente consistentes a menos que especifique lo contrario. Las operaciones de lectura (como GetItem, Queryy Scan) proporcionan un parámetro ConsistentRead. Si establece este parámetro en true (verdadero), DynamoDB utiliza lecturas de consistencia alta durante la operación.