Entendendo a política de repetição com o motorista na Amazon QLDB - Banco de dados Amazon Quantum Ledger (AmazonQLDB)

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Entendendo a política de repetição com o motorista na Amazon QLDB

Importante

Aviso de fim do suporte: os clientes existentes poderão usar a Amazon QLDB até o final do suporte em 31/07/2025. Para obter mais detalhes, consulte Migrar um Amazon QLDB Ledger para o Amazon Aurora Postgre. SQL

O QLDB motorista da Amazon usa uma política de repetição para lidar com exceções transitórias ao tentar novamente de forma transparente uma transação com falha. Essas exceções, como CapacityExceededException e RateExceededException, normalmente se corrigem após um período de tempo. Se a transação que falhou com a exceção for repetida após um atraso adequado, é provável que seja bem-sucedida. Isso ajuda a melhorar a estabilidade do aplicativo que usaQLDB.

Tipos de erros que podem ser tentados novamente

O driver repete automaticamente uma transação se e somente se alguma das seguintes exceções ocorrer durante uma operação dentro dessa transação:

  • CapacityExceededException— Retornado quando a solicitação excede a capacidade de processamento do livro contábil.

  • InvalidSessionException— Retornado quando uma sessão não é mais válida ou se a sessão não existe.

  • LimitExceededException— Retornado se um limite de recursos, como o número de sessões ativas, for excedido.

  • OccConflictException— Retornado quando uma transação não pode ser gravada no diário devido a uma falha na fase de verificação do controle otimista de simultaneidade ()OCC.

  • RateExceededException— Retornado quando a taxa de solicitações excede a taxa de transferência permitida.

Política padrão de tentativas

A política de repetição consiste em uma condição de nova tentativa e uma estratégia de recuo. A condição de nova tentativa define quando uma transação deve ser repetida, enquanto a estratégia de recuo define quanto tempo esperar antes de repetir a transação.

Ao criar uma instância do driver, a política de repetição padrão especifica a repetição até quatro vezes e o uso de uma estratégia de recuo exponencial. A estratégia de recuo exponencial usa um atraso mínimo de 10 milissegundos e um atraso máximo de 5000 milissegundos, com jitter igual. Se a transação não puder ser confirmada com sucesso dentro da política de repetição, recomendamos tentar a transação em outro momento.

O conceito por detrás do recuo exponencial é usar esperas progressivamente mais longas entre as novas tentativas para respostas de erro consecutivas. Para obter mais informações, consulte a postagem do AWS blog Exponential Backoff and Jitter.