View a markdown version of this page

Consistência de leitura do DynamoDB - Amazon DynamoDB

Consistência de leitura do DynamoDB

O Amazon DynamoDB lê dados de tabelas, índices secundários locais (LSIs), índices secundários globais (GSIs) e fluxos. Para obter mais informações, consulte Componentes principais do Amazon DynamoDB. Tanto as tabelas quanto os LSIs oferecem duas opções de consistência de leitura: leituras finais consistentes (padrão) e leituras altamente consistentes. Todas as leituras de GSIs e fluxos são finais consistentes.

Quando sua aplicação grava dados em uma tabela do DynamoDB e recebe uma resposta HTTP 200 (OK), isso significa que a gravação foi concluída com êxito e persistida de forma durável. O DynamoDB oferece isolamento confirmado para leitura e garante que as operações de leitura sempre retornem valores confirmados de um item. A leitura nunca apresentará uma visão do item a partir de uma gravação que, em última análise, não foi concluída. Isolamento confirmado para leitura não previne modificações do item imediatamente após operação de leitura.

Leituras finais consistentes

O tipo final consistente é o modelo de consistência padrão para todas as operações de leitura. Ao emitir leituras finais consistentes para uma tabela ou um índice do DynamoDB, as respostas podem não refletir os resultados de uma operação de gravação recém-concluída. Se você repetir sua solicitação de leitura após um curto período, em algum momento a resposta deverá retornar o item mais recente. As leituras finais consistentes são compatíveis com tabelas, índices secundários locais e índices secundários globais. Observe também que todas as leituras de um fluxo do DynamoDB também são do tipo final consistente.

As leituras finais consistentes custam metade do preço das leituras altamente consistentes. Para obter mais informações, consulte a Definição de preço do Amazon DynamoDB.

Leituras altamente consistentes

As operações de leitura, como GetItem, Query e Scan, fornecem um parâmetro ConsistentRead opcional. Se você definir ConsistentRead como true, o DynamoDB retornará uma resposta com os dados mais atualizados, refletindo as atualizações de todas as operações de gravação anteriores que tiveram êxito. Leituras altamente consistentes só são compatíveis com tabelas e índices secundários locais. Não há suporte para leituras altamente consistentes de um índice secundário global ou de um fluxo do DynamoDB.

Consistência de leitura de tabelas globais

O DynamoDB também oferece suporte a tabelas globais para replicação multiativa e multirregional. Uma tabela global é composta por várias tabelas de réplica em diferentes regiões da AWS. Qualquer alteração feita em qualquer item de qualquer tabela de réplica é replicada para todas as demais réplicas da mesma tabela global.

As tabelas globais são compatíveis com dois modos de consistência. Com a consistência eventual multirregional (MREC), o modo padrão, as alterações nos itens são replicadas para as demais réplicas, normalmente em até um segundo, e tornam-se eventualmente consistentes entre as regiões. Com a consistência forte multirregional (MRSC), as alterações nos itens são replicadas de forma síncrona para outra região antes que a operação de gravação seja concluída, e as operações de leitura altamente consistente em qualquer réplica sempre retornam a versão mais recente de um item. Para obter mais informações, consulte Modos de consistência.