CN104915381A - 一种数据变更感知和快速同步的方法 - Google Patents
一种数据变更感知和快速同步的方法 Download PDFInfo
- Publication number
- CN104915381A CN104915381A CN201510250796.0A CN201510250796A CN104915381A CN 104915381 A CN104915381 A CN 104915381A CN 201510250796 A CN201510250796 A CN 201510250796A CN 104915381 A CN104915381 A CN 104915381A
- Authority
- CN
- China
- Prior art keywords
- hash value
- data
- node
- server
- value
- 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
- 238000000034 method Methods 0.000 title claims abstract description 15
- 230000001360 synchronised effect Effects 0.000 claims abstract description 8
- 238000004364 calculation method Methods 0.000 claims abstract description 4
- 230000008859 change Effects 0.000 claims description 18
- 230000008447 perception Effects 0.000 claims description 6
- 238000012163 sequencing technique Methods 0.000 abstract 1
- 238000004891 communication Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000004069 differentiation Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003750 conditioning effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification 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
-
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据变更感知和快速同步的方法,属于计算机即时通讯技术领域。首先,数据变更的时候,服务器计算其属性名和值的hash值;服务器计算该数据的父级节点数据的hash值;父节点在更新hash值的时候,首先将所有子节点按照属性名称进行字典序排序,然后将子节点的属性名和子节点的hash值合并成一个字符串,并计算其hash值;以此方式逐步计算到顶节点的hash值;客户端也以此方式计算自己的hash值,并在登录之后将该hash值与服务器上的顶节点hash值进行对比,如果一致说明数据无变化,如果不一致,则获取原值并进行比对,找出变化的子节点或者属性并获取该子节点对应的值并进行同步。
Description
技术领域
本发明涉及一种用户信息数据差异化更新的方法,具体涉及一种数据变更感知和快速同步的方法,属于计算机即时通讯技术领域。
背景技术
在即时通信***中,一个用户会有多个设备,用户在设备上进行登录的时候需要能够获取到最新的个人信息,包括基本信息(姓名、出生日期、职务等),群组信息(群组列表、群组基本信息、群组成员信息等)、好友信息(好友列表、好友个人信息等)、白名单信息等等。这些信息中个人基本信息是有当前用户进行维护,而群组、好友等很多信息,特别是成员的个人信息是由其他人员自己维护的;同时个人信息的相关元数据有可能会根据业务的发展进行动态调整;这些信息需要在当前用户的所有设备上进行同步,保持数据的一致性。
目前的即时通信***中,针对个人信息数据的更新主要有以下几种办法:
1、全部更新,即客户端登录之后向服务器获取最新的全部数据,包括人员的基本信息、该人员所属的群组列表,每个群组的成员列表,每个群成员的个人基本信息,好友列表,好友的基本信息等。
2.根据版本号进行差异化更新,即从服务器上获取该人信息的最新版本,并根据设备上缓存的版本号向服务器获取之间差异版本的变动情况,并根据变动情况进行本地数据的修改。
在上面所述的两种办法中,我们可以看到第一种办法的好处在于能够确保数据的一致性,但是却存在同步数据量大,比如如果一个人员的基本属性有20项,共计数据库约200字节;该人员如果拥有20个群组(平均每个群组20人员,群的基本信息约300字节)和50个好友,则总计数据量大小约为100k字节左右,如果再加上白名单等数据量会更大。对于移动设备来讲在网络不稳定的情况下会多次同步数据,而每次数据量累计起来会很大。
第二种方法的好处在于如果客户端和服务器之间的数据差异不大的情况下数据量会小很多,如果两次同步过程之间没有数据修改,则同步的数据主要就是版本号信息,数据量会少很多,对于移动设备来讲会节省很多流量信息。
但是这个方法的问题在于很难确保双方数据的一致性,无论是服务器还是客户端,如果有一次数据同步错误,则该数据差异不会在后续的通过过程中得到修正,累积起来数据不一致的概率会明显增大。
发明内容
本发明的目的是为了克服已有技术的缺陷,为了解决数据同步过程中的数据量和一致性问题,提出一种数据变更感知和快速同步的方法。
一种数据变更感知和快速同步的方法,其实现步骤如下:
步骤一、数据变更的时候,服务器计算其属性名和值的hash值;
步骤二、服务器计算该数据的父级节点数据的hash值;
步骤三、父节点在更新hash值的时候,首先将所有子节点按照属性名称进行字典序排序,然后将子节点的属性名和子节点的hash值合并成一个字符串,并计算其hash值;
步骤四、以此方式逐步计算到顶节点的hash值;
步骤五、客户端也以此方式计算自己的hash值,并在登录之后将该hash值与服务器上的顶节点hash值进行对比,如果hash值一致则说明数据没有变化,包括子节点;如果hash值不一致,则获取原值并进行比对,找出发生变化的子节点或者属性,然后获取该子节点对应的值并进行同步。
自此,经过同步之后,客户端和服务器之间的hash值保持一致,数据也同时保持一致,而且实现了差异化的更新机制。
有益效果:
1、本发明通过对hash树的快速比对,能够快速进行差异节点的定位和同步,而不是针对所有节点进行原值的逐个比对,因此在大数据量的情况下数据处理效率高,
2、由于采用了hash树,任何节点的变化都能反馈到对应的所有父节点上,通过本发明的同步算法,在保证了hash树的一致性的同时,我们也能够保证数据原值的一致性。
具体实施方式
本发明提供了一种数据变更感知和快速同步的方法,其实现步骤如下:
步骤一、数据变更的时候,服务器计算其属性名和值的hash值;
步骤二、服务器计算该数据的父级节点数据的hash值,例如修改了电话号码之后,还需要随之更新该人员的hash值;
步骤三、父节点在更新hash值的时候,首先将所有子节点按照属性名称进行字典序排序,然后将子节点的属性名和子节点的hash值合并成一个字符串,并计算其hash值;
步骤四、以此方式逐步计算到顶节点的hash值;
步骤五、客户端也以此方式计算自己的hash值,并在登录之后将该hash值与服务器上的顶节点hash值进行对比,如果一致则说明数据没有变化,包括子节点;如果hash值不一致,则获取原值并进行比对,找出发生变化的子节点或者属性,然后获取该子节点对应的值并进行同步。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (1)
1.一种数据变更感知和快速同步的方法,其特征在于,实现步骤如下:
步骤一、数据变更的时候,服务器计算其属性名和值的hash值;
步骤二、服务器计算该数据的父级节点数据的hash值;
步骤三、父节点在更新hash值的时候,首先将所有子节点按照属性名称进行字典序排序,然后将子节点的属性名和子节点的hash值合并成一个字符串,并计算其hash值;
步骤四、以此方式逐步计算到顶节点的hash值;
步骤五、客户端也以此方式计算自己的hash值,并在登录之后将该hash值与服务器上的顶节点hash值进行对比,如果hash值一致则说明数据没有变化,包括子节点;如果hash值不一致,则获取原值并进行比对,找出发生变化的子节点或者属性,然后获取该子节点对应的值并进行同步。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510250796.0A CN104915381A (zh) | 2015-05-18 | 2015-05-18 | 一种数据变更感知和快速同步的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510250796.0A CN104915381A (zh) | 2015-05-18 | 2015-05-18 | 一种数据变更感知和快速同步的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104915381A true CN104915381A (zh) | 2015-09-16 |
Family
ID=54084444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510250796.0A Pending CN104915381A (zh) | 2015-05-18 | 2015-05-18 | 一种数据变更感知和快速同步的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104915381A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110046155A (zh) * | 2018-12-07 | 2019-07-23 | 阿里巴巴集团控股有限公司 | 特征数据库的更新、数据特征的确定方法、装置及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101930442A (zh) * | 2009-06-24 | 2010-12-29 | 侯方勇 | 一种哈希树的节点更新方法 |
CN102428464A (zh) * | 2009-06-30 | 2012-04-25 | 国际商业机器公司 | 标记网络媒体设备上的搜寻内容项 |
CN102693302A (zh) * | 2012-05-21 | 2012-09-26 | 浙江省公众信息产业有限公司 | 快速文件比对方法、***及客户端 |
CN103902617A (zh) * | 2012-12-28 | 2014-07-02 | 华为技术有限公司 | 分布式数据库同步方法和*** |
-
2015
- 2015-05-18 CN CN201510250796.0A patent/CN104915381A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101930442A (zh) * | 2009-06-24 | 2010-12-29 | 侯方勇 | 一种哈希树的节点更新方法 |
CN102428464A (zh) * | 2009-06-30 | 2012-04-25 | 国际商业机器公司 | 标记网络媒体设备上的搜寻内容项 |
CN102693302A (zh) * | 2012-05-21 | 2012-09-26 | 浙江省公众信息产业有限公司 | 快速文件比对方法、***及客户端 |
CN103902617A (zh) * | 2012-12-28 | 2014-07-02 | 华为技术有限公司 | 分布式数据库同步方法和*** |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110046155A (zh) * | 2018-12-07 | 2019-07-23 | 阿里巴巴集团控股有限公司 | 特征数据库的更新、数据特征的确定方法、装置及设备 |
CN110046155B (zh) * | 2018-12-07 | 2023-06-20 | 创新先进技术有限公司 | 特征数据库的更新、数据特征的确定方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106325933B (zh) | 批量数据同步方法和装置 | |
CN105528294B (zh) | 一种接口测试用例自动生成的方法及*** | |
US20150278030A1 (en) | Distributed Database Synchronization Method and System | |
CN107528872B (zh) | 一种数据恢复方法、装置及云存储*** | |
WO2015192661A1 (zh) | 一种分布式存储***中的数据同步方法、装置及*** | |
CN104134173A (zh) | 基于远程调阅和信息交互的主配网图/模/数集成*** | |
CN102054035A (zh) | 一种基于数据范围的数据库数据同步方法 | |
CN104104739A (zh) | 一种云存储***元数据服务集群的数据同步方法 | |
CN109325077A (zh) | 一种基于canal和kafka实现实时数仓的*** | |
CN102946410A (zh) | 网络同步方法和装置 | |
CN105991720A (zh) | 配置变更方法及设备 | |
CN102946411A (zh) | 网络同步*** | |
US20190251096A1 (en) | Synchronization of offline instances | |
US20190012362A1 (en) | Method and apparatus for processing information | |
US20170060922A1 (en) | Method and device for data search | |
CN114153986A (zh) | 一种知识图谱构建方法、装置、电子设备及存储介质 | |
CN105635215A (zh) | 联系人信息的同步方法、装置及云服务器 | |
CN104283932A (zh) | 文件同步***及方法 | |
CN104915381A (zh) | 一种数据变更感知和快速同步的方法 | |
CN110365797A (zh) | 一种联系人信息的同步方法和装置 | |
US20140280244A1 (en) | Locale-based sorting on mobile devices | |
CN103812912B (zh) | 一种维护组织结构信息的方法及装置 | |
CN110489483B (zh) | 数据同步方法、装置、计算机设备以及存储介质 | |
CN109063135B (zh) | 一种基于多活分布式架构的数据库复制方法及*** | |
CN112115206A (zh) | 一种处理对象存储元数据的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
DD01 | Delivery of document by public notice |
Addressee: BEIJING LIANXIN YONGTONG INFORMATION TECHNOLOGY Co.,Ltd. Document name: Notification of Publication of the Application for Invention |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150916 |
|
WD01 | Invention patent application deemed withdrawn after publication | ||
DD01 | Delivery of document by public notice |
Addressee: He Wei Document name: Deemed withdrawal notice |
|
DD01 | Delivery of document by public notice |