1 .一种数据定义语言的处理方法,由分布式数据库系统中的计算节点以及数据节点配
合执行,其特征在于,包括:
通过计算节点,在接收到应用侧发送的数据定义语言DDL指令之后,向分布式数据库系
统中的各数据节点发送准备请求,并在确定满足第二阶段或第三阶段启动条件时,向各数
据节点下发锁获取请求或提交请求;
通过数据节点,当接收到所述准备请求时,进入第一阶段操作,并将第一阶段的操作结
果发送至计算节点;
通过数据节点,当接收到所述锁获取请求时,申请目标表的写锁,并在写锁申请成功之
后,向计算节点发送第二阶段完成消息;
通过数据节点,当接收到所述提交请求时,执行目标表的提交操作,并在完成提交之
后,向计算节点发送第三阶段完成消息。
2 .根据权利要求1所述的方法,其特征在于,通过数据节点,当接收到所述准备请求时,
进入第一阶段操作,并将第一阶段的操作结果发送至计算节点,包括:
通过数据节点,当接收到所述准备请求时,申请目标表的写锁,当确定成功申请写锁
时,向计算节点返回第一完成消息;
通过数据节点,当接收到计算节点发送的执行指令时,对写锁进行降级,并执行DDL操
作,在确定DDL操作执行完成之后,向计算节点返回第二完成消息。
3 .根据权利要求2所述的方法,其特征在于,在通过数据节点,当接收到所述准备请求
时,申请目标表的写锁,当确定成功申请写锁时,向计算节点返回第一完成消息之后,还包
括:
通过计算节点,判断在第一时间周期内,是否收到全部数据节点返回的第一完成消息;
通过计算节点,若是,则向各数据节点发送执行指令;通过计算节点,若否,则通知各数
据节点执行数据节点回滚操作;
在通过数据节点,当接收到计算节点发送的执行指令时,对写锁进行降级,并执行DDL
操作,在确定DDL操作执行完成之后,向计算节点返回第二完成消息之后,还包括:
通过计算节点,判断在第二时间周期内,是否收到全部数据节点返回的第二完成消息;
通过计算节点,若是,则确定满足第二阶段启动条件,向各数据节点发送发锁获取请
求;通过计算节点,若否,则通知各数据节点执行数据节点回滚操作。
4 .根据权利要求1‑3任一项所述的方法,其特征在于,还包括:
通过数据节点,当任一操作执行失败时,向所述计算节点返回执行失败结果;
所述方法,还包括:
通过数据节点,当确定持有写锁的时间超过预设的时间阈值时,自动释放写锁。
5 .根据权利要求4所述的方法,其特征在于,在通过数据节点,当接收到所述锁获取请
求时,申请目标表的写锁,并在写锁申请成功之后,向计算节点发送第二阶段完成消息之
后,还包括:
通过计算节点,判断是否满足下述任一条件:接收到任一数据节点返回的执行失败结
果;以及,在第三时间周期内,没有接收到全部数据节点返回的第二阶段完成消息;
通过计算节点,若是,则通知各数据节点释放写锁,并在各数据节点释放之后,向各数
据节点重复下发锁获取请求,直至满足结束条件或各数据节点均返回第二阶段完成消息;
权 利 要 求 书
1/2 页
2
评论