Recomendaciones para utilizar las solicitudes de escritura de Gremlin en Lambda - Amazon Neptune

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Recomendaciones para utilizar las solicitudes de escritura de Gremlin en Lambda

Si la función de Lambda modifica los datos del gráfico, plantéese adoptar una estrategia de retroceso y reintento para gestionar las siguientes excepciones:

  • ConcurrentModificationException: la semántica de las transacciones de Neptune significa que, en ocasiones, se produce un error en las solicitudes de escritura con una ConcurrentModificationException. En estas situaciones, pruebe un mecanismo de reintento exponencial basado en el retroceso.

  • ReadOnlyViolationException: dado que la topología del clúster puede cambiar en cualquier momento como resultado de eventos planificados o imprevistos, las responsabilidades de escritura pueden migrar de una instancia del clúster a otra. Si el código de función intenta enviar una solicitud de escritura a una instancia que ya no es la instancia principal (escritor), se produce un error en la solicitud con una ReadOnlyViolationException. Cuando esto suceda, cierre la conexión existente, vuelva a conectarse al punto de conexión del clúster y, a continuación, vuelva a intentar la solicitud.

Además, si utiliza una estrategia de retroceso y reintento para solucionar los problemas de las solicitudes de escritura, plantéese implementar consultas idempotentes para las solicitudes de creación y actualización. Por ejemplo, mediante fold().coalesce().unfold().