一种集群数据库在断电或宕机时保证数据一致性的方法技术

技术编号:27975577 阅读:42 留言:0更新日期:2021-04-06 14:09
本发明专利技术创造提供了一种集群数据库在断电或宕机时保证数据一致性的方法,包括以下步骤:S1、集群Coordinator接收用户的DML操作;S2、向一致性服务gcware注册Failover信息;S3、向计算单元发送DML任务;S4、计算单元处理过程中Coordinator宕机;S5、触发Failover;S6、进行一致性服务;S7、选择新的coordinator接管;S8、判断各计算单元状态;S9、回滚目标表数据;S10、释放目标表排它锁。本发明专利技术创造有益效果:一种集群数据库在断电或宕机时保证数据一致性的方法在意外发生时保证了数据库的数据正确,保持了目标表数据在各计算单元的数据一致,避免出现严重的数据问题。

【技术实现步骤摘要】
一种集群数据库在断电或宕机时保证数据一致性的方法
本专利技术创造属于大数据领域,尤其是涉及一种集群数据库在断电或宕机时保证数据一致性的方法。
技术介绍
在集群数据库中用户可以通过命令行、ODBC、JDBC接口访问集群数据库的任意coordinator节点。DML为数据操作SQL,目的是修改目标表的数据。发送DML命令到coordinator节点执行,coordinator内部处理逻辑会把DML处理逻辑分发到各计算单元。各计算单元彼此独立,处理进度可能不同,整体进度由coordinator统一协调,从而保证整合DML执行过程有序和一致的。但是,在DML执行过程中可能会出现宿主机宕机等异常现象,中断DML在coordinator的执行逻辑,导致失去对计算单元的协调能力,可能会导致目标表数据在各计算单元的数据不一致,出现严重的数据问题。专利技术创造内容有鉴于此,本专利技术创造旨在提出一种集群数据库在断电或宕机时保证数据一致性的方法,以解决上述问题中的不足之处。为达到上述目的,本专利技术创造的技术方案是这样实现的:第一方面本专利技术提供了一种集群数据库在断电或宕机时保证数据一致性的方法,包括以下步骤:S1、集群Coordinator接收用户的DML操作;S2、向一致性服务gcware注册Failover信息;S3、向计算单元发送DML任务;S4、计算单元处理过程中Coordinator宕机;S5、触发Failover;S6、进行一致性服务;S7、选择新的coordinator接管;S8、判断各计算单元状态;S9、回滚目标表数据;S10、释放目标表排它锁。执行步骤S1所述的集群Coordinator接收用户的DML操作之前申请目标表的排它锁,用于避免并发对相同目标表操作。步骤S2所述的向一致性服务gcware注册Failover信息,包括排它锁信息和目标表信息,用于保证通知一致性服务在coordinator发生宕机后,除非显示调用了相关解除接口,不能释放排它锁或者允许其它任务操作目标表,必须先触发Failover机制。第二方面本专利技术提供了一种电子设备,包括处理器以及与处理器通信连接,且用于存储所述处理器可执行指令的存储器,所述处理器用于执行上述第一方面所述的一种集群数据库在断电或宕机时保证数据一致性的方法。第三方面本专利技术提供了一种服务器,包括至少一个处理器,以及与所述处理器通信连接的存储器,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,以使所述至少一个处理器执行如第一方面所述的一种集群数据库在断电或宕机时保证数据一致性的方法。第四方面本专利技术提供了一种计算机可读取存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的一种集群数据库在断电或宕机时保证数据一致性的方法。相对于现有技术,本专利技术创造所述的一种集群数据库在断电或宕机时保证数据一致性的方法具有以下优势:本专利技术创造所述的一种集群数据库在断电或宕机时保证数据一致性的方法在意外发生时保证了数据库的数据正确,保持了目标表数据在各计算单元的数据一致,避免出现严重的数据问题。附图说明构成本专利技术创造的一部分的附图用来提供对本专利技术创造的进一步理解,本专利技术创造的示意性实施例及其说明用于解释本专利技术创造,并不构成对本专利技术创造的不当限定。在附图中:图1为本专利技术创造实施例所述的集群部署图示意图;图2为本专利技术创造实施例所述的处理流程图示意图。具体实施方式需要说明的是,在不冲突的情况下,本专利技术创造中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本专利技术创造。如图1和图2所示,一种集群数据库在断电或宕机时保证数据一致性的方法,包括以下步骤:S1、集群Coordinator接收用户的DML操作;S2、向一致性服务gcware注册Failover信息;S3、向计算单元发送DML任务;S4、计算单元处理过程中Coordinator宕机;S5、触发Failover;S6、进行一致性服务;S7、选择新的coordinator接管;S8、判断各计算单元状态;S9、回滚目标表数据;S10、释放目标表排它锁。执行步骤S1所述的集群Coordinator接收用户的DML操作之前申请目标表的排它锁,用于避免并发对相同目标表操作。步骤S2所述的向一致性服务gcware注册Failover信息,包括排它锁信息和目标表信息,用于保证通知一致性服务在coordinator发生宕机后,除非显示调用了相关解除接口,不能释放排它锁或者允许其它任务操作目标表,必须先触发Failover机制。一种电子设备,包括处理器以及与处理器通信连接,且用于存储所述处理器可执行指令的存储器,所述处理器用于执行上述一种集群数据库在断电或宕机时保证数据一致性的方法。一种服务器,包括至少一个处理器,以及与所述处理器通信连接的存储器,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,以使所述至少一个处理器执行一种集群数据库在断电或宕机时保证数据一致性的方法。一种计算机可读取存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现一种集群数据库在断电或宕机时保证数据一致性的方法。上述电子设备、服务器和计算机可读取存储介质的硬件部分采用现有技术,软件部分应用本专利技术所述的一种集群数据库在断电或宕机时保证数据一致性的方法。在具体实施过程中,集群部署图如图1所示,8aMPP实现了一种Failover机制解决了
技术介绍
中存在问题,应用于DML执行流程,处理流程图如图2所示,coordinator在执行DML之前首先申请目标表的排它锁,避免并发对相同目标表操作。之后,向一致性服务gcware注册failover信息,包括排它锁信息和目标表信息,目的在于通知一致性服务在coordinator发生宕机后,除非显示调用了相关解除接口,不能释放排它锁或者允许其它任务操作目标表,必须先触发Failover机制。当coordinator宕机后,一致性服务会第一时间检测到,立刻搜索正常的coordinator节点,并把注册信息传递给正常的coordinator,通知其完成后续处理任务。Failover处理逻辑会检测各计算单元当前执行状态,并针对当前状态对数据做回退处理,最终保证各计算单元的数据一致。在Failover完成后,立即释放排它锁,允许正常操作目标表。以下为对本专利技术中出现的英文的名词解释:1.DML:数据操纵语言(英文:DataManipulationLanguage,简称DML)是用于数据库操作,对数据库其中的对象和数据运行访问工作的编程语句。2.8aMPP:GBASE公司的分析型集群数据库。3.Coor本文档来自技高网
...

【技术保护点】
1.一种集群数据库在断电或宕机时保证数据一致性的方法,其特征在于,包括以下步骤:/nS1、集群Coordinator接收用户的DML操作;/nS2、向一致性服务gcware注册Failover信息;/nS3、向计算单元发送DML任务;/nS4、计算单元处理过程中Coordinator宕机;/nS5、触发Failover;/nS6、进行一致性服务;/nS7、选择新的coordinator接管;/nS8、判断各计算单元状态;/nS9、回滚目标表数据;/nS10、释放目标表排它锁。/n

【技术特征摘要】
1.一种集群数据库在断电或宕机时保证数据一致性的方法,其特征在于,包括以下步骤:
S1、集群Coordinator接收用户的DML操作;
S2、向一致性服务gcware注册Failover信息;
S3、向计算单元发送DML任务;
S4、计算单元处理过程中Coordinator宕机;
S5、触发Failover;
S6、进行一致性服务;
S7、选择新的coordinator接管;
S8、判断各计算单元状态;
S9、回滚目标表数据;
S10、释放目标表排它锁。


2.根据权利要求1所述的一种集群数据库在断电或宕机时保证数据一致性的方法,其特征在于:执行步骤S1所述的集群Coordinator接收用户的DML操作之前申请目标表的排它锁,用于避免并发对相同目标表操作。


3.根据权利要求1所述的一种集群数据库在断电或宕机时保证数据一致性的方法,其特征在于:步骤S2所述的向一致性服务gcware注册Fa...

【专利技术属性】
技术研发人员:赵伟李卓印姜骁刘秀鹏
申请(专利权)人:天津南大通用数据技术股份有限公司
类型:发明
国别省市:天津;12

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

1