📜  项目理念 |可用性感知分布式重复数据删除

📅  最后修改于: 2022-05-13 01:57:41.636000             🧑  作者: Mango

项目理念 |可用性感知分布式重复数据删除

项目名称:可用性感知分布式重复数据删除
问题陈述:
在这个项目中,我们的目标是减少云供应商用于存储和管理大量数据的存储空间、I/O磁盘操作等资源。此外,我们的目标是提供一个高度可用和可靠的环境。

想法/摘要:
使用云存储的用户数量每天都在增加,因此存储的数据也在呈指数级增长。但是很多数据是重复的,因为两个或多个用户可能会上传相同的数据(例如社交网络应用程序上人们共享的文件/视频)。同样为了使存储系统可靠和高可用,云存储供应商通过复制创建用户上传的相同数据的冗余副本。这些庞大的数据必须存储在服务器组的分布式环境中。为了对上述问题提供有效的解决方案,我们提出了分布式环境中的重复数据删除策略,该策略将通过复制来处理可靠性以及通过重复检测来删除重复数据。我们提出了一个通用且实用的主存储重复数据删除平台,适用于复制和重复数据删除。为了实现它,我们开发了一种新的内存数据结构,它可以有效地检测重复数据并负责复制。

本项目中使用的数据结构:
链表和散列作为我们的内存数据结构和用于重复数据删除和复制的 SHA 算法。

什么是重复数据删除?
重复数据删除是指一种消除数据集中冗余数据的技术。在重复数据删除的过程中,相同数据的多余副本被删除,只留下一个副本存储。分析数据以识别重复的字节模式,以确保考虑重复部分的单个实例并将其存储在服务器中。
为什么要进行重复数据删除?

  • 它减少了给定文件集所需的存储量。
  • 它在不同的存储环境中降低了成本并提高了空间效率。
  • 它减少了 I/O 磁盘操作。

为什么要复制?
复制始终以可靠且高度可用的方式提供服务,并且它应该能够在系统故障中生存而不会丢失数据。执行开销低。
重复数据删除类型和级别:
两种类型:

  • 后期过程
  • 内联工艺

两个级别:

  • 文件级重复数据删除
  • 块级重复数据删除

哈希算法:
在这个项目中,我们使用哈希算法来识别数据的“块”。哈希算法是将数据字符串转换为固定长度的数字字符串输出的函数。哈希算法的输出是不可逆的,即我们不能从哈希算法的输出中生成输入字符串。散列函数的输入是可变长度的,但生成的输出总是固定大小的。
常用的哈希算法是-

  • MD5
  • SHA256

结论:
我们成功创建了一个 IN-MEMORY 数据结构,它能够检测重复数据并仅存储一个重复数据实例,从而改善云供应商的存储空间、磁盘 I/O 操作等资源。此外,我们能够成功地为用户提供高度可用且更可靠的环境。因此,我们成功地实现了一个可用性感知分布式重复数据删除系统。

未来的工作:
去重服务器瓶颈:

  • 负载平衡 - 对于这个问题,我们必须创建多个主服务器来平衡网络流量。
  • In-Memory Hash Table – 如果主服务器出现故障或重新启动,则整个系统将崩溃。因此,为了解决这个问题,我们必须制作持久存储,它可以在每次更新后立即拍摄整个内存数据结构的快照。
  • 支持文件系统命令,如 ls、chmod、chown。

项目GitHub链接: https://github.com/andh001/project_deduplication

团队成员:

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

注意:这个项目想法是为 ProGeek Cup 2.0- GeeksforGeeks 的项目竞赛贡献的。