公开/公告号CN103902568A
专利类型发明专利
公开/公告日2014-07-02
原文格式PDF
申请/专利权人 中国银联股份有限公司;
申请/专利号CN201210577596.2
申请日2012-12-27
分类号G06F17/30;
代理机构中国专利代理(香港)有限公司;
代理人郑冀之
地址 200135 上海市浦东新区含笑路36号银联大厦
入库时间 2023-12-16 23:56:12
法律状态公告日
法律状态信息
法律状态
2017-05-31
授权
授权
2014-07-30
实质审查的生效 IPC(主分类):G06F17/30 申请日:20121227
实质审查的生效
2014-07-02
公开
公开
技术领域
本发明涉及数据库同步技术,并且尤其涉及基于数据划分的多节点数据库同步方法以及多节点数据库系统。
背景技术
随着数据库读写压力的增大,单节点的数据库已经无法承担大数据量下的业务承载,多节点的分布式数据库设计日渐普及。在多节点数据库应用中,节点之间的数据同步是关键性的设计问题。
在多节点数据库设计的早期,通常采用读写分离的方式来实现数据库同步。对于数据库系统而言,通常来讲,写操作少,读操作多,因此该设计方案为一个写数据库,多个读数据库,由写数据库向多个读数据库进行单向同步。
基于这种数据库同步方法的架构如图1所示。这种架构实现了分布式的读操作,单点单向同步保证了数据的一致性,在数据量还不大的情况下很好的适应了业务需要,但伴随着写操作的日益增加,作为单点的写数据库成为了系统性能的瓶颈。
为了解决这个问题,新的多节点数据库采用了多向同步的设计,应用程序可以自由读写不同的数据库节点。各个数据库节点之间采用特定的同步算法实现数据同步。基于这种数据库同步方法的架构如图2所示。
图2所示的架构的难点是需要设计一个快速的同步算法,并且能够满足数据一致性的要求,在分布式计算的早期,由于算法的缺失,这种架构很难实现,而现在有了Paxos算法后,该架构的实现成为可能,但Paxos算法本身过于复杂。
因此,需要实现一种更简单的多节点数据库同步的方法和这样的多节点数据库。
发明内容
根据本发明的一个目的,公开一种基于数据划分的多节点数据库同步方法,将待写入的数据根据数据划分信息写入相应的数据库节点,将被写入到特定数据库节点中的属于特定数据划分的数据单向同步到其余数据库节点。
优选地,设置前置模块,在该前置模块内配置数据划分信息,通过该前置模块向数据库节点写入数据,其中,该前置模块根据数据划分信息将待写入的数据写入相应的数据库节点。
优选地,为每个数据库节点配置对应的前置模块,为每个前置模块配置数据划分信息,所述数据划分信息指定每个数据库节点的写入数据范围,当通过前置模块向其对应的数据库节点写入数据时,该前置模块根将属于其对应的数据库节点的写入数据范围的数据写入其对应的数据库节点;以及将不属于其对应的数据库节点的写入数据范围的数据转发给相应的前置模块,并且被转发的数据由该相应的前置模块写入其对应的数据库节点。
根据本发明的另一个目的,公开一种基于数据划分的多节点数据库系统,该系统被配置为将待写入的数据基于数据划分信息写入相应的数据库节点,该系统进一步被配置为将写入到特定数据库节点中的属于特定数据划分的数据单向同步到其余数据库节点。
优选地,该系统包括前置模块,在该前置模块内配置数据划分信息,该系统被配置为通过该前置模块向数据库节点写入数据,其中,该前置模块根据数据划分信息将待写入的数据写入相应的数据库节点。
优选地,每个数据库节点配置有对应的前置模块,每个前置模块配置有数据划分信息,所述数据划分信息指定每个数据库节点的写入数据范围,该系统被配置为当通过前置模块向其对应的数据库节点写入数据时,该前置模块根将属于其对应的数据库节点的写入数据范围的数据写入其对应的数据库节点;以及将不属于其对应的数据库节点的写入数据范围的数据转发给相应的前置模块,并且该相应的前置模块将被转发的数据写入其对应的数据库节点。
本发明的一个优势在于,解决了在早期的分布式多节点数据库中,负责写操作的节点压力过大的问题,避免了只有一个数据库节点可以写入的缺陷。
本发明的另一个优势在于,避免了现有的多向数据同步算法过于复杂的问题。虽然每一个数据节点都在发生数据同步,但对于特定某一个划分的数据,其同步始终是单向的,所以不会发生一致性混乱的问题。
附图说明
在参照附图阅读了本发明的具体实施方式以后,本领域技术人员将会更清楚地了解本发明的各个方面。本领域技术人员应当理解的是,这些附图仅仅用于配合具体实施方式说明本发明的技术方案,而并非意在对本发明的保护范围构成限制。其中,
图1是现有技术中的多节点数据库同步示意图。
图2是现有技术中的另一多节点数据库同步示意图。
图3是根据本发明实施例的基于数据划分的多节点数据库同步方法步骤示意图。
图4是根据本发明实施例的基于数据划分的多节点数据库同步示意图。
具体实施方式
下面参照附图,对本发明的具体实施方式作进一步的详细描述。在下面的描述中,为了解释的目的,陈述许多具体细节以便提供对实施例的一个或多个方面的透彻理解。然而,对于本领域技术人员可以显而易见的是,可以这些具体细节的较少程度来实践各实施例的一个或多个方面。因此下面的描述不被视为局限性的,而是通过所附权利要求来限定保护范围。
可以各种形式来实施所概括的各个方面。下面的描述借助于图解显示了可实践各方面的各种组合和构造。应当理解的是,所描述的各方面和/或实施例仅仅是实例,并且可采用其他方面和/或实施例,且在不背离本公开的范围的情况下可做出结构的和功能的修改。
另外,尽管可以仅关于若干实施方式中的一个公开了实施例的特定特征或方面,但可针对任何给定的或特定的应用所期望和有利的那样,这种特征或方面可与其他实施方式的一种或多个其他特征或方面相组合。
图3是根据本发明实施例的基于数据划分的多节点数据库同步方法步骤示意图。
如图所示,在步骤S1中,将待写入的数据根据数据划分信息写入相应的数据库节点。
在步骤S2中,将被写入到特定数据库节点中的属于特定数据划分的数据单向同步到其余数据库节点。
在该实施例中,数据划分信息可以作为各个数据库节点的写入策略,通过步骤S1使得属于某个特定的数据划分的数据被写入特定的单一数据节点,从而在步骤S2中能够进行单向同步。因此,根据该实施例的方法,能够使得每个数据库节点都执行单向数据同步。
在根据本发明的另一个实施例中,可以在数据库系统中设置前置模块,在该前置模块内配置数据划分信息,通过该前置模块向数据库节点写入数据,其中,该前置模块根据数据划分信息将待写入的数据写入相应的数据库节点。由此完成将待写入的数据根据数据划分信息写入相应的数据库节点。基于数据划分的数据写入,可以使得按照图3所示的步骤S2,进行多个数据库的各自单向数据同步。
图4是根据本发明另一个实施例的基于数据划分的多节点数据库同步示意图。如图所示,在该实施例中,为每个数据库节点配置对应的前置模块。前置模块中可以设置有一个ID,代表自身所对应的数据库节点。每一个前置模块可以与其他前置模块通信,也可以与自己所属的数据库节点通信。
为每个前置模块配置数据划分信息,所述数据划分信息指定每个数据库节点的写入数据范围。例如,机构1的数据从前置1写入,机构2和机构3的数据从前置2写入,机构4的数据从前置3写入。此时,所有的前置模块都存储了完整的数据划分信息。
当通过前置模块向其对应的数据库节点写入数据时,该前置模块根将属于其对应的数据库节点的写入数据范围的数据写入其对应的数据库节点;以及将不属于其对应的数据库节点的写入数据范围的数据转发给相应的前置模块,并且被转发的数据由该相应的前置模块写入其对应的数据库节点。
在一个示例中,当应用程序写入数据时,根据图4所示的多节点数据库同步示意图,可以执行如下流程:
1)随机连接任意一个前置模块,并向其发送数据。
2)收到请求的前置模块根据配置好的数据划分信息,将属于自己节点的数据写入数据库,将不属于自己节点的数据转发给相应的前置节点,由相应的前置节点将数据写入其数据库。
3)在数据写入数据库后,由写入数据库节点单向同步给其他所有数据库节点。数据同步之后,所有的数据库节点的数据完全相同。
在该实施例中,由于读操作不改变数据,前置模块直接将自己节点的数据库数据读出来供应用程序使用,不需要查询数据划分信息。
根据该实施例,如果写入数据的范围发生了变化,或者数据库节点的数量发生了变化,只需要在变化发生后,重新配置前置模块的数据写入范围。
根据上述数据库同步方法,可以设计一种基于数据划分的多节点数据库系统,该系统被配置为将待写入的数据基于数据划分信息写入相应的数据库节点,该系统进一步被配置为将写入到特定数据库节点中的属于特定数据划分的数据单向同步到其余数据库节点。
在一个实施例中,该系统包括前置模块,在该前置模块内配置数据划分信息,该系统被配置为通过该前置模块向数据库节点写入数据,其中,该前置模块根据数据划分信息将待写入的数据写入相应的数据库节点。
在一个实施例中,每个数据库节点配置有对应的前置模块,每个前置模块配置有数据划分信息,所述数据划分信息指定每个数据库节点的写入数据范围,该系统被配置为当通过前置模块向其对应的数据库节点写入数据时,该前置模块根将属于其对应的数据库节点的写入数据范围的数据写入其对应的数据库节点;以及将不属于其对应的数据库节点的写入数据范围的数据转发给相应的前置模块,并且该相应的前置模块将被转发的数据写入其对应的数据库节点。
通过以上实施方式的描述,本领域中的普通技术人员能够理解,在不偏离本发明的精神和范围的情况下,还可以对本发明的具体实施方式作各种变更和替换。这些变更和替换都落在本发明权利要求书所限定的范围内。
机译: 多节点分布式数据库系统表分布的自动确定
机译: 一种基于网络的多节点合作减少移动目标搜索时间的方法
机译: 一种基于多节点结构的多媒体标题的表示方法和系统,其具有稀疏访问历史来提示节点