本技术涉及数据库,具体而言,本技术涉及一种元数据的校验方法、装置、电子设备及存储介质。
背景技术:
1、目前,分布式集群中的每个元数据(比如,数据库中的库、库中的表、表中的列都属于元数据)在分布式集群的每个节点上都有一个唯一标识,称之为oid(object id),该标识只能在当前节点内保证元数据是唯一的。然而,同一个元数据存在于多个节点中,通过oid无法确保其在不同节点间的唯一性,也即,通过各个节点上的oid是无法保证元数据在各个节点上的一致性。
2、在分布式集群的一次访问过程中,通常会涉及到多个节点,若各个节点上的元数据无法保持一致,则会导致访问失败。
3、因此,如何确保各个节点上的元数据的一致性是需要解决的问题。
技术实现思路
1、本技术实施例的目的旨在能解决上述技术问题之一。
2、第一方面,本技术实施例提供了一种元数据的校验方法,应用于分布式集群中的目标协调节点,分布式集群包括多个不同类型的节点,每类节点均用于存储数据库的元数据、元数据在分布式集群中相同的全局序列号,以及元数据在节点中的版本号,该方法包括:
3、接收输入的校验指令,并根据校验指令确定待校验的第一节点的节点标识和第一元数据的全局序列号,校验指令指示校验第一元数据在第一节点中的版本号。根据校验指令的类型确定第一元数据的第一版本号。向第一节点发送第一获取请求,第一获取请求包括第一元数据的全局序列号,第一获取请求用于获取第一元数据在第一节点中的第二版本号。接收第一节点反馈的第一元数据的第二版本号。校验第一元数据的第一版本号和第二版本号是否一致。
4、可选的,校验指令为包括数据操作语句的指令,数据操作语句用于操作数据库中第一元数据关联的数据;分布式集群包括数据节点,数据节点用于接收协调节点发送的执行计划,并处理执行计划。
5、其中,根据校验指令的类型确定第一元数据的第一版本号,包括:
6、根据数据操作语句创建执行计划,执行计划包括元数据集,执行计划由多个数据节点协同执行。将元数据集中的元数据作为第一元数据,将执行计划相应的每个数据节点作为第一节点。对于元数据集中的每个第一元数据,根据数据操作语句中第一元数据的对象标识,获得第一元数据的全局序列号,并根据第一元数据的全局序列号,从本地缓存中获取第一元数据的第一版本号。
7、可选的,根据校验指令的类型确定第一元数据的第一版本号,之后还包括:
8、将每个第一元数据的第一版本号和全局序列号添加至执行计划。对于每个第一节点,向第一节点发送执行计划,并指示第一节点在处理执行计划之前获得每个第一元数据的校验结果,校验结果包括相应的第一元数据的第一版本号和第二版本号是否一致,第二版本号为相应的第一元数据在第一节点中的版本号。接收各个第一节点反馈的每个第一元数据的校验结果。
9、可选的,校验指令为基于预设校验接口创建的指令,校验指令包括多个节点和多个元数据,以及每个元数据的全局序列号;
10、其中,根据校验指令的类型确定第一元数据的第一版本号,包括:
11、将校验指令中的每个节点确定为第一节点,以及每个元数据确定为第一元数据。对于每个第一元数据,向全局事务管理节点发送第二获取请求,第二获取请求包括第一元数据的全局序列号。接收全局事务管理节点反馈的第一元数据的版本号,并作为第一元数据的第一版本号。
12、可选的,该方法还包括:
13、接收输入的数据定义请求。解析数据定义请求,获得数据定义语句,数据定义语句包括第一数据定义语句和第二数据定义语句,第一数据定义语句指示创建元数据,第二数据定义语句指示更新元数据。向分布式集群中的每个节点发送数据定义语句,以指示每个节点在更新元数据之后,更新数据定义语句关联的元数据的版本号。
14、第二方面,本技术实施例还提供了一种元数据的校验方法,应用于分布式集群中的第一节点,第一节点为分布式集群中的任一类型的节点,该方法包括:
15、接收分布式集群中的目标协调节点发送的第一获取请求,第一获取请求包括第一元数据的全局序列号。从缓存中获取与第一元数据的全局序列号对应的版本号,并作为第一元数据的第二版本号。向目标协调节点反馈第一元数据的第二版本号,以使得目标协调节点校验第一元数据的第一版本号和第二版本号是否一致。
16、可选的,接收分布式集群中的目标协调节点发送的第一获取请求,之前还包括:
17、接收目标协调节点发送的第一数据定义语句,第一数据定义语句包括待创建的元数据的第一对象标识。向全局事务管理节点发送第三获取请求,第三获取请求包括第一对象标识。接收全局事务管理节点根据第一对象标识反馈的全局序列号。执行第一数据定义语句,获得与第一对象标识对应的已创建的元数据。将全局事务管理节点反馈的全局序列号作为已创建的元数据的标识,并创建已创建的元数据初始的版本号。对应存储已创建的元数据的全局序列号和初始的版本号。
18、可选的,若第一节点为全局事务管理节点,还包括:
19、接收分布式集群中的第二节点发送的第三获取请求,第二节点为分布式集群中的任一节点,第三获取请求包括待创建的元数据的第一对象标识。根据第一对象标识查询缓存的分配记录,每条分配记录是基于一个对象标识分配一个全局序列号的记录,获得第一查询结果。若第一查询结果为空,则查询未分配的全局序列号,获得第二查询结果。若第二查询结果为空,则创建预设数量的全局序列号,并从已创建的全局序列号中确定一个全局序列号。向第二节点反馈确定的全局序列号。
20、可选的,该方法包括:
21、接收目标协调节点发送的第二数据定义语句,并执行第二数据定义语句,第二数据定义语句包括待更新的元数据的第二对象标识。根据第二对象标识获得待更新的元数据的全局序列号,并根据待更新的元数据的全局序列号查询本地缓存,获得待更新的元数据的版本号。根据待更新的元数据的版本号创建新的版本号,并对应存储待更新的元数据的全局序列号和新的版本号。
22、可选的,若第一节点为数据节点,还包括:
23、接收目标协调节点发送的执行计划,执行计划包括第一元数据的第一版本号和全局序列号。根据第一元数据的全局序列号获取到第一元数据的第二版本号。校验第一元数据的第一版本号和第二版本号是否一致,获得第一元数据的校验结果。向目标协调节点反馈第一元数据的校验结果。
24、第三方面,本技术实施例还提供了一种元数据的校验装置,应用于分布式集群中的目标协调节点,分布式集群包括多个不同类型的节点,每类节点均用于存储数据库的元数据、元数据在分布式集群中相同的全局序列号,以及元数据在节点中的版本号,装置包括:
25、收发模块,用于接收输入的校验指令,并根据校验指令确定待校验的第一节点的节点标识和第一元数据的全局序列号,校验指令指示校验第一元数据在第一节点中的版本号。
26、确定模块,用于根据校验指令的类型确定第一元数据的第一版本号。
27、收发模块,用于向第一节点发送第一获取请求,第一获取请求包括第一元数据的全局序列号,第一获取请求用于获取第一元数据在第一节点中的第二版本号。
28、收发模块,用于接收第一节点反馈的第一元数据的第二版本号。
29、校验模块,用于校验第一元数据的第一版本号和第二版本号是否一致。
30、第四方面,本技术实施例还提供了一种元数据的校验装置,应用于分布式集群中的第一节点,第一节点为分布式集群中的任一类型的节点,装置包括:
31、收发模块,用于接收分布式集群中的目标协调节点发送的第一获取请求,第一获取请求包括第一元数据的全局序列号。
32、获取模块,用于从缓存中获取与第一元数据的全局序列号对应的版本号,并作为第一元数据的第二版本号。
33、收发模块,用于向目标协调节点反馈第一元数据的第二版本号,以使得目标协调节点校验第一元数据的第一版本号和第二版本号是否一致。
34、第五方面,本技术实施例还提供了一种电子设备,该电子设备包括:存储器、处理器及存储在存储器上的计算机程序,其特征在于,处理器执行计算机程序以实现一种元数据的校验方法的步骤。
35、第六方面,本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,计算机程序被处理器执行时实现一种元数据的校验方法的步骤。
36、本技术实施例提供的技术方案带来的有益效果是:
37、分布式集群中的节点存储数据库的多个元数据对象,每个元数据对象包括一个分布式集群中各节点上保持相同的全局序列号,以及在各个节点上的版本号,通过设置全局序列号的操作,可确保基于全局序列号实现对每个元数据在各个节点上的版本号的统一管理。因此,在接收到校验指令之后,可以根据校验指令确定要校验的第一节点、第一元数据,以及第一元数据的全局序列号和第一版本号。进一步地,根据每个第一元数据的全局序列号获得各个第一元数据在第一节点中的第二版本号。进一步地,校验第一元数据的第一版本号和第二版本号是否一致。当第一节点的数量为多个时,可以实现对第一元数据在多个节点上的版本号是否一致的校验。进一步地,可基于校验结果的指导确定是否可以正常使用数据库。比如,若校验结果为一致,则可以正常执行sql语句。若校验结果为不一致,则需要对分布式集群中的各个节点上的第一元数据进行修理。
1.一种元数据的校验方法,其特征在于,应用于分布式集群中的目标协调节点,所述分布式集群包括多个不同类型的节点,每类节点均用于存储数据库的元数据、所述元数据在所述分布式集群中相同的全局序列号,以及所述元数据在所述节点中的版本号,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述校验指令为包括数据操作语句的指令,所述数据操作语句用于操作所述数据库中第一元数据关联的数据;
3.根据权利要求2所述的方法,其特征在于,所述根据所述校验指令的类型确定所述第一元数据的第一版本号,之后还包括:
4.根据权利要求2所述的方法,其特征在于,所述校验指令为基于预设校验接口创建的指令,所述校验指令包括多个节点和多个元数据,以及每个元数据的全局序列号;
5.根据权利要求1所述的方法,其特征在于,还包括:
6.一种元数据的校验方法,其特征在于,应用于分布式集群中的第一节点,所述第一节点为所述分布式集群中的任一类型的节点,所述方法包括:
7.根据权利要求6所述的方法,其特征在于,接收所述分布式集群中的目标协调节点发送的第一获取请求,之前还包括:
8.根据权利要求6所述的方法,其特征在于,若所述第一节点为全局事务管理节点,还包括:
9.根据权利要求6所述的方法,其特征在于,还包括:
10.根据权利要求6所述的方法,其特征在于,若所述第一节点为数据节点,还包括:
11.一种元数据的校验装置,其特征在于,应用于分布式集群中的目标协调节点,所述分布式集群包括多个不同类型的节点,每类节点均用于存储数据库的元数据、所述元数据在所述分布式集群中相同的全局序列号,以及所述元数据在所述节点中的版本号,所述装置包括:
12.一种元数据的校验装置,其特征在于,应用于分布式集群中的第一节点,所述第一节点为所述分布式集群中的任一类型的节点,所述装置包括:
13.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-5或者6-10任一项所述方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-5或者6-10任一项所述方法的步骤。
