CN106055559A - 一种数据同步方法及装置 - Google Patents
一种数据同步方法及装置 Download PDFInfo
- Publication number
- CN106055559A CN106055559A CN201610325706.4A CN201610325706A CN106055559A CN 106055559 A CN106055559 A CN 106055559A CN 201610325706 A CN201610325706 A CN 201610325706A CN 106055559 A CN106055559 A CN 106055559A
- Authority
- CN
- China
- Prior art keywords
- data
- master data
- version number
- serial number
- variance
- 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.)
- Pending
Links
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)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本文提供一种数据同步方法和数据同步装置;其中,所述方法包括:监测主数据是否发生变化;若监测到发生变化,则:根据所述主数据的版本号和序列号,确定数据变化前后的差异数据;其中,所述版本号表示数据的兼容性,所述序列号表示数据的长度;将所述差异数据发送给数据同步节点,以使其进行数据同步。本文所述的数据同步方法和数据同步装置支持差异数据传输;客户端无需轮询获取差异数据,服务器可主动推送;支持内建压缩,减少数据传输量,提高并发。
Description
技术领域
本发明属于数据处理领域,尤其涉及一种数据同步方法及装置。
背景技术
目前线上主流的数据库,如Redis只能做全量获取,因此当数据库发生变化时,与其同步的其他节点需要重新全量获取更新,造成数据量大,占用大量网络资源;并且现有的数据库发生变化后,不会主动将数据库推送给与其同步的其他节点,而是需要每个节点轮询获取。
发明内容
有鉴于此,为了解决现有技术中存在数据库更新后需要全量获取,并且不支持推送功能的问题,本发明的目的是提出一种数据同步方法。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
在一些可选的实施例中,所述数据同步方法,包括:
监测主数据是否发生变化;若监测到发生变化,则:
根据所述主数据的版本号和序列号,确定数据变化前后的差异数据;其中,所述版本号表示数据的兼容性,所述序列号表示数据的长度;
将所述差异数据发送给数据同步节点,以使其进行数据同步。
本发明另一个目的是提供一种数据同步装置;
在一些可选的实施例中,所述数据同步装置,包括:
监测单元,用于监测主数据是否发生变化;若监测到发生变化,则:
差异数据确定单元,用于根据所述主数据的版本号和序列号,确定数据变化前后的差异数据;其中,所述版本号表示数据的兼容性,所述序列号表示数据的长度;
同步单元,用于将所述差异数据发送给数据同步节点,以使其进行数据同步。
采用上述实施例,可达到以下效果:
1、支持差异数据传输;
2、客户端无需轮询获取差异数据,服务器可主动推送;
3、支持内建压缩,减少数据传输量,提高并发。
为了上述以及相关的目的,一个或多个实施例包括后面将详细说明并在权利要求中特别指出的特征。下面的说明以及附图详细说明某些示例性方面,并且其指示的仅仅是各个实施例的原则可以利用的各种方式中的一些方式。其它的益处和新颖性特征将随着下面的详细说明结合附图考虑而变得明显,所公开的实施例是要包括所有这些方面以及它们的等同。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1示出了本发明实施例的一种数据同步方法的流程示意图;
图2示出了本发明实施例的一种数据同步装置的功能结构框图。
具体实施方式
以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。其他实施方案可以包括结构的、逻辑的、电气的、 过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本发明的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。在本文中,本发明的这些实施方案可以被单独地或总地用术语“发明”来表示,这仅仅是为了方便,并且如果事实上公开了超过一个的发明,不是要自动地限制该应用的范围为任何单个发明或发明构思。
图1示出了本发明实施例一种数据同步方法的流程示意图;如图1所示,所述方法包括:
步骤S101,监测主数据是否发生变化;若监测到发生变化,则:
步骤S102,根据所述主数据的版本号和序列号,确定数据变化前后的差异数据;其中,所述版本号表示数据的兼容性,所述序列号表示数据的长度;
步骤S103,将所述差异数据发送给数据同步节点,以使其进行数据同步;
所述方法可以应用于大并发网络多节点数据同步服务器,现有技术中主流的数据库如Redis的数据发生变化时,在数据同步时需要全量传输,无法实现差异传输,并且服务器不支持主动推送,需要客户端轮询获取数据;通过上述方法,本节点主动监测主数据变化,并且通过判断版本号和序列号两个标识确定数据是发生了本质改变还是发生了增量改变,从而确定差异数据为全量数据还是新增数据,然后主动将差异数据传输给数据同步节点,整个过程简洁高效,减少带宽占用,高并发;
在一些可选的实施例中,所述主数据的修改方式包括替换和新增两种;
若对所述主数据进行所述替换的操作,则:所述版本号,或,所述版本号和所述序列号改变;
若对所述主数据进行所述新增的操作,则:所述版本号不变,所述序列号增值;
在一些可选的实施例中,所述监测主数据是否发生变化的操作,包括:
监测所述主数据的版本号和序列号是否改变;若二者均未改变,则所述主数据未改变;若改变,则触发确定所述差异数据的操作;
在一些可选的实施例中,所述根据所述主数据的版本号和序列号,确定数据变化前后的差异数据的操作,包括:
判断所述版本号是否改变;若是,则所述差异数据为所述主数据的全量;若否,则:
判断所述序列号是否增值;若是,则所述差异数据为所述主数据的新增数据,并根据所述序列号的增值,在所述主数据中确定待传输的新增数据;
在一些可选的实施例中,所述将所述差异数据发送给数据同步节点的操作,包括:
根据记录的所述数据同步节点的信息,将所述主数据全量或所述主数据的新增数据压缩并发送到所述数据同步节点;
在所述发送数据的过程中,还携带发生变化的所述版本号和/或所述序列号。
以下实施例给出了具体的实施方案,所述数据同步方法应用于大并发网络多节点数据同步服务器,在大并发网络中,本服务器可以向多个网络节点提供数据同步服务,当主数据发生变化时,可以快速向与本端同步的网络节点推送相应的差异数据;
具体的设计方案如下:
首先,可以对本节点的主数据设置版本号version和序列号sequence两个参数标识;其中,version标识主数据变化前后的兼容性,例如:主数据是AB,version=1;若主数据变成ABC,那么主数据只是发生了长度的增加,则version不变;若主数据变成了AA,那么主数据发生了本质变化,则version变成2。sequence代表数据的长度,若主数据发生了长度的新增,则该值增加相应的数量,若主数据发生了本质的变化,则该值记录的是变化后的数据的长度,例如:主数据是AB,sequence=2,若主数据变成了ABCD,则seuqence=4,若主数据变成了AA,则sequence不变;
其次,当主数据发生了变化,修改数据可为两种,一种是替换replace操作,一种是新增append操作,不准许在数据中间***。每次append后,sequence为增加数据后的数据长度,version不变化;如果是replace后version变化,sequence为数据长度;
第三,通过判断version和sequence两个参数的变化,可以确定最佳的同步数据的方案,即确定差异数据;若sequence为增加,version不变,则仅将新增对部分数据进行同步;若version发生变化,则需要将主数据整体进行同步;
第四,根据记录的所述数据同步节点的信息,将确定的差异数据主动推送给所述节点,并在传输过程中加入压缩标志,对数据进行压缩,减少带宽占用。
图2示出了本发明实施例的一种数据同步装置的功能结构框图;所述数据同步装置200,包括:
监测单元201,用于监测主数据是否发生变化;若监测到发生变化,则:
差异数据确定单元201,用于根据所述主数据的版本号和序列号,确定数据变化前后的差异数据;其中,所述版本号表示数据的兼容性,所述序列号表示数据的长度;
同步单元203,用于将所述差异数据发送给数据同步节点,以使其进行数据同步;
在一些可选的实例中,所述主数据的修改方式包括替换和新增两种;
若对所述主数据进行所述替换的操作,则:所述版本号,或,所述版本号和所述序列号改变;
若对所述主数据进行所述新增的操作,则:所述版本号不变,所述序列号增值;
在一些可选的实例中,所述监测单元201,包括:
监测子单元2011,用于监测所述主数据的版本号和序列号是否改变;若二者均未改变,则所述主数据未改变;若改变,则触发确定所述差异数据的操作;
在一些可选的实例中,所述差异数据确定单元202,包括:
第一判断单元2021,用于判断所述版本号是否改变;若是,则所述差异数据为所述主数据的全量;若否,则:
第二判断单元2022,用于判断所述序列号是否增值;若是,则所述差异数据为所述主数据的新增数据,并根据所述序列号的增值,在所述主数据中确定待传输的新增数据;
在一些可选的实例中,所述同步单元203,包括:
同步子单元2031,用于根据记录的所述数据同步节点的信息,将所述主数据全量或所述主数据的新增数据压缩并发送到所述数据同步节点;
在所述同步子单元发送数据的过程中,还携带发生变化的所述版本号 和/或所述序列号。
综上所述,采用本发明所述的数据同步方法和装置,可使得:
1、支持差异数据传输;
2、客户端无需轮询获取差异数据,服务器可主动推送;
3、支持内建压缩,减少数据传输量,提高并发。
本领域技术人员还应当理解,以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据同步方法,其特征在于,包括:
监测主数据是否发生变化;若监测到发生变化,则:
根据所述主数据的版本号和序列号,确定数据变化前后的差异数据;其中,所述版本号表示数据的兼容性,所述序列号表示数据的长度;
将所述差异数据发送给数据同步节点,以使其进行数据同步。
2.如权利要求1所述的方法,其特征在于,所述主数据的修改方式包括替换和新增两种;
若对所述主数据进行所述替换的操作,则:所述版本号,或,所述版本号和所述序列号改变;
若对所述主数据进行所述新增的操作,则:所述版本号不变,所述序列号增值。
3.如权利要求2所述的方法,其特征在于,所述监测主数据是否发生变化的操作,包括:
监测所述主数据的版本号和序列号是否改变;若二者均未改变,则所述主数据未改变;若改变,则触发确定所述差异数据的操作。
4.如权利要求2所述的方法,其特征在于,所述根据所述主数据的版本号和序列号,确定数据变化前后的差异数据的操作,包括:
判断所述版本号是否改变;若是,则所述差异数据为所述主数据的全量;若否,则:
判断所述序列号是否增值;若是,则所述差异数据为所述主数据的新增数据,并根据所述序列号的增值,在所述主数据中确定待传输的新增数据。
5.如权利要求4所述的方法,其特征在于,所述将所述差异数据发送给数据同步节点的操作,包括:
根据记录的所述数据同步节点的信息,将所述主数据全量或所述主数据的新增数据压缩并发送到所述数据同步节点;
在所述发送数据的过程中,还携带发生变化的所述版本号和/或所述序列号。
6.一种数据同步装置,其特征在于,包括:
监测单元,用于监测主数据是否发生变化;若监测到发生变化,则:
差异数据确定单元,用于根据所述主数据的版本号和序列号,确定数据变化前后的差异数据;其中,所述版本号表示数据的兼容性,所述序列号表示数据的长度;
同步单元,用于将所述差异数据发送给数据同步节点,以使其进行数据同步。
7.如权利要求6所述的装置,其特征在于,所述主数据的修改方式包括替换和新增两种;
若对所述主数据进行所述替换的操作,则:所述版本号,或,所述版本号和所述序列号改变;
若对所述主数据进行所述新增的操作,则:所述版本号不变,所述序列号增值。
8.如权利要求7所述的装置,其特征在于,所述监测单元,包括:
监测子单元,用于监测所述主数据的版本号和序列号是否改变;若二者均未改变,则所述主数据未改变;若改变,则触发确定所述差异数据的操作。
9.如权利要求7所述的装置,其特征在于,所述差异数据确定单元,包括:
第一判断单元,用于判断所述版本号是否改变;若是,则所述差异数据为所述主数据的全量;若否,则:
第二判断单元,用于判断所述序列号是否增值;若是,则所述差异数据为所述主数据的新增数据,并根据所述序列号的增值,在所述主数据中确定待传输的新增数据。
10.如权利要求9所述的装置,其特征在于,所述同步单元,包括:
同步子单元,用于根据记录的所述数据同步节点的信息,将所述主数据全量或所述主数据的新增数据压缩并发送到所述数据同步节点;
在所述同步子单元发送数据的过程中,还携带发生变化的所述版本号和/或所述序列号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610325706.4A CN106055559A (zh) | 2016-05-17 | 2016-05-17 | 一种数据同步方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610325706.4A CN106055559A (zh) | 2016-05-17 | 2016-05-17 | 一种数据同步方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106055559A true CN106055559A (zh) | 2016-10-26 |
Family
ID=57177051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610325706.4A Pending CN106055559A (zh) | 2016-05-17 | 2016-05-17 | 一种数据同步方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106055559A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106603640A (zh) * | 2016-12-05 | 2017-04-26 | 北京中交兴路信息科技有限公司 | 一种数据同步的方法及装置 |
CN108183965A (zh) * | 2018-01-15 | 2018-06-19 | 郑州云海信息技术有限公司 | 一种数据同步方法、装置、设备、***及可读存储介质 |
CN108733680A (zh) * | 2017-04-14 | 2018-11-02 | 徐州瑞晨矿业科技发展有限公司 | 一种基于矢量图形数据进行工程图纸远程分享的方法 |
CN108924206A (zh) * | 2018-06-26 | 2018-11-30 | 郑州云海信息技术有限公司 | 一种分布式***的集群事件同步方法、装置及设备 |
CN110019504A (zh) * | 2017-09-13 | 2019-07-16 | 北京国双科技有限公司 | 数据同步方法及装置 |
CN110750546A (zh) * | 2019-10-21 | 2020-02-04 | 中国民航信息网络股份有限公司 | 一种数据库的更新方法及装置 |
CN110769053A (zh) * | 2019-10-21 | 2020-02-07 | 深圳震有科技股份有限公司 | 一种数据推送方法、***及存储介质 |
CN110795288A (zh) * | 2019-11-06 | 2020-02-14 | 杭州复杂美科技有限公司 | 数据获取方法、设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103002010A (zh) * | 2012-10-29 | 2013-03-27 | 北京奇虎科技有限公司 | 一种基于增量数据的数据更新方法、装置和*** |
CN103490937A (zh) * | 2013-10-12 | 2014-01-01 | 北京奇虎科技有限公司 | 监控数据过滤方法及装置 |
CN103581231A (zh) * | 2012-07-25 | 2014-02-12 | 腾讯科技(北京)有限公司 | Ugc主备数据同步方法及其*** |
-
2016
- 2016-05-17 CN CN201610325706.4A patent/CN106055559A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103581231A (zh) * | 2012-07-25 | 2014-02-12 | 腾讯科技(北京)有限公司 | Ugc主备数据同步方法及其*** |
CN103002010A (zh) * | 2012-10-29 | 2013-03-27 | 北京奇虎科技有限公司 | 一种基于增量数据的数据更新方法、装置和*** |
CN103490937A (zh) * | 2013-10-12 | 2014-01-01 | 北京奇虎科技有限公司 | 监控数据过滤方法及装置 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106603640A (zh) * | 2016-12-05 | 2017-04-26 | 北京中交兴路信息科技有限公司 | 一种数据同步的方法及装置 |
CN108733680A (zh) * | 2017-04-14 | 2018-11-02 | 徐州瑞晨矿业科技发展有限公司 | 一种基于矢量图形数据进行工程图纸远程分享的方法 |
CN110019504A (zh) * | 2017-09-13 | 2019-07-16 | 北京国双科技有限公司 | 数据同步方法及装置 |
CN110019504B (zh) * | 2017-09-13 | 2021-01-22 | 北京国双科技有限公司 | 数据同步方法及装置 |
CN108183965A (zh) * | 2018-01-15 | 2018-06-19 | 郑州云海信息技术有限公司 | 一种数据同步方法、装置、设备、***及可读存储介质 |
CN108924206A (zh) * | 2018-06-26 | 2018-11-30 | 郑州云海信息技术有限公司 | 一种分布式***的集群事件同步方法、装置及设备 |
CN110750546A (zh) * | 2019-10-21 | 2020-02-04 | 中国民航信息网络股份有限公司 | 一种数据库的更新方法及装置 |
CN110769053A (zh) * | 2019-10-21 | 2020-02-07 | 深圳震有科技股份有限公司 | 一种数据推送方法、***及存储介质 |
CN110769053B (zh) * | 2019-10-21 | 2022-04-19 | 深圳震有科技股份有限公司 | 一种数据推送方法、***及存储介质 |
CN110795288A (zh) * | 2019-11-06 | 2020-02-14 | 杭州复杂美科技有限公司 | 数据获取方法、设备和存储介质 |
CN110795288B (zh) * | 2019-11-06 | 2023-02-10 | 杭州复杂美科技有限公司 | 数据获取方法、设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106055559A (zh) | 一种数据同步方法及装置 | |
CN103442042B (zh) | 增量数据同步方法及*** | |
CN103369051B (zh) | 一种数据服务器集群***及数据同步方法 | |
CN101079869B (zh) | 一种基于分布式的数据同步方法及*** | |
CN101635728B (zh) | 内容分发网络中数据同步的方法及*** | |
EP2346210A1 (en) | Method for addressing management object in management tree and associated device management system | |
CN101867613B (zh) | 一种内容分发cdn子***以及数据同步的方法 | |
CN102904887A (zh) | 一种Web客户端与服务器的数据同步方法和*** | |
EP2597821B1 (en) | Method and system for auto-configuration, and network node | |
CN103188064A (zh) | 时钟同步方法及装置 | |
WO2017162079A1 (zh) | 一种数据的同步方法和装置 | |
CN103986738A (zh) | 一种多终端间的同步方法及*** | |
US20160308964A1 (en) | Method, server, and system for synchronizing group member information | |
EP2913977A2 (en) | Resource information acquisition method, system and device for internet of things terminal device | |
CN104253868A (zh) | 一种云存储数据同步的方法及装置 | |
JP2011511362A5 (zh) | ||
CN103647833A (zh) | 连续序号生成***和方法 | |
CN105959078A (zh) | 一种集群时间同步方法、集群及时间同步*** | |
CN104881485A (zh) | 一种数据同步方法及*** | |
CN107634975A (zh) | 一种数据同步方法、设备和*** | |
CN101018148A (zh) | 网络管理***与网元管理***之间数据的增量同步方法 | |
CN101447874A (zh) | 一种数据同步方法、客户端及服务器 | |
CN104639399A (zh) | 多主时间服务器检测方法和装置 | |
CN109981384A (zh) | 一种动态调整心跳周期的***和方法 | |
CN101707785A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161026 |