Tengo un sistema de software que realiza OCR en varias máquinas simultáneamente. El sistema actual funciona de la siguiente manera:Directrices de diseño Computación distribuida
- Todos los documentos que deben ocultarse se insertan en una tabla en db.
- Cada máquina de cliente del cliente agrupa esa tabla y cada vez que se encuentran datos para el tiempo, bloquea la tabla y selecciona n no. de archivos por ocr. Locking se usa para la atomicidad.
- Después de que se oculta cada documento, el estado del documento se actualiza como completo.
Sé que este es un error grave al establecer una base de datos como lugar de sincronización. Funciona bien, pero a veces puedo ver el bloqueo muerto en la base de datos ...
Así que mi pregunta es, ¿cuál es la mejor manera de diseñar dicho sistema, quiero base de datos como un dispositivo de almacenamiento, pero no un lugar de sincronización. Quiero escuchar tus pensamientos
Gracias por su pronta respuesta, en realidad he hecho algo similar que usted mencionó en su primer párrafo. Pero no estoy satisfecho con esta solución. – crypted
@ Int3: ¿Por qué no? No sugiero mantener la transacción abierta mientras procesamos los datos, solo mientras lo marcamos en progreso. –