检测数据一致性的方法、装置、电子设备及存储介质制造方法及图纸

技术编号:19023453 阅读:28 留言:0更新日期:2018-09-26 19:04
本发明专利技术实施例提供了检测数据一致性的方法、装置、电子设备及存储介质,应用于对象存储技术领域,该检测数据一致性的方法包括:获取待检测数据的所有副本,其中,副本包括数据主体及第一校验码,第一校验码为将副本写入分布式对象存储系统中时,所存储的验证码;分别根据每个副本的数据主体,通过预设算法,计算各副本的第二校验码;判断所有第一校验码及所有第二校验码是否均相同;在所有第一校验码及所有第二校验码均相同时,判定待检测数据的所有副本具备一致性。通过该检测数据一致性的方法,能够检测已写入分布式对象存储系统中数据的一致性。

【技术实现步骤摘要】
检测数据一致性的方法、装置、电子设备及存储介质
本专利技术涉及对象存储
,特别是涉及检测数据一致性的方法、装置、电子设备及存储介质。
技术介绍
随着计算机技术的发展,网络中的数据量呈现井喷式的增长,传统文件存储系统由于无用元数据过多占用空间,文件读取涉及磁盘IO(Input/Output,输入/输出端口)瓶颈等原因,已经无法满足巨量数据的存储。对象存储能够在一个高度可用的系统中存储任意的对象,用户和应用可以在对象存储系统中使用简单的API(ApplicationProgrammingInterface,应用程序编程接口)访问数据,对象存储系统有着接近无限的扩展能力,适用于大量数据存储。常用的对象存储系统有GoogleFileSystem,Haystack,TaobaoFileSystem等。分布式对象存储通过在多个磁盘上存储多个副本来保证数据的安全,多个副本间的一致性模型是存储系统和数据使用者间约定的,包括:强一致性,弱一致性和最终一致性。强一致性指存储系统中的某个数据被成功更新(事务成功返回)后,后续任何对该数据的读取操作都能得到更新后的值。这也是传统的关系数据库所提供的一致性模型。所谓弱一致性是指存储系统中的某个数据被更新后,后续对该数据的读取操作得到的不一定是更新后的值,在这种情况下有个“不一致性时间窗口”存在,在过了这个“不一致性时间窗口”之后,后续的读取才能得到更新后的值。而最终一致性是弱一致性的一种情况,指的是某个数据更新后没有被再次更新,那么最终所有的读取操作都会返回更新后的数据。在现有的应用于分布式对象存储系统的检测数据一致性的方法中,在将待存储数据的副本写入到各存储介质(如磁盘等)时,分别检查各副本的校验码与用户发送的存储请求中的校验码是否相同,若均相同则认为各副本中的数据符合一致性。但是在副本写入到各存储介质中后,由于物理碰撞、硬件过期及掉电等原因,会导致副本中数据的损毁,因此对于已写入分布式对象存储系统中的数据仍然需要检测数据的一致性,但现有的检测数据一致性的方法不能够检测已写入分布式对象存储系统中数据的一致性。
技术实现思路
本专利技术实施例的目的在于提供一种检测数据一致性的方法、装置、电子设备及存储介质,以实现检测已写入分布式对象存储系统中数据的一致性。具体技术方案如下:第一方面,本专利技术实施例提供了一种检测数据一致性的方法,应用于分布式对象存储系统,包括:获取待检测数据的所有副本,其中,所述副本包括数据主体及第一校验码,第一校验码为将所述副本写入所述分布式对象存储系统中时,所存储的验证码;分别根据每个副本的数据主体,通过预设算法,计算各副本的第二校验码;判断所有第一校验码及所有第二校验码是否均相同;在所有第一校验码及所有第二校验码均相同时,判定所述待检测数据的所有副本具备一致性。可选的,在所述获取待检测数据的所有副本之后,所述方法还包括:当存在缺失的副本时,对所述缺失的副本进行恢复。可选的,在所述当存在缺失的副本时,对所述缺失的副本进行恢复之后,所述方法还包括:发送标识所述缺失的副本的告警信息。可选的,在所述判断所有第一校验码及所有第二校验码是否均相同之后,所述方法还包括:在所有第一校验码及所有第二校验码不均相同时,比较所有第一校验码及所有第二校验码,确定正常数据及异常数据;利用所述正常数据,修复所述异常数据。可选的,所述获取待检测数据的所有副本,包括:周期性的获取所述待检测数据的所有副本。可选的,在所述获取待检测数据的所有副本之前,所述方法还包括:接收由数据写入端发送的待写入数据及校验码;利用所述预设算法对所述待写入数据进行计算,生成第三校验码;在由所述数据写入端发送的校验码与所述第三校验码相同时,写入所述待写入数据至所述分布式对象存储系统中,并将所述第三校验码写入到当前存储装置的Block结构的ObjectHeader中。可选的,在所述在由所述数据写入端发送的校验码与所述第三校验码相同时,写入所述待写入数据至所述分布式对象存储系统中,并将所述第三校验码写入到当前存储装置的Block结构的ObjectHeader中之后,所述方法还包括:获取所述待写入数据及接收到的所述待写入数据的校验码,将接收到的所述待写入数据的校验码与所述数据写入端发送的校验码进行比较;在接收到的所述待写入数据的校验码与所述数据写入端发送的校验码相同时,保存所述待写入数据,并将接收到的所述待写入数据的校验码写入到当前存储装置的Block结构的ObjectHeader中。可选的,在所述在所有第一校验码及所有第二校验码均相同时,判定所述待检测数据的所有副本具备一致性之后,所述方法还包括:获取由数据请求端发送的读取指令,根据所述读取指令选择待读取数据的第一副本,其中,所述第一副本为所述待读取数据的任意副本;利用所述预设算法,对所述第一副本的数据主体进行计算,生成第四校验码;在所述第四校验码与所述第一副本中保存的校验码相同时,向所述数据请求端发送所述第一副本。可选的,在所述利用所述预设算法,对所述第一副本的数据主体进行计算,生成第四校验码之后,所述方法还包括:在所述第四校验码与所述第一副本中存储的校验码不同时,选取所述待读取数据的第二副本,其中,所述第二副本为所述待读取数据的除所述第一副本外的其他副本中的副本;利用所述预设算法,对所述第二副本的数据主体进行计算,生成第五校验码;在所述第五校验码与所述第二副本中保存的校验码相同时,向所述数据请求端发送所述第二副本;根据所述第二副本修复所述第一副本。第二方面,本专利技术实施例提供了一种检测数据一致性的装置,应用于分布式对象存储系统,包括:副本获取模块,用于获取待检测数据的所有副本,其中,所述副本包括数据主体及第一校验码,第一校验码为将所述副本写入所述分布式对象存储系统中时,所存储的验证码;第一计算模块,用于分别根据每个副本的数据主体,通过预设算法,计算各副本的第二校验码;第一判定模块,用于判断所有第一校验码及所有第二校验码是否均相同;一致性判定模块,用于在所有第一校验码及所有第二校验码均相同时,判定所述待检测数据的所有副本具备一致性。可选的,所述检测数据一致性的装置还包括:第一恢复模块,用于当检测到存在缺失的副本时,对所述缺失的副本进行恢复。可选的,所述检测数据一致性的装置还包括:告警模块,用于发送标识所述缺失的副本的告警信息。可选的,所述检测数据一致性的装置还包括:异常确定模块,用于在所有第一校验码及所有第二校验码不均相同时,比较所有第一校验码及所有第二校验码,确定正常数据及异常数据;第二恢复模块,用于利用所述正常数据,修复所述异常数据。可选的,所述副本获取模块具体用于:周期性的获取所述待检测数据的所有副本。可选的,所述检测数据一致性的装置还包括:待写入数据接收模块,用于接收由数据写入端发送的待写入数据及校验码;第二计算模块,用于利用所述预设算法对所述待写入数据进行计算,生成第三校验码;数据写入模块,用于在由所述数据写入端发送的校验码与所述第三校验码相同时,写入所述待写入数据至所述分布式对象存储系统中,并将所述第三校验码写入到当前存储装置的Block结构的ObjectHeader中。可选的,所述检测数据一致性的装置还包括:第二判定模块,用于获取所述待写入数据及接本文档来自技高网
...

【技术保护点】
1.一种检测数据一致性的方法,其特征在于,应用于分布式对象存储系统,包括:获取待检测数据的所有副本,其中,所述副本包括数据主体及第一校验码,第一校验码为将所述副本写入所述分布式对象存储系统中时,所存储的验证码;分别根据每个副本的数据主体,通过预设算法,计算各副本的第二校验码;判断所有第一校验码及所有第二校验码是否均相同;在所有第一校验码及所有第二校验码均相同时,判定所述待检测数据的所有副本具备一致性。

【技术特征摘要】
1.一种检测数据一致性的方法,其特征在于,应用于分布式对象存储系统,包括:获取待检测数据的所有副本,其中,所述副本包括数据主体及第一校验码,第一校验码为将所述副本写入所述分布式对象存储系统中时,所存储的验证码;分别根据每个副本的数据主体,通过预设算法,计算各副本的第二校验码;判断所有第一校验码及所有第二校验码是否均相同;在所有第一校验码及所有第二校验码均相同时,判定所述待检测数据的所有副本具备一致性。2.根据权利要求1所述的方法,其特征在于,在所述获取待检测数据的所有副本之后,所述方法还包括:当存在缺失的副本时,对所述缺失的副本进行恢复。3.根据权利要求2所述的方法,其特征在于,在所述当存在缺失的副本时,对所述缺失的副本进行恢复之后,所述方法还包括:发送标识所述缺失的副本的告警信息。4.根据权利要求1所述的方法,其特征在于,在所述判断所有第一校验码及所有第二校验码是否均相同之后,所述方法还包括:在所有第一校验码及所有第二校验码不均相同时,比较所有第一校验码及所有第二校验码,确定正常数据及异常数据;利用所述正常数据,修复所述异常数据。5.根据权利要求1所述的方法,其特征在于,所述获取待检测数据的所有副本,包括:周期性的获取所述待检测数据的所有副本。6.根据权利要求1所述的方法,其特征在于,在所述获取待检测数据的所有副本之前,所述方法还包括:接收由数据写入端发送的待写入数据及校验码;利用所述预设算法对所述待写入数据进行计算,生成第三校验码;在由所述数据写入端发送的校验码与所述第三校验码相同时,写入所述待写入数据至所述分布式对象存储系统中,并将所述第三校验码写入到当前存储装置的Block结构的ObjectHeader中。7.根据权利要求6所述的方法,其特征在于,在所述在由所述数据写入端发送的校验码与所述第三校验码相同时,写入所述待写入数据至所述分布式对象存储系统中,并将所述第三校验码写入到当前存储装置的Block结构的ObjectHeader中之后,所述方法还包括:获取所述待写入数据及接收到的所述待写入数据的校验码,将接收到的所述待写入数据的校验码与所述数据写入端发送的校验码进行比较;在接收到的所述待写入数据的校验码与所述数据写入端发送的校验码相同时,保存所述待写入数据,并将接收到的所述待写入数据的校验码写入到当前存储装置的Block结构的ObjectHeader中。8.根据权利要求1所述的方法,其特征在于,在所述在所有第一校验码及所有第二校验码均相同时,判定所述待检测数据的所有副本具备一致性之后,所述方法还包括:获取由数据请求端发送的读取指令,根据所述读取指令选择待读取数据的第一副本,其中,所述第一副本为所述待读取数据的任意副本;利用所述预设算法,对所述第一副本的数据主体进行计算,生成第四校验码;在所述第四校验码与所述第一副本中保存的校验码相同时,向所述数据请求端发送所述第一副本。9.根据权利要求8所述的方法,其特征在于,在所述利用所述预设算法,对所述第一副本的数据主体进行计算,生成第四校验码之后,所述方法还包括:在所述第四校验码与所述第一副本中存储的校验码不同时,选取所述待读取数据的第二副本,其中,所述第二副本为所述待读取数据的除所述第一副本外的其他副本中的副本;利用所述预设算法,对所述第二副本的数据主体进行计算,生成第五校验码;在所述第五校验码与所述第二副本中保存的校验码相同时,向所述数据请求端发送所述第二副本;根据所述第二副本修复所述第一副本。10.一种检测数据一致性的装置,其特征在于,应用于分布式对象存储系统,包括:副本获取模块,用于获取待检测数据的所有副本,其中,所述副本包括数据主体及第一校验码,第一校验码为将所...

【专利技术属性】
技术研发人员:甘红星
申请(专利权)人:北京金山云网络技术有限公司北京金山云科技有限公司
类型:发明
国别省市:北京,11

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

1