Recomendações para usar solicitações de gravação do Gremlin no Lambda - Amazon Neptune

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á.

Recomendações para usar solicitações de gravação do Gremlin no Lambda

Se a função do Lambda modificar dados de grafos, pense em adotar uma estratégia de recuo e repetição para lidar com as seguintes exceções:

  • ConcurrentModificationException: a semântica da transação do Neptune significa que as solicitações de gravação às vezes falham com uma ConcurrentModificationException. Nessas situações, experimente um mecanismo de repetição baseado em recuo exponencial.

  • ReadOnlyViolationException: como a topologia do cluster pode mudar a qualquer momento como resultado de eventos planejados ou não, as responsabilidades de gravação podem migrar de uma instância no cluster para outra. Se o código de função tentar enviar uma solicitação de gravação a uma instância que não seja mais a principal (de gravador), a solicitação falhará com uma ReadOnlyViolationException. Quando isso acontecer, feche a conexão existente, reconecte-se ao endpoint do cluster e repita a solicitação.

Além disso, se você usar uma estratégia de recuo e repetição para lidar com problemas de solicitação de gravação, considere implementar consultas idempotentes para solicitações de criação e atualização (por exemplo, usando fold().coalesce().unfold().