Coherencia de lectura de DynamoDB - Amazon DynamoDB

Coherencia de lectura de DynamoDB

Amazon DynamoDB lee datos de tablas, índices secundarios locales (LSI), índices secundarios globales (GSI) y flujos. Para obtener más información, consulte Componentes básicos de Amazon DynamoDB. Tanto las tablas como los LSI ofrecen dos opciones de coherencia de lectura: coherente posterior (predeterminada) y altamente coherente. Todas las lecturas de los GSI y las secuencias son coherentes posteriores.

Cuando la aplicación escribe datos en una tabla de DynamoDB y recibe una respuesta HTTP 200 (OK), significa que la escritura se ha completado correctamente y ha persistido de forma duradera. DynamoDB proporciona aislamiento de lectura confirmada y garantiza que las operaciones de lectura siempre devuelvan valores confirmados para un elemento. La lectura nunca presentará una vista al elemento procedente de una escritura que finalmente no se ha realizado correctamente. El aislamiento de lectura confirmada no impide las modificaciones del elemento inmediatamente después de la operación de lectura.

Lecturas coherentes posteriores

“Coherente posterior” es el modelo de coherencia de lectura predeterminado para todas las operaciones de lectura. Al emitir lecturas coherentes posteriores a una tabla de DynamoDB o a un índice, es posible que las respuestas no reflejen los resultados de una operación de escritura completada recientemente. Si repite la solicitud de lectura tras un breve intervalo de tiempo, la respuesta debería finalmente devolver el elemento más reciente. Se admiten lecturas coherentes posteriores en tablas, índices secundarios locales e índices secundarios globales. Tenga en cuenta que todas las lecturas de un flujo de DynamoDB también son coherentes posteriores.

Las lecturas coherentes posteriores cuestan la mitad que las lecturas altamente coherentes. Para obtener más información, consulte los precios de Amazon DynamoDB.

Lecturas altamente coherentes

Las operaciones de lectura como GetItem, Query y Scan proporcionan un parámetro ConsistentRead opcional. Si establece ConsistentRead a true, 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. Las lecturas altamente coherentes solo se admiten en tablas e índices secundarios locales. No se admiten lecturas altamente coherentes desde un índice secundario global o un flujo de DynamoDB.

Coherencia de lectura de las tablas globales

DynamoDB también admite tablas globales para la replicación multiactiva y de varias regiones. Una tabla global se compone de varias tablas de réplicas en diferentes regiones de AWS. Cualquier cambio efectuado en cualquier elemento de cualquier tabla réplica se replica en todas las demás réplicas de la misma tabla global, normalmente en un segundo, y son coherentes posteriores. Para obtener más información, consulte Coherencia y resolución de conflictos.