一种数据修复方法、装置及计算机可读存储介质制造方法及图纸

技术编号:32209784 阅读:43 留言:0更新日期:2022-02-09 17:15
本申请公开了一种数据修复方法、装置及计算机可读存储介质,应用于分布式存储领域。该方法在检测到属于同一数据对象的副本间数据不一致时,首先获取全部副本的数据,然后若全部副本存在同一比特位上数据不一致,则统计全部副本在同一目标比特位上数据的出现次数情况,其中,目标比特位为数据不一致的比特位,最后根据全部副本在同一目标比特位上数据的出现次数情况确定全部副本在同一目标比特位上的数据以完成对目标比特位上数据的修复。由此可见,该方法在检测到不同副本间数据不一致时,根据不同副本在同一目标比特位上不同数据出现的次数确定不同副本的同一目标比特位上的数据,自动完成数据的修复,大大提升了用户的业务进度以及用户体验感。的业务进度以及用户体验感。的业务进度以及用户体验感。

【技术实现步骤摘要】
一种数据修复方法、装置及计算机可读存储介质


[0001]本申请涉及分布式存储领域,特别是涉及一种数据修复方法、装置及计算机可读存储介质。

技术介绍

[0002]分布式存储系统是目前一种广为使用的企业级存储系统。分布式存储系统具有数据高度可用的优点,目前分布式存储系统数据可靠性的保护方式主要分为纠删码和副本两种,其中副本又是技术最为成熟且应用最为广泛的数据冗余保护方法。副本冗余保护方法是将数据对象在不同的存储介质中存放两份或更多份完全一致的数据副本,这样当其中某个存储设备或者说副本出现丢失时,存储集群仍然可以通过读写其他存在的副本继续访问数据。但是在实际应用中,可能出现另外一种影响数据可靠性的现象,就是单一或多个副本出现数据损坏。
[0003]当今技术水平下,任何存储介质都是不完美的,都无法保证存储介质中的数据能够永远保持一致,即都有可能发生静默数据损坏。所谓静默数据损坏就是指存储介质本身没有任何异常,但是其中存储的数据由于某种原因发生了变化,导致读取到的数据与实际写入的数据不一致。由于错误发生时没有任何表象,所以这种静默数据损坏非常隐蔽且难以纠正。正是由于存储介质有可能存在静默数据损坏,所以给副本冗余方法下的分布式存储带来了一个致命的风险。比如某个数据保存了两个副本,但是其中一个副本所在的存储介质发生了静默数据损坏,导致其中的数据发生了变化,那么这两个副本就会出现数据不一致的现象,此时如果从发生静默数据损坏的副本读取数据就会读到错误的数据。
[0004]分布式存储有一系列的机制能够扫描出这种副本间数据不一致的现象并进行告警,但却无法进行修复,因为无法判断不一致的副本当中,哪个副本保存的是错误数据,哪个副本保存的是正确数据。通常扫描出数据不一致后,为避免用户读到错误数据,都会阻塞用户的读请求,直至人工修复不一致错误后,才能继续访问,最终大大影响了用户的业务进度,从而降低用户体验感。
[0005]由此可见,如何提升用户的业务进度以及提高用户体验感,是本领域技术人员亟待解决的问题。

技术实现思路

[0006]本申请的目的是提供一种数据修复方法、装置及计算机可读存储介质,用于提升用户的业务进度以及提高用户体验感。
[0007]为解决上述技术问题,本申请提供一种数据修复方法,包括:
[0008]在检测到属于同一数据对象的副本间数据不一致的情况下,获取属于同一数据对象的全部副本的数据;
[0009]获取全部所述副本在各比特位上数据的一致性情况;
[0010]若全部所述副本存在同一比特位上数据不一致,则统计全部所述副本在同一目标
比特位上数据的出现次数情况;其中,所述目标比特位为数据不一致的比特位;
[0011]根据全部所述副本在同一目标比特位上数据的出现次数情况确定全部所述副本在同一目标比特位上的数据以完成对所述目标比特位上数据的修复。
[0012]优选地,所述获取全部所述副本在各比特位上数据的一致性情况包括:
[0013]获取所述副本的比特位的个数S;
[0014]获取全部所述副本的第i个比特位上的数据,其中i从1开始;
[0015]判断当前比特位上的全部数据是否一致;
[0016]如果一致,判断i是否等于S,如果不等于,则令i加1,并返回所述获取全部所述副本的第i个比特位的全部数据的步骤;如果等于,则结束;
[0017]如果不一致,则进入所述统计全部所述副本在同一目标比特位上数据的出现次数情况的步骤。
[0018]优选地,所述根据全部所述副本在同一目标比特位上数据的出现次数情况确定全部所述副本在同一目标比特位上的数据以完成对所述目标比特位上数据的修复包括:
[0019]在全部所述副本的同一目标比特位上不同数据出现的次数不同的情况下,根据全部所述副本在同一目标比特位上出现次数占多数的数据确定全部所述副本在同一目标比特位上的数据以完成对所述目标比特位上数据的修复。
[0020]优选地,所述根据全部所述副本在同一目标比特位上数据的出现次数情况确定全部所述副本在同一目标比特位上的数据以完成对所述目标比特位上数据的修复包括:
[0021]在全部所述副本的同一目标比特位上不同数据出现的次数相同的情况下,确定全部所述副本在同一目标比特位上的数据为1以完成对所述目标比特位上数据的修复。
[0022]优选地,检测属于同一数据对象的副本间数据不一致的情况为:以预设周期检测属于同一数据对象的副本间数据不一致的情况。
[0023]优选地,在检测到同一比特位上数据不一致的次数超过阈值的情况下,标记所述副本的存储位置。
[0024]优选地,在完成对所述目标比特位上数据的修复之后,还包括:
[0025]输出完成对所述目标比特位上数据的修复的提示信息。
[0026]为解决上述技术问题,本申请还提供了一种数据修复的装置,包括:
[0027]第一获取模块,用于在检测到属于同一数据对象的副本间数据不一致的情况下,获取属于同一数据对象的全部副本的数据;
[0028]第二获取模块,用于获取全部所述副本在各比特位上数据的一致性情况;
[0029]统计模块,用于若全部所述副本存在同一比特位上数据不一致,则统计全部所述副本在同一目标比特位上数据的出现次数情况;其中,所述目标比特位为数据不一致的比特位;
[0030]确定模块,用于根据全部所述副本在同一目标比特位上数据的出现次数情况确定全部所述副本在同一目标比特位上的数据以完成对所述目标比特位上数据的修复。
[0031]为解决上述技术问题,本申请还提供了一种数据修复的装置,包括:
[0032]存储器,用于存储计算机程序;
[0033]处理器,用于执行所述计算机程序时实现上述的数据修复方法的步骤。
[0034]为解决上述技术问题,本申请还提供了一种计算机可读存储介质,计算机可读存
储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的数据修复方法的步骤。
[0035]本申请所提供的数据修复方法,该方法首先在检测到属于同一数据对象的副本间数据不一致的情况下,获取属于同一数据对象的全部副本的数据,然后若全部副本存在同一比特位上数据不一致,则统计全部副本在同一目标比特位上数据的出现次数情况,其中,目标比特位为数据不一致的比特位,最后根据全部副本在同一目标比特位上数据的出现次数情况确定全部副本在同一目标比特位上的数据以完成对目标比特位上数据的修复。该数据修复的方法在检测到不同副本间数据不一致的情况下,根据不同副本的同一比特位上不同数据出现的次数确定不同副本的同一比特位上的数据,自动完成数据修复工作。由此可见,本申请所提供的数据修复方法在检测到副本间数据不一致后对数据进行自动修复,大大提升了用户的业务进度以及提高了用户的体验感。
[0036]此外,本申请所提供的数据修复的装置以及计算机可读存储介质包括上述提到的数据修复方法,效果同上。
附图说明
[0037本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据修复方法,其特征在于,包括:在检测到属于同一数据对象的副本间数据不一致的情况下,获取属于同一数据对象的全部副本的数据;获取全部所述副本在各比特位上数据的一致性情况;若全部所述副本存在同一比特位上数据不一致,则统计全部所述副本在同一目标比特位上数据的出现次数情况;其中,所述目标比特位为数据不一致的比特位;根据全部所述副本在同一目标比特位上数据的出现次数情况确定全部所述副本在同一目标比特位上的数据以完成对所述目标比特位上数据的修复。2.根据权利要求1所述的数据修复方法,其特征在于,所述获取全部所述副本在各比特位上数据的一致性情况包括:获取所述副本的比特位的个数S;获取全部所述副本的第i个比特位上的数据,其中i从1开始;判断当前比特位上的全部数据是否一致;如果一致,判断i是否等于S,如果不等于,则令i加1,并返回所述获取全部所述副本的第i个比特位的全部数据的步骤;如果等于,则结束;如果不一致,则进入所述统计全部所述副本在同一目标比特位上数据的出现次数情况的步骤。3.根据权利要求1或2所述的数据修复方法,其特征在于,所述根据全部所述副本在同一目标比特位上数据的出现次数情况确定全部所述副本在同一目标比特位上的数据以完成对所述目标比特位上数据的修复包括:在全部所述副本的同一目标比特位上不同数据出现的次数不同的情况下,根据全部所述副本在同一目标比特位上出现次数占多数的数据确定全部所述副本在同一目标比特位上的数据以完成对所述目标比特位上数据的修复。4.根据权利要求1或2所述的数据修复方法,其特征在于,所述根据全部所述副本在同一目标比特位上数据的出现次数情况确定全部所述副本在同一目标比特位上的数据以完成对所述目标比特位上数据的...

【专利技术属性】
技术研发人员:江超
申请(专利权)人:济南浪潮数据技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1