Idea de proyecto | Deduplicación de datos distribuidos consciente de la disponibilidad

Título del proyecto: Deduplicación de datos distribuidos consciente de la disponibilidad
Declaración del problema:
En este proyecto, nuestro objetivo es reducir los recursos como el espacio de almacenamiento, las operaciones de disco de E/S de los proveedores de la nube que se utilizan para almacenar y administrar un gran volumen de datos. Además, nuestro objetivo es proporcionar un entorno que sea altamente disponible y confiable.

Idea/Resumen:
La cantidad de usuarios que utilizan el almacenamiento en la nube aumenta día a día y, por lo tanto, los datos almacenados también aumentan a un ritmo exponencial. Pero muchos datos están duplicados ya que dos o más usuarios pueden cargar los mismos datos (por ejemplo, archivos/videos compartidos por personas en aplicaciones de redes sociales). Además, para que el sistema de almacenamiento sea confiable y de alta disponibilidad, los proveedores de almacenamiento en la nube crean copias redundantes de los mismos datos cargados por los usuarios a través de la replicación. Esta gran cantidad de datos debe almacenarse en el entorno distribuido del grupo de servidores. Para brindar una solución eficiente a los problemas anteriores, estamos proponiendo una estrategia de deduplicación en el entorno distribuido que se ocupará de la confiabilidad a través de la replicación, así como de la eliminación de datos duplicados a través de la detección de duplicados. Presentamos una plataforma de deduplicación de almacenamiento primario versátil y práctica adecuada tanto para replicaciones como para deduplicación. Para lograrlo, hemos desarrollado una nueva estructura de datos en memoria que detectará de manera eficiente los datos duplicados y también se encargará de la replicación.

Estructura de datos utilizada en este proyecto:
lista vinculada y hashing como nuestra estructura de datos en memoria y algoritmo SHA para deduplicación y replicación.

¿Qué es la deduplicación de datos?
La deduplicación de datos se refiere a una técnica para eliminar datos redundantes en un conjunto de datos. En el proceso de deduplicación, se eliminan copias adicionales de los mismos datos, dejando solo una copia para almacenar. Los datos se analizan para identificar patrones de bytes duplicados para garantizar que la instancia única de la parte duplicada se considere y almacene en el servidor.
¿Por qué la deduplicación de datos?

  • Reduce la cantidad de almacenamiento necesario para el conjunto de archivos dado.
  • Reduce costos y aumenta la eficiencia del espacio en el entorno de almacenamiento distinto.
  • Reduce la operación del disco de E/S.

¿Por qué replicación?
La replicación siempre brinda los servicios de manera confiable y altamente disponible y debería poder sobrevivir en caso de falla del sistema sin perder datos. La baja sobrecarga de ejecución.
Tipos y niveles de deduplicación:
dos tipos:

  • Proceso después de
  • Proceso en línea

Dos niveles:

  • Deduplicación a nivel de archivo
  • Deduplicación a nivel de bloque

Algoritmo hash:
en este proyecto, estamos utilizando el algoritmo hash para identificar «trozos» de datos. Un algoritmo hash es una función que convierte una string de datos en una salida de string numérica de longitud fija. La salida de un algoritmo hash es irreversible, es decir, no podemos generar la string de entrada a partir de la salida del algoritmo hash. La entrada a una función hash es de longitud variable pero la salida generada siempre es de tamaño fijo.
Los algoritmos hash de uso común son:

  • MD5
  • SHA256

Conclusión:
hemos creado con éxito una estructura de datos EN MEMORIA que puede detectar datos duplicados y almacenar solo una instancia de los datos duplicados, mejorando así los recursos como el espacio de almacenamiento, la operación de E/S de disco de los proveedores de la nube. Además, podemos proporcionar con éxito un entorno de alta disponibilidad y más confiable para el usuario. Por lo tanto, hemos implementado con éxito un sistema de deduplicación de datos distribuidos consciente de la disponibilidad.

Trabajo futuro:
cuellos de botella del servidor de eliminación de duplicados:

  • Equilibrio de carga: para este problema, tenemos que crear varios servidores principales para equilibrar el tráfico de la red.
  • Tabla hash en memoria: si el servidor principal falla o se reinicia, todo el sistema se bloqueará. Por lo tanto, para resolver este problema, debemos crear un almacenamiento persistente que pueda tomar una instantánea de toda la estructura de datos en memoria inmediatamente después de cada actualización.
  • Compatibilidad con comandos del sistema de archivos como ls, chmod, chown.

Enlace GitHub del proyecto: https://github.com/andh001/project_deduplication

Miembros del equipo:

  • Prashant Sonsale (7276176311, prashantsonsale96@gmail.com)
  • Anand Fakatkar (8237516939, aanandf@gmail.com)
  • Nishant Agrawal (9921822904, nishant.agarwal050@gmail.com)
  • Aditya Khowla (9762977289, aditya.khowala51295@gmail.com)

Nota: esta idea de proyecto se contribuye para ProGeek Cup 2.0: una competencia de proyectos de GeeksforGeeks.

Publicación traducida automáticamente

Artículo escrito por Prashant_Sonsale y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *