Estoy trabajando en un proyecto de administración de archivos en línea. Estamos almacenando referencias en la base de datos (servidor sql) y archivos de datos en el sistema de archivos.¿Cómo llevar la coordinación entre el sistema de archivos y la base de datos?
Estamos enfrentando un problema de coordinación entre el sistema de archivos y la base de datos mientras cargamos un archivo y también en el caso de eliminar un archivo. Primero creamos una referencia en la base de datos o almacenamos archivos en el sistema de archivos.
El problema es que si primero crea una referencia en la base de datos y luego almacena un archivo en el sistema de archivos, pero mientras almacena archivos en el sistema de archivos aparece cualquier tipo de error, la referencia para ese archivo se crea en base de datos pero no existen datos de archivos en el sistema de archivos.
Por favor, dame alguna solución sobre cómo manejar esa situación. Estoy muy necesitado de eso.
¿Este caso ocurre también mientras borramos un archivo?
Un sistema de archivos se puede considerar como un tipo particular de base de datos, aunque uno que no utiliza SQL, y está particularmente ajustado para almacenar blobs. Entonces, en cierto sentido, se pregunta cómo garantizar la atomicidad en dos bases de datos (el sistema de archivos y su RDBMS). ¿Es posible diseñar su sistema para que solo use uno u otro? – Will
no, estamos utilizando RDBMS para almacenar referencias y el sistema de archivos para almacenar archivos de datos/archivos del cuerpo? –
La respuesta obvia es hacer las cosas al revés: las bases de datos tienden a ser mucho menos propensas a fallar una operación que los sistemas de archivos. –