Reed Solomon Erasure Encoding and Replication Factor



我正在研究分布式文件系统架构和设计。我遇到的相当多的DFS通常有以下架构:

  • namenode或元数据服务器,用于管理数据块/块的位置以及文件系统的层次结构。
  • 用于存储属于一个或多个逻辑文件的数据块或数据块的数据节点或数据服务器
  • 与namenode对话以查找适当的数据节点进行读写的客户端。

许多这样的系统有两个主要的变量,一个块大小和一个复制因子。

我的问题是:

复制因子和前向纠错像里德所罗门Erasure编码兼容这里吗?使用这两种技术来确保数据的高可用性有意义吗?或者使用其中一个就足够了(孰轻孰重?)

是否可以混合和匹配普通的旧复制和擦除代码取决于所讨论的分布式文件系统在其特性集中提供了什么,但它们通常是互斥的。

复制是简单的,因为文件/对象作为一个整体被复制到'n'(复制因子)个数据节点。写入到所有节点。读取可以从任何一个节点单独提供,因为它们托管整个文件。因此,您可以在多个节点之间分配不同的读取。不涉及中级数学,而且主要是I/O限制。此外,对于给定的文件大小,磁盘使用量更多(因为有'n'个副本)。

擦除码是复杂的,因为在写过程中,文件/对象的部分被编码并分布在'n'个数据节点中。读取需要从多个节点获取数据,解码并重建数据。因此涉及到数学,并且可能成为CPU限制。与复制相比,磁盘占用更少,但容错能力也更强。

最新更新