CN112559547A - 确定多存储对象副本之间一致性的方法及装置 - Google Patents

确定多存储对象副本之间一致性的方法及装置 Download PDF

Info

Publication number
CN112559547A
CN112559547A CN202011553735.9A CN202011553735A CN112559547A CN 112559547 A CN112559547 A CN 112559547A CN 202011553735 A CN202011553735 A CN 202011553735A CN 112559547 A CN112559547 A CN 112559547A
Authority
CN
China
Prior art keywords
data
storage object
hash
determining
copies
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202011553735.9A
Other languages
English (en)
Other versions
CN112559547B (zh
Inventor
梁明远
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202011553735.9A priority Critical patent/CN112559547B/zh
Publication of CN112559547A publication Critical patent/CN112559547A/zh
Application granted granted Critical
Publication of CN112559547B publication Critical patent/CN112559547B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Abstract

本申请公开了一种确定多存储对象副本之间一致性的方法、装置、电子设备、可读存储介质以及计算机程序产品,涉及云存储技术领域。具体实现方案为:确定存储对象副本中包括的多个数据段;对多个数据段中的至少一个数据段执行哈希运算操作,得到对应数据段的哈希数据,其中,在执行完成哈希运算操作后,本次被执行哈希运算操作的存储对象副本从上锁状态切换至解锁状态;根据对应同一原始对象的多个存储对象副本之间对应的数据段的哈希数据的一致性,确定多个存储对象副本之间的一致性。本方案避免了因一次性对数据量较大的存储对象副本进行一致性校验,而导致存储对象副本上锁后持有锁的时间较长的情况,提高了一致性校验的灵活性。

Description

确定多存储对象副本之间一致性的方法及装置
技术领域
本申请涉及计算机技术领域,具体涉及云存储技术,为一种确定多存储对象副本之间一致性的方法、装置、电子设备、可读存储介质以及计算机程序产品。
背景技术
由于磁盘静默错误或者软件本身存在的漏洞,可能导致分布式存储系统中的各副本数据之间不一致。分布式存储系统需要定期扫描各个副本数据,并对各副本数据进行哈希计算,以判断各副本数据是否一致,进而对不一致的副本进行修复。在扫描数据进行哈希计算的过程中需要对副本数据上锁。
发明内容
本申请提供了一种确定多存储对象副本之间一致性的方法、装置、电子设备、可读存储介质以及计算机程序产品。
根据第一方面,本申请提供了一种确定多存储对象副本之间一致性的方法,包括:确定存储对象副本中包括的多个数据段;对多个数据段中的至少一个数据段执行哈希运算操作,得到对应数据段的哈希数据,其中,在执行完成哈希运算操作后,本次被执行哈希运算操作的存储对象副本从上锁状态切换至解锁状态;根据对应同一原始对象的多个存储对象副本之间对应的数据段的哈希数据的一致性,确定多个存储对象副本之间的一致性。
根据第二方面,本申请提供了一种确定多存储对象副本之间一致性的装置,包括:第一确定单元,被配置成确定存储对象副本中包括的多个数据段;运算单元,被配置成对多个数据段中的至少一个数据段执行哈希运算操作,得到对应数据段的哈希数据,其中,在执行完成哈希运算操作后,本次被执行哈希运算操作的存储对象副本从上锁状态切换至解锁状态;第二确定单元,被配置成根据对应同一原始对象的多个存储对象副本之间对应的数据段的哈希数据的一致性,确定多个存储对象副本之间的一致性。
根据第三方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述第一方面中任一项的方法。
根据第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行上述第一方面中任一项的方法。
根据第五方面,提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现上述第一方面中任一项的方法。
根据本申请的技术,对进行一致性校验的存储对象副本进行数据拆分,并以拆分的数据段为单位对存储对象副本进行一致性校验,从而避免了因一次性对数据量较大的存储对象副本进行一致性校验,而导致存储对象副本上锁后持有锁的时间较长的情况,提高了一致性校验的灵活性。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本申请的一个实施例可以应用于其中的示例性系统架构图;
图2是根据本申请的确定多存储对象副本之间一致性的方法的一个实施例的流程图;
图3是根据本申请的确定多存储对象副本之间一致性的方法的一个应用场景的示意图;
图4是根据本申请的确定多存储对象副本之间一致性的方法的又一个实施例的流程图;
图5是根据本申请的确定多存储对象副本之间一致性的装置协同配合的一个实施例的流程图;
图6是适于用来实现本申请的实施例的电子设备/终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1示出了可以应用本申请的确定多存储对象副本之间一致性的方法及装置的示例性架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
终端设备101、102、103可以是支持网络连接从而进行数据交互和数据处理的硬件设备或软件。当终端设备101、102、103为硬件时,其可以是支持网络连接,信息获取、交互、显示、处理等功能的各种电子设备,包括但不限于智能手机、平板电脑、车载电脑、膝上型便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成例如用来提供分布式服务的多个软件或软件模块,也可以实现成单个软件或软件模块。在此不做具体限定。
服务器105可以是提供各种服务的服务器,例如对分布式对象存储系统中的存储对象副本进行一致性校验的后台处理服务器。后台处理服务器对进行一致性校验的存储对象副本进行数据拆分,并以拆分的数据段为单位对存储对象副本进行一致性校验。其中,存储对象副本处于上锁状态时,确定拆分后的数据段的哈希数据;存储对象副本处于解锁锁状态时,执行终端设备101、102、103针对于存储对象副本的操作请求。作为示例,服务器105可以是云端服务器。
需要说明的是,服务器可以是硬件,也可以是软件。当服务器为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务的软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
还需要说明的是,本申请的实施例所提供的确定多存储对象副本之间一致性的方法可以由服务器执行。相应地,确定多存储对象副本之间一致性的装置包括的各个部分(例如各个单元、各个模块)可以全部设置于服务器中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。当确定多存储对象副本之间一致性的方法运行于其上的电子设备不需要与其他电子设备进行数据传输时,该系统架构可以仅包括确定多存储对象副本之间一致性的方法运行于其上的电子设备(例如服务器或终端设备)。
继续参考图2,示出了确定多存储对象副本之间一致性的方法的一个实施例的流程200,包括以下步骤:
步骤201,确定存储对象副本中包括的多个数据段。
本实施例中,确定多存储对象副本之间一致性的方法的执行主体(例如图1中的服务器)可以确定存储对象副本中包括的多个数据段。
其中,存储对象副本中包括的数据可以为任意内容的数据。对存储对象副本进行数据划分,可以得到构成存储对象副本的多个数据段。其中,存储对象副本中的数据段的数量可以根据实际情况(例如存储对象副本中数据的数据量的大小)具体设置,在此不做限定。需要说明的是,存储对象副本中的多个数据段的数据量可以相同,也可以不同。但是,对应同一原始对象的多个存储对象副本,应当以相同的数据段划分标准进行数据段的划分,以使多个存储对象副本中的数据段一一对应。
作为示例,针对于每个存储对象副本中的数据,上述执行主体可以以分布式对象存储系统中存储对象副本的stripe(对象分片)为单位,对存储对象副本进行数据划分。可以理解,本实施例中的存储对象副本一般为数据量比较大的存储对象副本。
步骤202,对多个数据段中的至少一个数据段执行哈希运算操作,得到对应数据段的哈希数据。
本实施例中,上述执行主体对多个数据段中的至少一个数据段执行哈希运算操作,得到对应数据段的哈希数据。其中,在执行完成哈希运算操作后,本次被执行哈希运算操作的存储对象副本从上锁状态切换至解锁状态。
作为示例,上述执行主体针对于至少一个数据段中的每个数据段执行哈希运算操作,得到该数据段的哈希数据。在执行哈希运算操作的过程中,存储对象副本处于上锁状态。执行完成一次哈希运算操作后,下一次哈希运算操作前,存储对象副本处于解锁状态。
需要说明的是,对应同一原始对象的多个存储对象副本之间,对应的数据段的哈希运算操作是同时进行的,每次执行哈希运算操作的过程中,上锁、解锁、以及上锁状态与解锁状态之间的切换也是同步进行的。
作为示例,对应同一原始对象的多个存储对象副本包括A和B,存储对象副本A中的多个数据段包括A1、A2和A3,存储对象副本B中的多个数据段包括B1、B2和B3,其中,数据段A1、A2和A3依次与数据段B1、B2和B3对应。上述执行主体在对数据段A1进行哈希运算操作时,同时对数据段B1进行哈希运算操作,并在对数据段A1、B1的哈希运算过程中,对存储对象副本A和B同时上锁,并在完成数据段A1、B1的哈希运算操作后,对存储对象副本A和B同时解锁。
步骤203,根据对应同一原始对象的多个存储对象副本之间对应的数据段的哈希数据的一致性,确定多个存储对象副本之间的一致性。
本实施例中,上述执行主体根据对应同一原始对象的多个存储对象副本之间对应的数据段的哈希数据的一致性,确定多个存储对象副本之间的一致性。
作为示例,当对应同一原始对象的多个存储对象副本之间对应的多个数据段的哈希数据一致时,确定多个存储对象副本之间具有一致性;当对应同一原始对象的多个存储对象副本之间对应的数据段的哈希数据不一致时,确定多个存储对象副本之间不具有一致性。可以理解,当上述执行主体对多个存储对象副本中的数据段的哈希数据进行一致性校验过程中,确定多各存储对象之间对应的哈希数据不一致,则只根据截止到当前已完成哈希运算操作的数据段就可判定多个存储对象副本之间不具有一致性。其中,截止到当前已完成哈希运算操作的数据段可能只是存储对象副本中多个数据段中的部分数据段。
继续参见图3,图3是根据本实施例的确定多存储对象副本之间一致性的方法的应用场景的一个示意图。在图3所示的应用场景中,针对于一份文本数据,分布式对象存储系统的服务器301、302、303中依次存储有存储对象副本3011、3021、3031。针对于存储对象副本3011、3021、3031中的每个存储对象副本,服务器304首先确定存储对象副本中包括的多个数据段。然后,服务器304对多个数据段中的至少一个数据段执行哈希运算操作,得到对应数据段的哈希数据。其中,在执行完成哈希运算操作后,本次被执行哈希运算操作的存储对象副本从上锁状态切换至解锁状态。最后,服务器304根据对应同一原始对象的多个存储对象副本3011、3021、3031之间对应的数据段的哈希数据的一致性,确定多个存储对象副本3011、3021、3031之间的一致性。
本实施例中,对进行一致性校验的存储对象副本进行数据拆分,并以拆分的数据段为单位对存储对象副本进行一致性校验,从而避免了因一次性对数据量较大的存储对象副本进行一致性校验,而导致存储对象副本上锁后持有锁的时间较长的情况,提高了一致性校验的灵活性。
在本实施例的一些可选的实现方式中,上述执行主体通过如下方式执行上述步骤203:
响应于确定多个存储对象副本之间所有对应的数据段的哈希数据均一致,确定多个存储对象副本之间具有一致性;响应于确定多个存储对象副本之间任一对应的数据段的哈希数据不一致,确定多个存储对象副本之间不具有一致性。
本实现方式中,对应同一原始对象的多个存储对象副本之间,所有对应的数据段的哈希数据均通过了一致性校验,才能确定多个存储对象之间一致。作为示例,针对于存储对象副本C和D,上述执行主体分别确定出10个哈希数据。当存储对象副本C的10个哈希数据C1-C10依次与存储对象副本D的10个哈希数据D1-D10一致时,才能确定存储对象副本C和D一致。
对应同一原始对象的多个存储对象副本之间,对应的数据段的哈希数据中一旦存在不一致的情况,则确定多个存储对象副本之间不一致。作为示例,当存储对象副本C的第二个数据段的哈希数据C2与存储对象副本D的第二个数据段的哈希数据D2不一致时,则确定存储对象副本C、D之间不一致。本实现方式提高了存储对象副本之间一致性校验的准确度。
可以理解,一旦确定多个存储对象副本之间不一致,则无需继续进行存储对象副本中后续的数据段的哈希运算操作。继续参照上述示例,当存储对象副本C的第二个数据段的哈希数据C2与存储对象副本D的第二个数据段的哈希数据D2不一致时,则无需再进行存储对象副本A、B中第二个数据段之后的数据段的哈希运算操作。
在本实施例的一些可选的实现方式中,上述执行主体可以通过如下方式执行上述步骤202:
第一,以预设数据量为单位,划分执行本次哈希运算操作的数据段,得到多个单位数据。
本实现方式中,上述执行主体对执行本次哈希运算操作的数据进行进一步划分,得到多个单位数据。其中,每个单位数据的数据量为预设数据量。预设数据量可以根据实际情况具体设置。例如,预设数据量为50KB。
第二,确定多个单位数据中的每个单位数据对应的哈希值。
作为示例,上述执行主体可以将每个单位数据依次输入预先确定的哈希函数,得到每个单位数据分别对应的哈希值。
第三,基于预设方式,根据每个单位数据对应的哈希值,确定执行本次哈希运算操作的数据段对应的哈希数据。
作为示例,预设方式可以是将执行本次哈希运算操作的数据段中的每个单位数据的哈希值,按照每个单位数据在存储对象副本中的顺序进行拼接,得到执行本次哈希运算操作的数据所对应的哈希数据。
作为又一示例,针对于每个单位数据的哈希值,上述执行主体可以基于预设算法进行按位与、按位或、按位异或等运算,从而得到数据段对应的哈希数据。
本实现方式中,上述执行主体对执行每次哈希运算操作的数据段进行进一步划分,并通过划分后的每个单位数据的哈希值,得到执行哈希运算操作的数据段对应的哈希数据,基于所得到的哈希数据可以提高一致性校验的准确度。
在本实施例的一些可选的实现方式中,存储对象副本包括数据部分和元数据部分。其中,元数据部分存储于键值数据库中,元数据部分表征存储对象副本的元数据。元数据为描述数据的数据,主要是描述数据属性的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。针对于数据部分,预设数据量表征数据的大小;针对于元数据部分,预设数据量表征键值对的数量。针对于数据部分和元数据部分,上述执行主体分别进行如步骤201-203所示的一致性检验过程。当确定多个存储对象副本的数据部分均一致,且多个存储对象副本的元数据部分均一致,确定多个存储对象副本一致。否则,确定多个存储对象副本不一致。
本实现方式中,针对于存储对象副本的各部分数据分别进行一致性校验,进一步提高了一致性检验的准确度。
在本实施例的一些可选的实现方式中,上述执行主体每隔预设时间段,对该预设时间段内得到的、多个存储对象副本之间对应的哈希数据进行一致性校验;根据多个存储对象副本之间的一致性校验结果,确定多个存储对象副本之间的一致性。
其中,预设时间段可以是特定时长的时间段。作为示例,预设时长为1分钟。上述执行主体可以将截止到当前时间1分钟内所确定的哈希数据进行一致性校验。例如,截止到当前时间的1分钟内,针对于存储对象副本E,上述执行主体得到了哈希数据E1、E2;针对于存储对象副本F,上述执行主体得到了哈希数据F1、F2。上述执行主体对E1和F1、E2和F2分别进行一致性校验。当确定出E1和F1不一致,或E2和F2不一致,则确定存储对象副本E和存储对象副本F不一致。当多个存储对象副本之间所有的一致性校验结果均一致时,确定多个存储对象副本之间一致。
本实现方式中,上述执行主体基于预设时间段对多个存储对象副本进行一致性校验,降低了校验频率,缓解了上述执行主体的检验压力。
在本实施例的一些可选的实现方式中,上述执行主体还可以在多个存储对象副本处于解锁状态时,执行针对于多个存储对象副本的操作请求。
其中,操作请求可以是任意的操作请求,包括但不限于是读请求、写请求、删除请求、对存储对象副本中数据的截断请求。本实现方式中,存储对象副本处于上锁状态时,确定拆分后的数据的哈希数据;存储对象副本处于解锁状态时,执行针对于存储对象副本的操作请求,从而在对存储对象副本进行一致性校验过程中,灵活执行操作请求,避免了因一次性对数据量较大的存储对象副本进行一致性校验,而导致存储对象副本上锁后持有锁的时间较长,引起针对于存储对象副本的操作请求阻塞的情况。
具体的,上述执行主体针对于多个存储对象副本中的每个存储对象副本,进行如下操作,直至达到预设结束条件:承接于该存储对象副本中已完成哈希运算操作的数据段,确定该存储对象副本中执行本次哈希运算操作的数据段所对应的哈希数据,其中,在哈希数据的确定过程中,该存储对象副本处于上锁状态;响应于得到当前的数据段的哈希数据,执行针对于该存储对象副本的操作请求,其中,在执行操作请求的过程中,该存储对象副本处于解锁状态。响应于达到结束条件,上述执行主体根据多个存储对象副本的哈希数据,确定多个存储对象副本的一致性。
其中,预设结束条件为该存储对象副本中的所有数据均完成哈希运算操作;或针对于该存储对象副本的操作请求为删除该存储对象副本的操作请求;或针对于该存储对象副本的操作请求为截断该存储对象副本的操作请求,并且截断后的该存储对象副本中的数据均完成哈希运算操作。
在本实施例的一些可选的实现方式中,上述执行主体响应于确定多个存储对象副本不一致,进行数据修复。
作为示例,上述执行主体可以首先从多个存储对象副本中确定出一致的、且数量最多的存储对象副本,将所确定出的存储对象副本作为标准存储对象副本,修复与标准存储对象副本不同的存储对象副本。例如,6个存储对象副本中有4个存储对象副本之间一致,其他2个存储对象副本之间不一致,则上述执行主体将一致的4个存储对象副本作为标准存储对象副本,修复其他2个存储对象副本。
作为又一示例,上述执行主体可以首先确定出多个存储对象副本中的主存储对象副本,通过主存储对象副本修复不一致的从存储对象副本。
本实现方式中,上述执行主体响应于确定多个存储对象副本不一致,可以对不一致的存储对象副本进行数据修复,提高了本方案的实用性。
继续参考图4,示出了根据本申请的确定多存储对象副本之间一致性的方法的另一个实施例的示意性流程400,包括以下步骤:
步骤401,确定存储对象副本中包括的多个数据段。
步骤402,对多个数据段中的至少一个数据段执行哈希运算操作,得到对应数据段的哈希数据。
其中,在执行完成哈希运算操作后,本次被执行哈希运算操作的存储对象副本从上锁状态切换至解锁状态。
步骤403,在多个存储对象副本处于解锁状态时,执行针对于多个存储对象副本的操作请求。
步骤404,根据对应同一原始对象的多个存储对象副本之间对应的数据段的哈希数据的一致性,确定多个存储对象副本之间的一致性。
步骤405,响应于确定多个存储对象副本不一致,进行数据修复。
本实施例中,从图4中可以看出,与图2对应的实施例相比,本实施例中的确定多存储对象副本之间一致性的方法的流程400突出说明了执行操作请求的过程和数据修复过程,进一步提高了本申请的灵活性和实用性。
进一步参考图5,作为对上述图2所示方法的实现,本申请提供了一种确定多存储对象副本之间一致性的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,除下面所记载的特征外,该装置实施例还可以包括与图2所示的方法实施例相同或相应的特征,以及产生与图2所示的方法实施例相同或相应的效果。该装置具体可以应用于各种电子设备中。
如图5所示,本实施例的确定多存储对象副本之间一致性的装置,包括:第一确定单元501,被配置成确定存储对象副本中包括的多个数据段;运算单元502,被配置成对多个数据段中的至少一个数据段执行哈希运算操作,得到对应数据段的哈希数据,其中,在执行完成哈希运算操作后,本次被执行哈希运算操作的存储对象副本从上锁状态切换至解锁状态;第二确定单元503,被配置成根据对应同一原始对象的多个存储对象副本之间对应的数据段的哈希数据的一致性,确定多个存储对象副本之间的一致性。
在本实施例的一些可选的实现方式中,第二确定单元503,进一步被配置成:响应于确定多个存储对象副本之间所有对应的数据段的哈希数据均一致,确定多个存储对象副本之间具有一致性;响应于确定多个存储对象副本之间任一对应的数据段的哈希数据不一致,确定多个存储对象副本之间不具有一致性。
在本实施例的一些可选的实现方式中,第二确定单元503,进一步被配置成:每隔预设时间段,对该预设时间段内得到的、多个存储对象副本之间对应的哈希数据进行一致性校验;根据多个存储对象副本之间的一致性校验结果,确定多个存储对象副本之间的一致性。
在本实施例的一些可选的实现方式中,运算单元502,进一步被配置成:以预设数据量为单位,划分执行本次哈希运算操作的数据段,得到多个单位数据;确定多个单位数据中的每个单位数据对应的哈希值;基于预设方式,根据每个单位数据对应的哈希值,确定执行本次哈希运算操作的数据段对应的哈希数据。
在本实施例的一些可选的实现方式中,存储对象副本包括数据部分和元数据部分,其中,元数据部分存储于键值数据库中;针对于数据部分,预设数据量表征数据的大小;针对于元数据部分,预设数据量表征键值对的数量。
在本实施例的一些可选的实现方式中,上述装置还包括:执行单元(图中未示出),被配置成在多个存储对象副本处于解锁状态时,执行针对于多个存储对象副本的操作请求。
在本实施例的一些可选的实现方式中,上述装置还包括:修复单元(图中未示出),被配置成响应于确定多个存储对象副本不一致,进行数据修复。
本实施例中,对进行一致性校验的存储对象副本进行数据拆分,并以拆分的数据段为单位对存储对象副本进行一致性校验,从而避免了因一次性对数据量较大的存储对象副本进行一致性校验,而导致存储对象副本上锁后持有锁的时间较长,引起针对于存储对象副本的操作请求阻塞的情况,提高了一致性校验的灵活性。
根据本申请的实施例,本申请还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图6示出了可以用来实施本申请的实施例的示例电子设备600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图6所示,设备600包括计算单元601,其可以根据存储在只读存储器(ROM)602中的计算机程序或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。计算单元601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如确定多存储对象副本之间一致性的方法。例如,在一些实施例中,确定多存储对象副本之间一致性的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM 603并由计算单元601执行时,可以执行上文描述的确定多存储对象副本之间一致性的方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行确定多存储对象副本之间一致性的方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (17)

1.一种确定多存储对象副本之间一致性的方法,包括:
确定存储对象副本中包括的多个数据段;
对所述多个数据段中的至少一个数据段执行哈希运算操作,得到对应数据段的哈希数据,其中,在执行完成所述哈希运算操作后,本次被执行所述哈希运算操作的存储对象副本从上锁状态切换至解锁状态;
根据对应同一原始对象的多个存储对象副本之间对应的数据段的哈希数据的一致性,确定所述多个存储对象副本之间的一致性。
2.根据权利要求1所述的方法,其中,所述根据对应同一原始对象的多个存储对象副本之间对应的数据段的哈希数据的一致性,确定所述多个存储对象副本之间的一致性,包括:
响应于确定所述多个存储对象副本之间所有对应的数据段的哈希数据均一致,确定所述多个存储对象副本之间具有一致性;
响应于确定所述多个存储对象副本之间任一对应的数据段的哈希数据不一致,确定所述多个存储对象副本之间不具有一致性。
3.根据权利要求1所述的方法,其中,所述根据对应同一原始对象的多个存储对象副本之间对应的数据段的哈希数据的一致性,确定所述多个存储对象副本之间的一致性,包括:
每隔预设时间段,对该预设时间段内得到的、所述多个存储对象副本之间对应的哈希数据进行一致性校验;
根据所述多个存储对象副本之间的一致性校验结果,确定所述多个存储对象副本之间的一致性。
4.根据权利要求1所述的方法,其中,所述对所述多个数据段中的至少一个数据段执行哈希运算操作,得到对应数据段的哈希数据,包括:
以预设数据量为单位,划分执行本次哈希运算操作的数据段,得到多个单位数据;
确定所述多个单位数据中的每个单位数据对应的哈希值;
基于预设方式,根据每个单位数据对应的哈希值,确定执行本次哈希运算操作的数据段对应的哈希数据。
5.根据权利要求4所述的方法,其中,所述存储对象副本包括数据部分和元数据部分,其中,所述元数据部分存储于键值数据库中;
针对于所述数据部分,所述预设数据量表征数据的大小;针对于所述元数据部分,所述预设数据量表征键值对的数量。
6.根据权利要求1所述的方法,其中,还包括:
在所述多个存储对象副本处于解锁状态时,执行针对于所述多个存储对象副本的操作请求。
7.根据权利要求1所述的方法,其中,还包括:
响应于确定所述多个存储对象副本不一致,进行数据修复。
8.一种确定多存储对象副本之间一致性的装置,包括:
第一确定单元,被配置成确定存储对象副本中包括的多个数据段;
运算单元,被配置成对所述多个数据段中的至少一个数据段执行哈希运算操作,得到对应数据段的哈希数据,其中,在执行完成所述哈希运算操作后,本次被执行所述哈希运算操作的存储对象副本从上锁状态切换至解锁状态;
第二确定单元,被配置成根据对应同一原始对象的多个存储对象副本之间对应的数据段的哈希数据的一致性,确定所述多个存储对象副本之间的一致性。
9.根据权利要求8所述的装置,其中,所述第二确定单元,进一步被配置成:
响应于确定所述多个存储对象副本之间所有对应的数据段的哈希数据均一致,确定所述多个存储对象副本之间具有一致性;响应于确定所述多个存储对象副本之间任一对应的数据段的哈希数据不一致,确定所述多个存储对象副本之间不具有一致性。
10.根据权利要求8所述的装置,其中,所述第二确定单元,进一步被配置成:
每隔预设时间段,对该预设时间段内得到的、所述多个存储对象副本之间对应的哈希数据进行一致性校验;根据所述多个存储对象副本之间的一致性校验结果,确定所述多个存储对象副本之间的一致性。
11.根据权利要求8所述的装置,其中,所述运算单元,进一步被配置成:
以预设数据量为单位,划分执行本次哈希运算操作的数据段,得到多个单位数据;确定所述多个单位数据中的每个单位数据对应的哈希值;基于预设方式,根据每个单位数据对应的哈希值,确定执行本次哈希运算操作的数据段对应的哈希数据。
12.根据权利要求11所述的装置,其中,所述存储对象副本包括数据部分和元数据部分,其中,所述元数据部分存储于键值数据库中;
针对于所述数据部分,所述预设数据量表征数据的大小;针对于所述元数据部分,所述预设数据量表征键值对的数量。
13.根据权利要求8所述的装置,其中,还包括:
执行单元,被配置成在所述多个存储对象副本处于解锁状态时,执行针对于所述多个存储对象副本的操作请求。
14.根据权利要求8所述的装置,其中,还包括:
修复单元,被配置成响应于确定所述多个存储对象副本不一致,进行数据修复。
15.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-7中任一项所述的方法。
17.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-7中任一项所述的方法。
CN202011553735.9A 2020-12-24 2020-12-24 确定多存储对象副本之间一致性的方法及装置 Active CN112559547B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011553735.9A CN112559547B (zh) 2020-12-24 2020-12-24 确定多存储对象副本之间一致性的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011553735.9A CN112559547B (zh) 2020-12-24 2020-12-24 确定多存储对象副本之间一致性的方法及装置

Publications (2)

Publication Number Publication Date
CN112559547A true CN112559547A (zh) 2021-03-26
CN112559547B CN112559547B (zh) 2023-09-19

Family

ID=75033751

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011553735.9A Active CN112559547B (zh) 2020-12-24 2020-12-24 确定多存储对象副本之间一致性的方法及装置

Country Status (1)

Country Link
CN (1) CN112559547B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113391767A (zh) * 2021-06-30 2021-09-14 北京百度网讯科技有限公司 数据一致性的校验方法、装置、电子设备及可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102413313A (zh) * 2010-09-26 2012-04-11 索尼公司 数据完整性验证信息生成方法和装置、数据完整性验证方法和装置
CN106326398A (zh) * 2016-08-19 2017-01-11 东软集团股份有限公司 数据一致性对比的方法及装置
CN107203345A (zh) * 2017-06-01 2017-09-26 深圳市云舒网络技术有限公司 一种多副本存储快速校验一致性方法及其装置
CN107632781A (zh) * 2017-08-28 2018-01-26 深圳市云舒网络技术有限公司 一种分布式存储多副本快速校验一致性的方法及存储架构
CN110377454A (zh) * 2019-06-17 2019-10-25 中国平安人寿保险股份有限公司 数据校验方法、装置、计算机设备和存储介质
US20200341911A1 (en) * 2019-04-25 2020-10-29 EMC IP Holding Company LLC Method, device, and computer program product for managing storage system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102413313A (zh) * 2010-09-26 2012-04-11 索尼公司 数据完整性验证信息生成方法和装置、数据完整性验证方法和装置
CN106326398A (zh) * 2016-08-19 2017-01-11 东软集团股份有限公司 数据一致性对比的方法及装置
CN107203345A (zh) * 2017-06-01 2017-09-26 深圳市云舒网络技术有限公司 一种多副本存储快速校验一致性方法及其装置
CN107632781A (zh) * 2017-08-28 2018-01-26 深圳市云舒网络技术有限公司 一种分布式存储多副本快速校验一致性的方法及存储架构
US20200341911A1 (en) * 2019-04-25 2020-10-29 EMC IP Holding Company LLC Method, device, and computer program product for managing storage system
CN110377454A (zh) * 2019-06-17 2019-10-25 中国平安人寿保险股份有限公司 数据校验方法、装置、计算机设备和存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
YANMING DAI; NENGCHAO LYU; YUE HU: "Truck speed characteristics analysis of typical highway segments based on GPS data", 《2017 4TH INTERNATIONAL CONFERENCE ON TRANSPORTATION INFORMATION AND SAFETY (ICTIS)》 *
邱宁佳;胡小娟;王鹏;杨华民;: "一致性哈希的数据集群存储优化策略研究", 信息与控制, no. 06 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113391767A (zh) * 2021-06-30 2021-09-14 北京百度网讯科技有限公司 数据一致性的校验方法、装置、电子设备及可读存储介质

Also Published As

Publication number Publication date
CN112559547B (zh) 2023-09-19

Similar Documents

Publication Publication Date Title
CN113364877B (zh) 数据处理方法、装置、电子设备和介质
US9563719B2 (en) Self-monitoring object-oriented applications
CN114090113B (zh) 数据源处理插件动态加载的方法、装置、设备及存储介质
CN113391767B (zh) 数据一致性的校验方法、装置、电子设备及可读存储介质
CN113254267B (zh) 分布式数据库的数据备份方法和装置
CN116701053B (zh) 生产环境数据库的数据备份恢复方法、装置、设备及介质
CN112559547B (zh) 确定多存储对象副本之间一致性的方法及装置
US20210365406A1 (en) Method and apparatus for processing snapshot, device, medium and product
CN115454971A (zh) 数据迁移方法、装置、电子设备及存储介质
CN114417070A (zh) 数据权限的收敛方法、装置、设备以及存储介质
CN113326038A (zh) 用于提供服务的方法、装置、设备、存储介质及程序产品
CN112148705A (zh) 数据迁移的方法和装置
US20210286680A1 (en) Method, electronic device and computer program product for storage management
CN114327271B (zh) 生命周期的管理方法、装置、设备以及存储介质
CN117131071B (zh) 一种数据处理方法、装置、电子设备及计算机可读介质
CN114780021B (zh) 副本修复方法、装置、电子设备及存储介质
CN113760765B (zh) 代码测试方法、装置、电子设备和存储介质
CN116244324B (zh) 任务数据关系挖掘方法、装置、电子设备及存储介质
CN115757452A (zh) 一种封锁方法、装置、设备及存储介质
CN117370354A (zh) 元数据树的快照、查询方法、装置及电子设备
CN116069764A (zh) 数据校验方法、装置、电子设备和存储介质
CN113377402A (zh) 多版本并发存储方法和装置
CN117539385A (zh) 存储集群的数据处理方法、装置、设备及存储介质
CN117082046A (zh) 数据上传方法、装置、设备及存储介质
CN115639966A (zh) 一种数据写入方法、装置、终端设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant