Capacidade de expansão e capacidade adaptável do DynamoDB
Para minimizar o controle de utilização decorrente de exceções de throughput, o DynamoDB usa a capacidade de expansão para lidar com picos de uso. O DynamoDB usa a capacidade adaptável para ajudar a acomodar padrões de acesso desiguais.
Capacidade de expansão
O DynamoDB fornece alguma flexibilidade para o provisionamento de throughput com capacidade de expansão. Quando você não está usando totalmente o throughput disponível, o DynamoDB reserva uma parte dessa capacidade não utilizada para expansões posteriores do throughput com o objetivo de lidar com os picos de uso. Com a capacidade de expansão, as solicitações de leitura ou gravação inesperadas podem ter êxito onde, de outra forma, seriam limitadas.
O DynamoDB retém até cinco minutos (trezentos segundos) de capacidade de leitura e de gravação não utilizada. Durante uma expansão ocasional de atividades de leitura e de gravação, essas unidades de capacidade extra podem ser consumidas muito rapidamente, ainda mais depressa do que a capacidade de throughput provisionado por segundo que você definiu para a tabela.
O DynamoDB também pode consumir capacidade de intermitência para manutenção em segundo plano e para outras tarefas sem aviso prévio.
Note que esses detalhes da capacidade de intermitência podem mudar no futuro.
Capacidade adaptável
O DynamoDB distribui automaticamente os dados entre as partições, armazenando-os em vários servidores na Nuvem AWS. Nem sempre é possível distribuir a atividade de leitura e de gravação uniformemente o tempo todo. Quando o acesso aos dados é desequilibrado, uma partição "dinâmica" pode receber um volume mais alto de tráfego de leitura e gravação em comparação com outras partições. Como as operações de leitura e de gravação em uma partição são gerenciadas de forma independente, haverá controle de utilização se uma única partição receber mais de três mil operações de leitura ou mais de mil operações de gravação. A capacidade adaptável funciona por meio do aumento automático da capacidade de throughput para as partições que recebem mais tráfego.
Para acomodar melhor padrões desiguais de acesso, a capacidade adaptável do DynamoDB permite que a aplicação continue a ler e gravar em partições dinâmicas sem ser limitado, desde que o tráfego não exceda a capacidade total provisionada da tabela ou a capacidade máxima da partição. A capacidade adaptável funciona por meio do aumento automático e instantâneo da capacidade de throughput para as partições que recebem mais tráfego.
O diagrama a seguir mostra como a capacidade adaptável funciona. A tabela de exemplo é provisionada com 400 WCUs compartilhadas uniformemente em quatro partições, permitindo que cada partição comporte até 100 WCUs por segundo. As partições 1, 2 e 3 recebem tráfego de gravação de 50 WCU/s. Partição 4 recebe 150 WCU/s. Essa partição dinâmica poderá aceitar tráfego de gravação enquanto tiver capacidade não utilizada, mas em algum momento limitará o tráfego que exceder 100 WCU/s.
A capacidade adaptável do DynamoDB responde por meio do aumento da capacidade da partição 4 para que ela comporte uma workload maior de 150 WCUs/s sem controle de utilização.
A capacidade adaptável é habilitada automaticamente para todas as tabelas do DynamoDB sem custo adicional. Não é necessário habilitá-la ou desabilitá-la explicitamente.
Isolar itens acessados com frequência
Se o aplicativo direcionar tráfego desproporcionalmente alto para um ou mais itens, a capacidade adaptável reequilibrará as partições de modo que os itens acessados com frequência não residam na mesma partição. Esse isolamento dos itens acessados com frequência reduz a probabilidade da limitação de solicitação devido à workload exceder a cota de throughput em uma única partição. Você também pode dividir um conjunto de itens em segmentos por chave de classificação, desde que esse conjunto não seja um tráfego rastreado por uma diminuição ou um aumento monotônico da chave de classificação.
Se a aplicação direciona alto tráfego constantemente a um único item, a capacidade adaptável poderá reequilibrar os dados de modo que uma partição contenha somente esse único item acessado com frequência. Nesse caso, o DynamoDB pode entregar um throughput de no máximo de 3 mil RCUs da partição ou mil WCUs para a chave primária desse único item. A capacidade adaptável não dividirá as coleções de itens em várias partições da tabela quando houver um índice secundário local na tabela.