isriom /
Proyecto-III-File-System
Descripción del Problema TEC File System (TECFS) es un sistema de archivos basado en registros que se asemeja mucho a una base de datos NoSQL, el mismo se encuentra construido mediante una arquitectura distribuida llamada “Shared Disk Architecture”, la misma tendrá los siguientes componentes: ● Disk Nodes: Los nodos disco se encargan de almacenar los datos del cliente (bytes) y demás metadata relevante para el sistema (database). En cada nodo disco se instalará la aplicación llamada TECFS-Disk, la misma recibirá los siguientes parámetros de configuración mediante un archivo XML: ○ IP/Port: Para comunicación con el Controller Node. ○ Path: Dirección en el file system de la máquina donde se guardarán los datos. El TECFS-Disk debe asegurarse que el Disk Node tenga un tamaño fijo y que los bloques que conformen el Disk Node tengan todos el mismo tamaño (Ambos tamaños son definidos por cada grupo). Es decir, todos los Disk Nodes que pertenezcan al RAID deben proveer el mismo tamaño de almacenamiento y el tamaño de los bloques debe ser el mismo en todos los Disk Node. Cada bloque del Disk Node almacena la información en un esquema MediaStructure que debe almacenar la siguiente informacion: ● Libros. Archivos de texto (deben definir el tipo para poder almacenar los libros e implementar las funcionalidades indicadas). ● Metadata. Sirve para hacer búsquedas sobre la colección de libros. ● Controller Node: El controller node debe encargarse de la gestión del almacenamiento y lectura de los libros que forman parte del RAID. Debe: ○ Gestionar la distribución de los libros en el RAID, lo cual incluye almacenar libros en los discos que forman parte del RAID y brindar la información almacenada con respecto a los libros. Para el almacenamiento debe definir una estructura que permita identificar dónde están almacenados las partes de los libros dentro del RAID ○ Gestionar el cálculo de la paridad para permitir la tolerancia a fallos, lo cual incluye generar la información de paridad y utilizar esta para la carga de los libros aun cuando se pierda algún disco del RAID. ○ Obtener del RAID la información correspondiente de los libros.La comunicación entre TECFS-Disk, ControllerNode, ceROBOT y ceSEARCH debe hacerse mediante mensajes comprimidos utilizando el algoritmo de Huffman. Aplicación de prueba: Para demostrar que TCFS funciona es necesario implementar una aplicación para indexar carpetas con libros. Esta aplicación, llamada ceROBOT, recibe como parámetro una carpeta, abre todos los libros e inserta estos en el RAID, guardando cada libro en partes, en los diferentes nodos que forman el RAID. Existe otra aplicación llamada ceSEARCH que se encarga de buscar libros RAID, donde básicamente se deben ingresar palabras y debe retornar la lista libros que coincidan con las palabras ingresadas. Adicionalmente, deben desarrollar la funcionalidad que permita visualizar los libros que retorne el ceSEARCH. Esta reproducción debe hacer uso de la paridad para poder mostrar el libro, aunque alguno de los discos del RAID falle.