技术新讯 > 电子电路装置的制造及其应用技术 > 一种基于日志的高可用纠删码更新方法  >  正文

一种基于日志的高可用纠删码更新方法

  • 国知局
  • 2024-11-21 11:33:25

本发明涉及计算机,具体涉及一种基于日志的高可用纠删码更新方法。

背景技术:

1、纠删码在提供数据容错能力的同时有很低的存储开销,广泛应用在存储系统中。经典的里德-所罗门编码(reed-solomon codes,rs编码)将文件分成k个数据块,将编码矩阵与k个数据块相乘计算出m个校验块,能容任意m错。纠删码在数据块更新时需要频繁更新校验块,产生大量的网络传输与i/o操作,更新开销巨大。常规的更新技术包括两种,重构写和读改写。重构写在更新时需要读取并传输所有旧数据块,网络流量、i/o开销巨大;读改写需要频繁读取旧校验块并写入,i/o开销也非常高。已有的日志技术,例如校验日志更新(parity logging)和全日志更新(full logging)技术,在读改写的基础上进行优化,将更新信息追加在日志中,多次更新后再将日志中的更新信息合并以更新校验块,降低了频繁读取旧校验块的i/o开销。具体流程如下:

2、数据节点收到新数据块后读取相关旧数据块,使用新数据块和旧数据块计算出数据块增量,进而计算出校验块增量。parity logging和full logging都需要把校验块增量发送给校验节点,校验节点收到校验块增量后将其保存在日志中,再返回响应成功的消息。待所有校验节点响应成功后,parity logging会在相应数据节点上使用新数据块覆盖写旧数据块,full logging则将新数据块保存在对应数据节点的日志中,同时保留旧数据块。

3、parity logging和full logging都需要所有校验节点响应成功才能完成更新流程,因此存在一些问题:当一些校验节点响应过慢或出现故障时,纠删码更新需要等待所有校验节点响应成功,会受长尾延迟影响导致更新时间过长;或者因一些校验节点出现故障导致更新无法完成,面临更新时间过久、可用性较低的问题。

技术实现思路

1、为解决上述技术问题,本发明提供一种基于日志的高可用纠删码更新方法,针对rs编码,基于日志技术与提出的新的校验块增量计算方式,在更新时只需一部分校验节点响应成功即可完成更新;在部分校验节点响应过慢或出现故障时,仍能快速、有效完成纠删码更新,加快更新速度、提高更新可用性。

2、为解决上述技术问题,本发明采用如下技术方案:

3、一种基于日志的高可用纠删码更新方法,基于日志技术,在里德-所罗门编码更新时,仅需部分校验节点响应成功即可完成更新,具体包括以下步骤:

4、步骤一,将更新信息写入日志:数据块每次更新时,设置更新期望时间t′,更新过程中最小容错能力m′;

5、当条带中单个数据块更新时,判断数据节点日志和校验节点日志中是否存在多个数据块同时更新的信息,如是,则将数据节点日志和校验节点日志中的更新信息合并,再执行过程a;如否,则直接执行过程a;其中,过程a为:使用parity logging技术,将计算出的校验块增量发送给校验节点并保存在对应校验节点的日志中,如果在时间t′内有m′个校验节点响应成功,则使用新数据块覆盖写旧数据块,条带更新次数加1;

6、当条带中多个数据块更新时,使用full logging技术,将计算出的校验块增量发送给校验节点并保存在对应校验节点的日志中,如果在时间t′内有m′个校验节点响应成功,则将新数据块保存到对应数据节点的日志中,条带更新次数加1;

7、步骤二,判断是否合并日志:重复运行步骤一,并判断条带更新次数是否达到阈值τ,如是,则将数据节点日志和校验节点日志中的更新信息合并,并结束更新流程;如否,则直接结束更新流程。

8、进一步地,步骤一中,当条带中单个数据块更新时,或者当条带中多个数据块更新时,若时间t′内响应成功的校验节点不足m′个,则使用重构写将所有新校验块写到先前并非数据节点或者校验节点的节点中,作为新的校验节点,并使用新数据块覆盖写旧数据块,重置条带更新次数为0,同时清除数据节点的日志中关于所述条带的更新信息,并结束更新流程。

9、进一步地,步骤一中,对于条带中单个数据块更新的情况,未成功响应的校验节点的校验块增量的计算方式如下:

10、使用m′个响应成功的校验节点保存的校验块增量计算出其余校验节点未保存的校验块增量:

11、设第r次更新时将条带中的单个数据块更新为校验节点的日志中保存的m′个校验块增量为未保存的校验块增量为未保存的校验块增量能够使用任意一个已经保存的校验块增量计算得到,其中,使用对未保存的校验块增量进行计算时的计算方式为:

12、

13、其中,表示生成时的编码系数。

14、进一步地,步骤一中,对于条带中多个数据块更新的情况,未成功响应的校验节点的校验块增量的计算方式如下:

15、新数据块和一部分校验块增量分别保存在数据节点日志和校验节点日志中,使用数据节点上的新数据块、旧数据块和已经保存的校验块增量计算未保存的校验块增量:

16、数据节点保存了每次更新前的旧数据块与更新后的新数据块,能够计算得到数据块增量,设第r次更新的u个数据块增量为校验节点日志保存的m′个校验块增量为若计算未保存的校验块增量时数据节点未出故障,则从数据节点上计算得到u个数据块增量,进而计算出未保存的校验块增量;若数据节点出现故障,且节点故障不超过m′个,则剩余可得到的数据块增量和校验块增量总个数不少于u个,取其中的u个增量使用u个增量计算出所有数据块增量即

17、

18、进而计算出未保存的校验块增量,即

19、

20、则未保存的校验块增量计算方式为:

21、

22、表示生成时的编码系数。

23、进一步地,步骤一和步骤二中,所述将数据节点日志和校验节点日志中的更新信息合并,具体包括:

24、对于里德-所罗门编码的每次更新,使用数据节点上的新数据块、旧数据块和已经保存的校验块增量计算未保存的校验块增量,再将旧校验块读出,与所有相关的校验块增量合并得到新校验块;

25、之后在每个校验节点上使用新校验块覆盖写旧校验块,如果数据节点的日志中存在最新数据块,则使用最新数据块覆盖写旧数据块;

26、最后重置条带更新次数为0,清除日志中的相关更新信息。

27、与现有技术相比,本发明的有益技术效果是:

28、与parity logging和full logging相比,本发明在纠删码更新时只需要一部分校验节点响应成功即可更新成功,降低了更新延迟、加快了更新速度、提高了更新可用性。

29、新的校验块增量计算方式确保更新机制在更新过程中条带能容任意m′错,保证了条带的容错能力。此外,使用重构写兜底能在过多校验节点响应过慢或出现故障时确保更新成功,并提高条带的容错能力。

技术特征:

1.一种基于日志的高可用纠删码更新方法,其特征在于,基于日志技术,在里德-所罗门编码更新时,仅需部分校验节点响应成功即可完成更新,具体包括以下步骤:

2.根据权利要求1所述的基于日志的高可用纠删码更新方法,其特征在于,步骤一中,当条带中单个数据块更新时,或者当条带中多个数据块更新时,若时间t′内响应成功的校验节点不足m′个,则使用重构写将所有新校验块写到先前并非数据节点或者校验节点的节点中,作为新的校验节点,并使用新数据块覆盖写旧数据块,重置条带更新次数为0,同时清除数据节点的日志中关于所述条带的更新信息,并结束更新流程。

3.根据权利要求1所述的基于日志的高可用纠删码更新方法,其特征在于,步骤一中,对于条带中单个数据块更新的情况,未成功响应的校验节点的校验块增量的计算方式如下:

4.根据权利要求1所述的基于日志的高可用纠删码更新方法,其特征在于,步骤一中,对于条带中多个数据块更新的情况,未成功响应的校验节点的校验块增量的计算方式如下:

5.根据权利要求1所述的基于日志的高可用纠删码更新方法,其特征在于,步骤一和步骤二中,所述将数据节点日志和校验节点日志中的更新信息合并,具体包括:

技术总结本发明涉及计算机技术领域,公开了一种基于日志的高可用纠删码更新方法,基于日志技术,在里德‑所罗门编码更新时,仅需部分校验节点响应成功即可完成更新,包括:当条带中单个数据块更新时,判断日志中是否存在多个数据块同时更新的信息,如是,则将日志中的更新信息合并,再执行过程校验节点响应的过程;如否,则直接执行校验节点响应的过程;当条带中多个数据块更新时,将计算出来的校验块增量发送给校验节点,如果在固定时间内有设定数量的校验节点响应成功,则将新数据块保存到对应数据节点的日志中,增加条带更新次数;发明在纠删码更新时只需要一部分校验节点响应成功即可更新成功,降低了更新延迟、加快了更新速度、提高了更新可用性。技术研发人员:吕敏,武兴华,许胤龙受保护的技术使用者:中国科学技术大学技术研发日:技术公布日:2024/11/18

本文地址:https://www.jishuxx.com/zhuanli/20241120/331762.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。