1 .一种保证分布式数据库DDL语句原子性的方法,其特征在于,包括:
若计算节点接收到来自于客户端的DDL语句,确定所述DDL语句的DDL执行计划,所述
DDL执行计划包括一个或多个DDL执行状态;
数据节点确定执行所述DDL语句所涉及的目标资源;
在计算节点按照所述DDL执行计划执行所述DDL语句的过程中,若当前执行状态为预加
锁状态,数据节点对所述目标资源进行预加锁处理。
2 .根据权利要求1所述的保证分布式数据库DDL语句原子性的方法,其特征在于,在当
前执行状态为预加锁状态之前,所述方法还包括:
若当前执行状态为初始化状态,初始化执行所述DDL语句所涉及的数据结构,以供后续
使用;
若当前执行状态为准备状态,数据节点为执行所述DDL语句准备系统资源;
在当前执行状态为预加锁状态之后,所述方法还包括:
若当前执行状态为提交状态,数据节点对执行DDL语句产生的事务进行提交以及数据
进行落盘;
若当前执行状态为结束状态,数据节点进行元数据的推送。
3 .根据权利要求2所述的保证分布式数据库DDL语句原子性的方法,其特征在于,在当
前执行状态为预加锁状态之后,所述方法还包括:
若当前执行状态为解锁状态,数据节点解除对所述目标资源的预加锁,并为下一次对
所述目标资源进行预加锁处理做准备;
在当前执行状态为提交状态之后,所述方法还包括:
若当前执行状态为回滚状态,数据节点对所述目标资源进行解锁处理,并清除为执行
所述DDL语句准备的系统资源;
若当前执行状态为反转状态,数据节点执行DDL语句的反语句。
4 .根据权利要求3所述的保证分布式数据库DDL语句原子性的方法,其特征在于,所述
方法还包括:
在当前执行状态为准备状态,若在数据节点准备系统资源过程中部分数据节点执行失
败,计算节点将当前执行状态切换为回滚状态,执行成功的数据节点清除为执行所述DDL语
句准备的系统资源;
若在数据节点为执行所述DDL语句准备系统资源过程中全部数据节点执行失败,计算
节点将当前执行状态切换为结束状态,数据节点自动清除准备的系统资源。
5 .根据权利要求3所述的保证分布式数据库DDL语句原子性的方法,其特征在于,所述
方法还包括:
在当前执行状态为预加锁状态,若在数据节点对所述目标资源进行预加锁处理过程中
部分数据节点执行成功,计算节点将当前执行状态切换为解锁状态,执行成功的数据节点
对目标资源进行解锁,解锁成功后,计算节点将当前执行状态切换为预加锁状态,在预设时
间段后,数据节点再次对所述目标资源进行预加锁处理,若数据节点对所述目标资源进行
预加锁处理的重试次数超过预设次数阈值,计算节点将当前执行状态切换为回滚状态,数
据节点清除为执行所述DDL语句准备的系统资源。
6 .根据权利要求3所述的保证分布式数据库DDL语句原子性的方法,其特征在于,所述
权 利 要 求 书
1/2 页
2
相关文档
评论