项目名称: 支持可用性的分布式重复数据消除 问题陈述: 在这个项目中,我们的目标是减少云供应商用于存储和管理大量数据的存储空间、I/O磁盘操作等资源。此外,我们的目标是提供一个高度可用和可靠的环境。
想法/摘要: 使用云存储的用户数量与日俱增,因此存储的数据也呈指数级增长。但很多数据是重复的,因为两个或多个用户可能会上传相同的数据(例如,人们在社交网络应用程序上共享的文件/视频)。此外,为了使存储系统可靠且高度可用,云存储供应商为用户通过复制上传的相同数据创建冗余副本。这些巨大的数据必须存储在服务器组的分布式环境中。为了为上述问题提供有效的解决方案,我们提出了分布式环境中的重复数据消除策略,该策略将通过复制来保证可靠性,并通过重复检测来删除重复数据。我们提供了一个多功能、实用的主存储重复数据消除平台,既适用于复制,也适用于重复数据消除。为了实现这一点,我们开发了一种新的内存数据结构,它将有效地检测重复数据,并负责复制。
本项目中使用的数据结构: 链表和哈希作为内存中的数据结构,以及用于重复数据消除和复制的SHA算法。
什么是重复数据消除? 重复数据消除是指消除数据集中冗余数据的技术。在重复数据消除过程中,会删除相同数据的额外副本,只剩下一个副本可供存储。对数据进行分析,以确定重复的字节模式,以确保重复部分的单个实例被考虑并存储在服务器中。 为什么要进行重复数据消除?
- 它减少了给定文件集所需的存储量。
- 它在独特的存储环境中降低了成本并提高了空间效率。
- 它减少了I/O磁盘操作。
为什么要复制? 复制始终以可靠且高可用的方式提供服务,并且它应该能够在系统故障中生存下来,而不会丢失数据。执行的低开销。 重复数据消除类型和级别: 两种类型:
- 后处理
- 内联进程
两个层次:
- 文件级重复数据消除
- 块级重复数据消除
哈希算法: 在这个项目中,我们使用哈希算法来识别数据的“块”。哈希算法是将数据字符串转换为固定长度的数字字符串输出的函数。哈希算法的输出是不可逆的,即我们不能从哈希算法的输出生成输入字符串。哈希函数的输入长度可变,但生成的输出大小始终固定。 常用的哈希算法有-
- MD5
- SHA256
结论: 我们已经成功创建了一个内存数据结构,它能够检测重复数据,并且只存储重复数据的一个实例,从而改善了云供应商的存储空间、磁盘I/O操作等资源。此外,我们能够成功地为用户提供高可用性和更可靠的环境。因此,我们成功地实现了一个支持可用性的分布式重复数据消除系统。
今后的工作: 重复数据消除服务器瓶颈:
- 负载平衡——对于这个问题,我们必须创建多个主服务器来平衡网络流量。
- 内存哈希表——如果主服务器出现故障或重新启动,整个系统将崩溃。因此,为了解决这个问题,我们必须制作持久存储,它可以在每次更新后立即获取整个内存数据结构的快照。
- 支持ls、chmod、chown等文件系统命令。
项目的GitHub链接: https://github.com/andh001/project_deduplication
团队成员:
- Prashant Sonsale(7276176311,prashantsonsale96@gmail.com)
- 阿南德·法卡卡尔(8237516939,aanandf@gmail.com)
- 尼森特·阿格拉瓦尔(9921822904,尼森特)。agarwal050@gmail.com)
- 阿迪蒂亚·霍拉(9762977289,阿迪蒂亚。khowala51295@gmail.com)
注: 这个项目的想法是为了 ProGeek Cup 2.0——Geeksforgeks举办的项目竞赛。