CN103902568B - 一种基于数据划分的多节点数据库同步方法和多节点数据库系统 - Google Patents
一种基于数据划分的多节点数据库同步方法和多节点数据库系统 Download PDFInfo
- Publication number
- CN103902568B CN103902568B CN201210577596.2A CN201210577596A CN103902568B CN 103902568 B CN103902568 B CN 103902568B CN 201210577596 A CN201210577596 A CN 201210577596A CN 103902568 B CN103902568 B CN 103902568B
- Authority
- CN
- China
- Prior art keywords
- data
- database
- node
- written
- end module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 16
- 230000001360 synchronised effect Effects 0.000 claims abstract description 6
- 238000000638 solvent extraction Methods 0.000 claims description 33
- 238000005192 partition Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种基于数据划分的多节点数据库同步方法和多节点数据库系统。该方法包括:将待写入的数据根据数据划分信息写入相应的数据库节点,将被写入到特定数据库节点中的属于特定数据划分的数据单向同步到其余数据库节点。
Description
技术领域
本发明涉及数据库同步技术,并且尤其涉及基于数据划分的多节点数据库同步方法以及多节点数据库系统。
背景技术
随着数据库读写压力的增大,单节点的数据库已经无法承担大数据量下的业务承载,多节点的分布式数据库设计日渐普及。在多节点数据库应用中,节点之间的数据同步是关键性的设计问题。
在多节点数据库设计的早期,通常采用读写分离的方式来实现数据库同步。对于数据库系统而言,通常来讲,写操作少,读操作多,因此该设计方案为一个写数据库,多个读数据库,由写数据库向多个读数据库进行单向同步。
基于这种数据库同步方法的架构如图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)在数据写入数据库后,由写入数据库节点单向同步给其他所有数据库节点。数据同步之后,所有的数据库节点的数据完全相同。
在该实施例中,由于读操作不改变数据,前置模块直接将自己节点的数据库数据读出来供应用程序使用,不需要查询数据划分信息。
根据该实施例,如果写入数据的范围发生了变化,或者数据库节点的数量发生了变化,只需要在变化发生后,重新配置前置模块的数据写入范围。
根据上述数据库同步方法,可以设计一种基于数据划分的多节点数据库系统,该系统被配置为将待写入的数据基于数据划分信息写入相应的数据库节点,该系统进一步被配置为将写入到特定数据库节点中的属于特定数据划分的数据单向同步到其余数据库节点。
在一个实施例中,该系统包括前置模块,在该前置模块内配置数据划分信息,该系统被配置为通过该前置模块向数据库节点写入数据,其中,该前置模块根据数据划分信息将待写入的数据写入相应的数据库节点。
在一个实施例中,每个数据库节点配置有对应的前置模块,每个前置模块配置有数据划分信息,所述数据划分信息指定每个数据库节点的写入数据范围,该系统被配置为当通过前置模块向其对应的数据库节点写入数据时,该前置模块根将属于其对应的数据库节点的写入数据范围的数据写入其对应的数据库节点;以及将不属于其对应的数据库节点的写入数据范围的数据转发给相应的前置模块,并且该相应的前置模块将被转发的数据写入其对应的数据库节点。
通过以上实施方式的描述,本领域中的普通技术人员能够理解,在不偏离本发明的精神和范围的情况下,还可以对本发明的具体实施方式作各种变更和替换。这些变更和替换都落在本发明权利要求书所限定的范围内。
Claims (4)
1.一种基于数据划分的多节点数据库同步方法,其特征在于,
将待写入的数据根据数据划分信息写入相应的数据库节点,
将被写入到特定数据库节点中的属于特定数据划分的数据单向同步到其余数据库节点,
为每个数据库节点配置对应的前置模块,其中,
为每个前置模块配置数据划分信息,所述数据划分信息指定每个数据库节点的写入数据范围,
当通过前置模块向其对应的数据库节点写入数据时,该前置模块根据属于其对应的数据库节点的写入数据范围的数据写入其对应的数据库节点;以及将不属于其对应的数据库节点的写入数据范围的数据转发给相应的前置模块,并且被转发的数据由该相应的前置模块写入其对应的数据库节点。
2.如权利要求1所述的方法,其特征在于,
设置前置模块,在该前置模块内配置数据划分信息,
通过该前置模块向数据库节点写入数据,
其中,该前置模块根据数据划分信息将待写入的数据写入相应的数据库节点。
3.一种基于数据划分的多节点数据库系统,其特征在于,
该系统被配置为将待写入的数据基于数据划分信息写入相应的数据库节点,
该系统进一步被配置为将写入到特定数据库节点中的属于特定数据划分的数据单向同步到其余数据库节点,
其中,每个数据库节点配置有对应的前置模块,
每个前置模块配置有数据划分信息,所述数据划分信息指定每个数据库节点的写入数据范围,
该系统被配置为当通过前置模块向其对应的数据库节点写入数据时,该前置模块根据属于其对应的数据库节点的写入数据范围的数据写入其对应的数据库节点;以及将不属于其对应的数据库节点的写入数据范围的数据转发给相应的前置模块,并且该相应的前置模块将被转发的数据写入其对应的数据库节点。
4.如权利要求3所述的系统,其特征在于,
该系统包括前置模块,在该前置模块内配置数据划分信息,
该系统被配置为通过该前置模块向数据库节点写入数据,
其中,该前置模块根据数据划分信息将待写入的数据写入相应的数据库节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210577596.2A CN103902568B (zh) | 2012-12-27 | 2012-12-27 | 一种基于数据划分的多节点数据库同步方法和多节点数据库系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210577596.2A CN103902568B (zh) | 2012-12-27 | 2012-12-27 | 一种基于数据划分的多节点数据库同步方法和多节点数据库系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103902568A CN103902568A (zh) | 2014-07-02 |
CN103902568B true CN103902568B (zh) | 2017-05-31 |
Family
ID=50993896
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210577596.2A Active CN103902568B (zh) | 2012-12-27 | 2012-12-27 | 一种基于数据划分的多节点数据库同步方法和多节点数据库系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103902568B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105119992A (zh) * | 2015-08-24 | 2015-12-02 | 用友网络科技股份有限公司 | 分布式任务执行装置和方法 |
CN106649838B (zh) * | 2016-12-29 | 2020-10-30 | 成都质数斯达克科技有限公司 | 数据传输方法、区块链节点及分布式数据库 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102054035A (zh) * | 2010-12-29 | 2011-05-11 | 北京播思软件技术有限公司 | 一种基于数据范围的数据库数据同步方法 |
CN102567505A (zh) * | 2011-12-26 | 2012-07-11 | 中兴通讯股份有限公司 | 一种分布式数据库及其数据操作方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2387200B1 (en) * | 2010-04-23 | 2014-02-12 | Compuverde AB | Distributed data storage |
-
2012
- 2012-12-27 CN CN201210577596.2A patent/CN103902568B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102054035A (zh) * | 2010-12-29 | 2011-05-11 | 北京播思软件技术有限公司 | 一种基于数据范围的数据库数据同步方法 |
CN102567505A (zh) * | 2011-12-26 | 2012-07-11 | 中兴通讯股份有限公司 | 一种分布式数据库及其数据操作方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103902568A (zh) | 2014-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103503414B (zh) | 一种计算存储融合的集群系统 | |
US7721044B1 (en) | Expanding the storage capacity of a virtualized data storage system | |
US11068499B2 (en) | Method, device, and system for peer-to-peer data replication and method, device, and system for master node switching | |
KR20120087980A (ko) | 다중 인터페이스 솔리드 스테이트 디스크, 및 다중 인터페이스 솔리드 스테이트 디스크의 처리 방법 및 시스템 | |
US9400767B2 (en) | Subgraph-based distributed graph processing | |
CN109376197B (zh) | 一种数据同步方法、服务器及计算机存储介质 | |
CN104965850A (zh) | 一种基于开源技术的数据库高可用实现方法 | |
US9354826B2 (en) | Capacity expansion method and device | |
CN102867035A (zh) | 一种分布式文件系统集群高可用方法和装置 | |
CN105760519A (zh) | 一种集群文件系统及其文件锁分配方法 | |
CN102983996A (zh) | 一种高可用集群资源管理的动态配置方法与系统 | |
US20150012714A1 (en) | Method and System for Multiple Processors to Share Memory | |
CN104254839A (zh) | 用于分割单链表以供分配存储器元素的系统和方法 | |
CN109144787A (zh) | 一种数据恢复方法、装置、设备及可读存储介质 | |
CN103581229A (zh) | 分布式文件系统、文件访问方法以及客户端 | |
CN106951456B (zh) | 一种内存数据库系统及数据处理系统 | |
CN103902568B (zh) | 一种基于数据划分的多节点数据库同步方法和多节点数据库系统 | |
CN102938778A (zh) | 一种在云存储中实现多节点容灾的方法 | |
CN104636327A (zh) | 一种基于增量计算的分布式流式数据系统 | |
CN104268097A (zh) | 一种元数据处理方法及系统 | |
CN105302817B (zh) | 分布式文件系统管理方法和装置 | |
CN103064749A (zh) | 一种进程间通信方法 | |
WO2017206562A1 (zh) | 一种数据表的处理方法、装置及系统 | |
CN100442780C (zh) | iSCSI存储网络、磁盘阵列及其容量扩展方法 | |
CN106155847A (zh) | 一种磁盘阵列 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |