您的位置:首页 >新闻 >

从实验室: 改进数据存储代码

时间:2021-12-13 13:35:38 来源:

互联网渗透我们生活的方式导致了每天无法想象的大量电子数据被创建、存储和交换。不用说,这种数据可能会丢失或损坏,这是极端的偏执。然而,这种情况每天都在发生,尽管大多数数据是通过各种措施检索或 “修复” 的。

许多公司解决该问题的一种常见方法是将每一位数据的副本存储在三个不同的硬盘上。在大多数情况下,这有效地工作,但每天产生令人难以置信的信息量,存储此数据所需的物理基础设施使三重应用成为不可行的选择。

纠错码 (例如50年前开发的Reed-Solomon码) 提供了有效的编码数据的方法,该方法可以在部分丢失的情况下进行恢复。任何这样的纠错代码的关键是将数据文件分割成几个片段 -- 不同的方法在片段数量上有所不同 -- 并将它们存储在几个磁盘上。它还涉及创建其他 “片段” 并在其中存储原始文件中的更多 “信息”。合在一起,生成的一组片段可用于在丢失一些片段的情况下重新创建整个数据。

传统上,一个文件将被分成六个片段并进行三联以避免数据丢失,这意味着存储18个片段。Reed-Solomon (RS) 纠错代码的示例将保留六个片段,创建三个新片段并仅存储九个片段。

最近,在所涉及数据的庞大规模的推动下,又出现了两个担忧: 需要联系以重新创建丢失的片段的剩余未损坏磁盘的数量以及必须从这些磁盘下载的数据量。这些产生了两类新的纠错代码,它们在这些方面改进了RS代码,被称为再生和本地可修复代码。在我们的实验室中创建的重新生成代码的示例将获取一个数据文件,将其拆分为9个片段,并创建11个额外的片段,总共20个片段。然后,这20个片段将存储在五个磁盘上,四个片段存储到一个磁盘上,以便可以通过仅下载四个片段来重新创建失败的磁盘。

本地可恢复的代码将数据文件分成12个片段,创建四个额外的片段,这样可以通过与其他六个片段的特定集合对话来修复原始数据片段。

我们在代码和信号设计实验室为这两类代码的开发做出了重大贡献。然后我们问自己,是否有可能设计一个单一的代码,与RS代码相比,既可以减少为磁盘修复下载的数据量,也可以减少接触的磁盘数量?这导致我们设计出第三类代码来精确地做到这一点。

作者: p Vijay Kumar & Birenjith SasidharanCodes and信号设计实验室,印度科学研究所,班加罗尔

为了考虑将您的研究纳入本专栏,请写信给[email protected]的高级编辑Amitabh Sinha

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如有侵权行为,请第一时间联系我们修改或删除,多谢。