Estoy tratando de convertir un gran directorio de imágenes de alta resolución (varios millones) en miniaturas usando Python. Tengo una tabla DynamoDB que almacena la ubicación de cada imagen en S3.Escribiendo una cola distribuida en DynamoDB de Amazon
En lugar de procesar todas estas imágenes en una instancia de EC2 (tomaría semanas) me gustaría escribir una aplicación distribuida utilizando varias instancias.
¿Qué técnicas podría usar para escribir una cola que permita a un nodo "verificar" una imagen de la base de datos, cambiar su tamaño y actualizar la base de datos con las nuevas dimensiones de las miniaturas generadas?
Específicamente, me preocupan la atomicidad y la concurrencia: ¿cómo puedo evitar que dos nodos examinen el mismo trabajo al mismo tiempo con DynamoDB?
DynamoDB es la herramienta incorrecta para el trabajo. El proceso es muy simple con SQS. 1.DynamoDB = LargeImageLocations> SQS; SQS = Proceso> n * EC2 = Ubicación de la actualización> DynamoDB –
La frase "SQS tiene un mecanismo integrado para evitar que varias instancias lean el mismo mensaje" es un poco engañosa. No hay garantía de "una sola vez". Veo que describes una solución de bloqueo con DynamoDB, pero mejor eliminas la declaración anterior. –
Tenga en cuenta que SQS no es compatible con HIPAA, por lo que lo que sugiere nstehr puede ser una solución muy viable si no se le permite almacenar cierta información en el mensaje SQS. –