分布式数据库的管理方法、装置、节点及分布式数据库制造方法及图纸

技术编号:36539982 阅读:18 留言:0更新日期:2023-02-01 16:35
本说明书实施例提供了一种分布式数据库的管理方法、装置、节点及分布式数据库。在接收到针对分布式数据库中的目标数据表的清空命令后,在目标数据表中记录清空命令标识信息,用于指示执行清空命令后目标数据表的版本。用户对目标数据表下发其他命令时,也可以在命令中携带版本相关信息,如果此时节点基于其他命令中携带的标识信息查找到的还是目标数据表的原表,则可以根据命令中携带的版本相关信息和原表中记录的清空命令标识信息的比对结果,确定该命令指向的是原表还是目标数据表对应的新表,以便可以在正确版本的数据表中执行相关的操作。关的操作。关的操作。

【技术实现步骤摘要】
分布式数据库的管理方法、装置、节点及分布式数据库


[0001]本说明书实施例涉及分布式数据库
,尤其涉及一种分布式数据库的管理方法、装置、节点及分布式数据库。

技术介绍

[0002]分布式数据库通常包括多个节点,针对同一个数据表中的数据,可以划分成多个数据分区,然后将各个数据分区存储在不同节点中。当用户下发清空分布式数据库中某个数据表的清空命令时,由于各个节点接收到清空命令的时延不同,因而,可能同一时刻,各个节点看到的该数据表的状态不一样,比如,有些节点看到的是清空前的数据表,有的节点看到的是清空后的数据表。此时,如果在清空命令前后较短时间内,节点接收到了其他的命令,比如,查询命令或者更新命令,那么对这些命令的处理会出现问题。

技术实现思路

[0003]为克服相关技术中存在的问题,本说明书实施例提供了一种分布式数据库的管理方法、装置、节点及分布式数据库。
[0004]根据本说明书实施例的第一方面,提供一种分布式数据库的管理方法,所述方法用于分布式数据库中的节点,所述方法包括:
[0005]获取对所述分布式数据库中的待操作数据表执行目标操作的命令,所述命令中携带所述待操作数据表的标识信息,以及版本相关信息;
[0006]确定与所述标识信息匹配的目标数据表,在所述目标数据表中记录有清空命令标识信息的情况下,基于所述清空命令标识信息与所述版本相关信息的比对结果,判定所述目标数据表是否为所述待操作数据表,其中,所述清空命令标识信息在接收到针对所述目标数据表的清空命令后记录,用于指示执行所述清空命令后所述目标数据表对应的版本;
[0007]基于判定结果执行所述命令,并返回执行结果。
[0008]根据本说明书实施例的第二方面,提供一种分布式数据库的管理方法,所述方法适用于存储有目标数据表的数据分区的节点,所述方法包括:
[0009]接收分布式事务请求,所述分布式事务请求在接收到针对所述目标数据表的清空命令后生成;
[0010]执行所述分布式事务请求指示的分布式事务,其中,所述分布式事务包括依次执行的以下操作:将所述目标数据表设置成加锁状态、删除所述目标数据表、创建用于替换所述目标数据表的新表、在所述目标数据表中记录清空命令标识信息、解除所述目标数据表的加锁状态,其中,所述清空命令标识信息用于指示执行所述清空命令后所述目标数据表对应的版本,所述目标数据表处于加锁状态时,不允许执行对所述目标数据表的更新操作;
[0011]在所述分布式事务中包括的所有操作均执行成功的情况下,提交执行结果;
[0012]在所述分布式事务中包括的任一操作未执行成功的情况下,回滚所述分布式事务。
[0013]根据本说明书实施例的第三方面,提供一种分布式数据库的管理方法,所述方法包括:
[0014]接收客户端发送的清空目标数据表的清空命令;
[0015]基于所述清空命令创建一个分布式事务,其中,所述分布式事务包括依次执行的以下操作:将所述目标数据表设置成加锁状态、删除所述目标数据表、创建用于替换所述目标数据表的新表、在所述目标数据表中记录所述清空命令标识信息、解除所述目标数据表的加锁状态,其中,所述清空命令标识信息用于指示执行所述清空命令后所述目标数据表对应的版本,所述目标数据表处于加锁状态时,不允许执行对所述目标数据表的更新操作;
[0016]向存储有所述目标数据表的数据分区的节点下发分布式事务请求,以使所述存储有所述目标数据表的数据分区的节点执行所述分布式事务。
[0017]根据本说明书实施例的第四方面,提供一种分布式数据库的管理装置,所述管理装置用于分布式数据库中的节点,所述管理装置包括:
[0018]获取模块,用于获取对所述分布式数据库中的待操作数据表执行目标操作的命令,所述命令中携带所述待操作数据表的标识信息,以及版本相关信息;
[0019]判定模块,用于确定与所述标识信息匹配的目标数据表,在所述目标数据表中记录有清空命令标识信息的情况下,基于所述清空命令标识信息与所述版本相关信息的比对结果,判定所述目标数据表是否为所述待操作数据表,其中,所述清空命令标识信息在接收到针对所述目标数据表的清空命令后记录,用于指示执行所述清空命令后所述目标数据表对应的版本;
[0020]执行模块,用于基于判定结果执行所述命令,并返回执行结果。
[0021]根据本说明书实施例的第五方面,提供一种分布式数据库的节点,所述节点包括:
[0022]存储器,用于存储可执行的计算机指令;
[0023]处理器,用于执行所述计算机指令时实现上述第一方面、第二方面或第三方面提及的方法。
[0024]根据本说明书实施例的第六方面,提供一种分布式数据库,所述分布式数据库包括上述第五方面提及的节点。
[0025]本说明书实施例的有益效果:在接收到针对分布式数据库中的目标数据表的清空命令后,在目标数据表中记录清空命令标识信息,用于标记执行该清空命令后目标数据表对应的版本。用户对目标数据表下发其他命令时,也可以在命令中携带版本相关信息,如果此时节点基于其他命令中携带的标识信息查找到的还是目标数据表的原表,则可以根据命令中携带的版本相关信息和原表中记录的清空命令标识信息的比对结果,确定该命令指向的是原表还是目标数据表对应的新表,以便可以在正确版本的数据表中执行相关的操作,从而可以避免因节点看到的目标数据表的版本和命令指向的目标数据表的版本不一致,造成节点在错误的版本中执行相关操作的问题。
[0026]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。
附图说明
[0027]此处的附图被并入说明书中并构成本说明书实施例的一部分,示出了符合本说明
书实施例的实施例,并与说明书一起用于解释本说明书实施例的原理。
[0028]图1为本说明书一示例性实施例示出的一种分布式数据库的示意图;
[0029]图2为本说明书一示例性实施例示出的一种分布式数据库的管理方法的流程图;
[0030]图3为本说明书一示例性实施例示出的一种对分布式数据库中的数据表执行命令的示意图;
[0031]图4为本说明书一示例性实施例示出的一种对分布式数据库中的数据表执行查询命令的示意图;
[0032]图5为本说明书一示例性实施例示出的一种对分布式数据库中的数据表执行更新命令的示意图;
[0033]图6为本说明书一示例性实施例示出的Oceanbase分布式数据库的示意图;
[0034]图7为本说明书一示例性实施例示出的分布式数据库的管理装置的逻辑框图;
[0035]图8为本说明书一示例性实施例示出的一种分布式数据库的节点的结构逻辑框图。
具体实施方式
[0036]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式数据库的管理方法,所述方法用于分布式数据库中的节点,所述方法包括:获取对所述分布式数据库中的待操作数据表执行目标操作的命令,所述命令中携带所述待操作数据表的标识信息,以及版本相关信息;确定与所述标识信息匹配的目标数据表,在所述目标数据表中记录有清空命令标识信息的情况下,基于所述清空命令标识信息与所述版本相关信息的比对结果,判定所述目标数据表是否为所述待操作数据表,其中,所述清空命令标识信息在接收到针对所述目标数据表的清空命令后记录,用于指示执行所述清空命令后所述目标数据表对应的版本;基于判定结果执行所述命令,并返回执行结果。2.根据权利要求1所述的方法,所述基于判定结果执行所述命令,并返回执行结果,包括:如果判定所述目标数据表为所述待操作数据表,则在所述目标数据表中执行所述目标操作;如果判定所述目标数据表不是所述待操作数据表,则将所述目标数据表对应的新表确定为所述待操作数据表,并在所述新表中执行所述目标操作,其中,所述新表为在接收到所述清空命令后,生成的用于替换所述目标数据表的数据表。3.根据权利要求1或2所述的方法,所述命令包括对所述待操作数据表执行查询操作的查询命令,所述版本相关信息包括所述查询命令对应的时间戳,所述清空命令标识信息包括接收到所述清空命令时的时间戳;基于所述清空命令标识信息与所述版本相关信息的比对结果,判定所述目标数据表是否为所述待操作数据表,包括:在所述查询命令对应的时间戳小于接收到所述清空命令时的时间戳的情况下,确定所述目标数据表为所述待操作数据表;在所述查询命令对应的时间戳不小于接收到所述清空命令时的时间戳的情况下,将所述目标数据表对应的新表确定为所述待操作数据表。4.根据权利要求1或2所述的方法,所述命令包括对所述待操作数据表执行更新操作的更新命令,所述版本相关信息包括所述待操作数据表的表结构版本号,所述清空命令标识信息包括所述目标数据表的表结构版本号,其中,在接收到针对分布式数据库中的数据表的清空命令后,该数据表的表结构版本号会发生变化;所述基于所述清空命令标识信息与所述版本相关信息的比对结果,判定所述目标数据表是否为所述待操作数据表,包括:在待操作数据表的表结构版本号小于所述目标数据表的表结构版本号的情况下,将所述目标数据表对应的新表确定为所述待操作数据表。5.根据权利要求1所述的方法,所述命令包括对所述待操作数据表执行更新操作的更新命令,所述方法还包括:在判定所述目标数据表处于加锁状态的情况下,暂停处理所述更新命令;其中,在接收到针对所述目标数据表的清空命令后,所述目标数据表被设置成加锁状态。6.根据权利要求1所述的方法,所述节点为存储有所述目标数据表的数据分区的节点,所述方法还包括:
接收分布式事务请求;执行所述分布式事务请求指示的分布式事务,其中,所述分布式事务包括依次执行的以下操作:将所述目标数据表设置成加锁状态、删除所述目标数据表、创建用于替换所述目标数据表的新表、在所述目标数据表中记录所述清空命令标识信息、解除所述目标数据表的加锁状态;在所述分布式事务中包括的所有操作均执行成功的情况下,提交执行结果;在所述分布式事务中包括的任一操作未执行成功的情况下,回滚所述分布式事务。7.根据权利要求6所述的方法,在将所述目标数据表设置成加锁状态之前,还包括:判定当前是否存在针对所述目标数据表的更新操作;如果存在,则待所述更新操作完成后将所述目标数据表设置成加锁状态。8.根据权利要求1所述的方法,所述方法还包括:接收客户端发送的清空目标数据表的清空命令;基于所述清空命令创建...

【专利技术属性】
技术研发人员:谢振江赵裕众
申请(专利权)人:北京奥星贝斯科技有限公司
类型:发明
国别省市:

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

1