TEMA 04 Flashcards
A forma como os dados são lidos no DynamoDB ocorre por meio do modelo de Leitura de Consistência (Read Consistency). Esse modelo é subdividido em dois tipos, sendo eles:
Eventualmente Consistente(Eventually Consistent): nesse modo, a leitura dos dados não é realizada diretamente na tabela do DynamoDB, mas sim nos dados armazenados em cache. O DynamoDB mantém um cache para leitura dos dados, de modo que o dado lido nem sempre é o último dado gravado na tabela
- Fortemente Consistente(Strongly consistent): nesse modo, a leitura dos dados é realizada diretamente na tabela do DynamoDB, retornando sempre os dados mais atuais
O modelo eventualmente consistente é o padrão de todas as operações realizadas no DynamoDB, sendo muito útil quando a tabela em questão demanda muita leitura e pouca gravação.
Um dos recursos de configuração do DynamoDB está relacionado a capacidade de leitura e
gravação dos dados. Essa configuração permite determinar quantos itens podem ser lidos ou escritos por segundo, estabelecendo uma taxa de transferência sob demanda ou provisionada, para
que o banco consiga suprir o desempenho requerido pela aplicação de modo consistente e rápido.
Essa capacidade de leitura e gravação é especificada durante a criação de cada tabela.
A capacidade de leitura e gravação no DynamoDB é definida em:
A capacidade de leitura no DynamoDB é definida em RCU (Read Capacity Unit) e, a capacidade de
gravação é definida em WCU (Write Capacity Unit). De modo que cada unidade de capacidade
corresponde a uma requisição por segundo.
-1 RCU Fortemente Consistente equivale a uma leitura por segundo em uma tabela.
1 RCU Eventualmente Consistente equivale a duas leituras por segundo na tabela, pelo fato da leitura ser realizada no cache e não diretamente na tabela
Cada RCU corresponde a um bloco de 4Kb, ou seja, em cada leitura por segundo, é lido um bloco de 4Kb de dados
-1 WCU equivale a uma gravação em uma tabela.
Sendo assim, qual é a capacidade máxima de leitura e de gravação de dados da nossa
tabela Filmes, sabendo que ela possui uma capacidade provisionada de 5 WCUs:
E qual é a capacidade máxima de leitura de dados da tabela Filmes,
sabendo que ela possui uma capacidade provisionada de 5 RCUs:
E supondo que o registro apresentado tenha um tamanho de 1.2Kb, o
provisionamento necessário para ler e gravar esse registro é:
Tendo ainda como base o registro apresentado, e considerando seu tamanho em
1.2Kb, o provisionamento necessário para ler esse registro é:
Capacidade de Gravação (WCU) da tabela Filmes
1Kb (bloco de gravação) x 5 WCU = 5Kb/seg.
Capacidade de Leitura (RCU) da tabela Filmes Eventualmente consistente
4Kb (bloco de leitura) x 5 RCU 20Kb/seg.
5 RCU x 2 tabelas = 40Kb/seg.
Fortemente consistente
4Kb x 5 RCU = 20Kb/sea.
Provisionamento necessário para gravação do registro 1,2Kb/1Kb (bloco de gravação) = 1,2 RCU = 2 RCU
Provisionamento necessário para leitura do registro Eventualmente consistente 1,2Kb/4Kb = 0,3
0,3/2 tabelas = 0.15 RCU = 1 RCU
Fortemente consistente
1,2Kb/4Kb (bloco de leitura) = 0,3 RCU = 1 RCU
Como funciona a escalabilidade no DynamoDB?
O DynamoDB permite que a escalabilidade para cima seja realizada sempre que necessário.
Por
exemplo, havendo a necessidade de escalar nossa tabela Filmes de 5 para 7 RCUs e 7 WCUs, e
durante o mesmo dia, necessitamos realizar essa operação por mais 15 vezes, sempre elevando o
provisionamento, todas as operações serão permitidas.
Porém, a escalabilidade inversa, ou seja,
diminuir a capacidade de provisionamento, somente é permitida que seja realizada por até quatro
vezes ao dia.