View a markdown version of this page

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 en cualquier elemento de cualquier réplica de tabla se replicará en el resto de réplicas en la misma tabla global.

Las tablas globales admiten dos modos de coherencia. Con la coherencia final multirregional (MREC), el modo predeterminado, los cambios de los elementos se replican en las demás réplicas normalmente en un segundo y, finalmente, son coherentes en todas las regiones. Con una coherencia sólida multirregional (MRSC), los cambios de los elementos se replican de forma sincrónica en otra región antes de que se complete la escritura, y las operaciones de lectura altamente coherente en cualquier réplica siempre devuelven la versión más reciente de un elemento. Para obtener más información, consulte Modos de coherencia.