CN109902097A - 数据更新方法、数据恢复方法、设备和存储介质 - Google Patents

数据更新方法、数据恢复方法、设备和存储介质 Download PDF

Info

Publication number
CN109902097A
CN109902097A CN201910157807.9A CN201910157807A CN109902097A CN 109902097 A CN109902097 A CN 109902097A CN 201910157807 A CN201910157807 A CN 201910157807A CN 109902097 A CN109902097 A CN 109902097A
Authority
CN
China
Prior art keywords
data
solicited message
update
updated
requests
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
Application number
CN201910157807.9A
Other languages
English (en)
Inventor
王永强
吴思进
王志文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Fuzamei Technology Co Ltd
Original Assignee
Hangzhou Fuzamei Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Fuzamei Technology Co Ltd filed Critical Hangzhou Fuzamei Technology Co Ltd
Priority to CN201910157807.9A priority Critical patent/CN109902097A/zh
Publication of CN109902097A publication Critical patent/CN109902097A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明提供一种数据更新方法、数据恢复方法、设备和存储介质,该方法包括:接收用户终端生成并发送的第一数据更新请求信息;对分布式系统中的若干副本节点广播第一数据更新请求信息,与各副本节点共同对第一数据更新请求信息所请求更新的第一数据进行共识,并在共识成功后,根据第一数据对本地数据进行更新。本发明保障了代码存储损坏率低、丢失率低、且代码存储系统安全性强。

Description

数据更新方法、数据恢复方法、设备和存储介质
技术领域
本申请涉及互联网技术领域,具体涉及一种数据更新方法、数据恢复方法、设备和存储介质。
背景技术
目前开源项目管理中项目所有者拥有对项目绝对控制的权限,随着开源项目的相互引用,由于项目所有者个人问题或者单个服务器出错,导致代码错失毁坏,引起该开源项目的安全性及不完整性。
发明内容
鉴于现有技术中的上述缺陷或不足,期望提供一种代码存储损坏率低、丢失率低、且代码存储系统安全性强的数据更新方法、数据恢复方法、设备和存储介质。
第一方面,本发明提供一种数据更新方法,该方法适用于分布式系统的主节点,该方法包括:
接收用户终端生成并发送的第一数据更新请求信息;
对分布式系统中的若干副本节点广播第一数据更新请求信息,与各副本节点共同对第一数据更新请求信息所请求更新的第一数据进行共识,并在共识成功后,根据第一数据对本地数据进行更新。
第二方面,本发明提供一种数据恢复方法,该方法适用于对上述第一方面的数据更新方法的一种优选方法所更新的数据进行恢复,该方法包括:
接收用户终端生成并发送的第三数据更新请求信息的数据恢复请求信息,读取第三数据更新请求信息所请求更新的第三数据;
读取第三数据更新请求信息的上一笔数据更新请求信息所请求更新的数据;
读取所读取的数据更新请求信息的上一笔数据更新请求信息所请求更新的数据,并循环当前步骤直至查找不到上一笔数据更新请求信息;
根据各所读取的数据及第三数据恢复数据恢复请求信息所请求恢复的数据。
第三方面,本发明提供一种数据恢复方法,该方法适用于对上述第一方面的数据更新方法的另一种优选方法所更新的数据进行恢复,该方法包括:
接收用户终端生成并发送的第四数据更新请求信息的数据恢复请求信息,读取第四数据更新请求信息所请求更新的第四数据;
根据第四数据更新请求信息的前一个数据更新请求信息所请求更新的数据的哈希值查找是否存在前一个数据更新请求信息:是,则读取所查找到的数据更新请求信息所请求更新的数据;
根据所查找到的数据更新请求信息所请求更新的数据的哈希值查找是否存在上一笔数据更新请求信息:是,则读取所查找到的数据更新请求信息所请求更新的数据,并循环当前步骤直至查找不到上一笔数据更新请求信息;
根据各所读取的数据及第四数据恢复数据恢复请求信息所请求恢复的数据。
第四方面,本发明提供一种数据更新方法,包括:
生成并向分布式系统中的主节点发送第一数据更新请求信息,以供主节点接收第一数据更新请求信息,对分布式系统中的若干副本节点广播第一数据更新请求信息,与各副本节点共同对第一数据更新请求信息所请求更新的第一数据进行共识,并在共识成功后,根据第一数据对本地数据进行更新。
第五方面,本发明提供一种数据更新方法,该方法适用于分布式系统的副本节点,该方法包括:
接收主节点广播的第一数据更新请求信息;其中,第一数据更新请求信息由用户终端生成并向分布式系统的主节点发送;
与主节点及分布式系统中的若干其它副本节点共同对第一数据更新请求信息所请求更新的第一数据进行共识,并在共识成功后,根据第一数据对本地数据进行更新。
第六方面,本发明提供一种数据恢复方法,该方法适用于对上述第五方面的数据更新方法的一种优选方法所更新的数据进行恢复,该方法包括:
接收主节点广播的第五数据更新请求信息的数据恢复请求信息,读取第五数据更新请求信息所请求更新的第五数据;其中,第五数据更新请求信息由用户终端生成并向分布式系统的主节点发送;
读取第五数据更新请求信息的上一笔数据更新请求信息所请求更新的数据;
读取所读取的数据更新请求信息的上一笔数据更新请求信息所请求更新的数据,并循环当前步骤直至查找不到上一笔数据更新请求信息;
根据各所读取的数据及第五数据恢复数据恢复请求所请求恢复的数据。
第七方面,本发明提供一种数据恢复方法,该方法适用于对上述第五方面的数据更新方法的另一种优选方法所更新的数据进行恢复,该方法包括:
接收主节点广播的第六数据更新请求信息的数据恢复请求信息,读取第六数据更新请求信息所请求更新的第六数据;其中,第六数据更新请求信息由用户终端生成并向分布式系统的主节点发送;
根据第六数据更新请求信息的前一个数据更新请求信息所请求更新的数据的哈希值查找是否存在前一个数据更新请求信息:是,则读取所查找到的数据更新请求信息所请求更新的数据;
根据所查找到的数据更新请求信息所请求更新的数据的哈希值查找是否存在上一笔数据更新请求信息:是,则读取所查找到的数据更新请求信息所请求更新的数据,并循环当前步骤直至查找不到上一笔数据更新请求信息;
根据各所读取的数据及第六数据恢复数据恢复请求信息所请求恢复的数据。
第八方面,本发明还提供一种设备,包括一个或多个处理器和存储器,其中存储器包含可由该一个或多个处理器执行的指令以使得该一个或多个处理器执行根据本发明各实施例提供的数据更新方法及数据恢复方法。
第九方面,本发明还提供一种存储有计算机程序的存储介质,该计算机程序使计算机执行根据本发明各实施例提供的数据更新方法及数据恢复方法。
本发明诸多实施例提供的数据更新方法、数据恢复方法、设备和存储介质通过接收用户终端生成并发送的第一数据更新请求信息;对分布式系统中的若干副本节点广播第一数据更新请求信息,与各副本节点共同对第一数据更新请求信息所请求更新的第一数据进行共识,并在共识成功后,根据第一数据对本地数据进行更新的方法,保障了代码存储损坏率低、丢失率低、且代码存储系统安全性强。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为本发明一实施例提供的一种数据更新方法的流程图。
图2为本发明一实施例提供的一种数据恢复方法的流程图。
图3为本发明一实施例提供的一种数据恢复方法的流程图。
图4为本发明一实施例提供的一种数据更新方法的流程图。
图5为本发明一实施例提供的一种数据更新方法的流程图。
图6为本发明一实施例提供的一种数据恢复方法的流程图。
图7为本发明一实施例提供的一种数据恢复方法的流程图。
图8为本发明一实施例提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1为本发明一实施例提供的一种数据更新方法的流程图。如图1所示,在本实施例中,本发明提供一种数据更新方法,包括:
S12:接收用户终端生成并发送的第一数据更新请求信息;
S14:对分布式系统中的若干副本节点广播第一数据更新请求信息,与各副本节点共同对第一数据更新请求信息所请求更新的第一数据进行共识,并在共识成功后,根据第一数据对本地数据进行更新。
具体地,以第一数据更新请求信息包括第一数据的操作类型Op(+/-)、第一数据的行号Line及所述第一数据的行号对应的更新内容Content,其中,Op=+表示在某一指定行号前插入行,Op=-表示删除某一指定行号对应的行,对某一指定行号先进行Op=-,再进行Op=+,表示对该指定行号的内容进行修改操作为例;假设分布式网络中有主节点A,副本节点B,副本节点C,副本节点D,用户终端为用户甲,主节点A对分布式系统中的所有副本节点广播第一数据更新请求信息;第一数据更新请求信息为:在第4行前进行添加内容操作,添加的内容为“System.out.println("hello China!")”,第一数据更新请求信息所请求更新的第一数据为:OP=+,Line=4,Content=System.out.println("hello China!");
在步骤S12中,主节点A接收用户甲生成并发送的第一数据更新请求信息;
在步骤S14中,主节点A对分布式系统中的所有副本节点,即副本节点B,副本节点C,副本节点D广播第一数据更新请求信息,与各副本节点共同对第一数据更新请求信息所请求更新的第一数据,即OP=+,Line=4,Content=System.out.println("helloChina!")进行共识,并在共识成功后,根据第一数据对本地数据进行更新,在本地数据的第4行前插入行,插入的内容为System.out.println("hello China!")。
上述实施例以第一数据更新请求信息包括第一数据的操作类型Op(+/-)、第一数据的行号Line及所述第一数据的行号对应的更新内容Content,其中,Op=+表示在某一指定行号前插入行,Op=-表示删除某一指定行号对应的行,对某一指定行号先进行Op=-,再进行Op=+,表示对该指定行号的内容进行修改操作为例对本发明提供的数据更新方法进行了详细阐述,在更多实施例中,本发明提供的数据更新方法不以上述举例为限,还可以根据实际需求将第一数据更新请求信息配置为第一数据更新请求信息的前一个数据更新请求信息所请求更新的数据的哈希值、第一数据的操作类型、第一数据的行号及第一数据的行号对应的更新内容,可实现相同的技术效果。
上述实施例提供的数据更新方法,保障了代码存储损坏率低、丢失率低、且代码存储系统安全性强。
在一优选实施例中,第一数据更新请求信息包括第一数据的操作类型、第一数据的行号及第一数据的行号对应的更新内容。
上述实施例的数据更新原理可参考图1所示的方法,此处不再赘述。
在一优选实施例中,第一数据更新请求信息包括第一数据更新请求信息的前一个数据更新请求信息所请求更新的数据的哈希值、第一数据的操作类型、第一数据的行号及第一数据的行号对应的更新内容。
具体地,以第一数据更新请求信息包括第一数据更新请求信息的前一个数据更新请求信息所请求更新的数据的哈希值,其中,前一个数据更新请求信息表示上一个版本的数据更新请求信息;第一数据的操作类型Op(+/-)、第一数据的行号Line及所述第一数据的行号对应的更新内容Content,其中,Op=+表示在某一指定行号前插入行,Op=-表示删除某一指定行号对应的行,对某一指定行号先进行Op=-,再进行Op=+,表示对该指定行号的内容进行修改操作为例;假设第一数据更新请求信息的上一个版本的数据更新请求信息所请求更新的数据的哈希值为34ff4a5d,第一数据更新请求信息为:在第5行前进行添加内容操作,添加的内容为“System.out.println("hello ZheJiang!")”,第一数据更新请求信息所请求更新的第一数据为:Prehash=34ff4a5d,OP=+,Line=5,Content=System.out.println("hello ZheJiang!");
在执行步骤S14时,当共识成功后,根据第一数据对本地数据进行更新,本次更新是针对哈希值为34ff4a5d的版本进行更新的数据,在本地数据的第5行前插入行,插入的内容为:
System.out.println("System.out.println("hello ZheJiang!")。
在一优选实施例中,对分布式系统中的若干副本节点广播第一数据更新请求信息,与各副本节点共同对第一数据更新请求信息所请求更新的第一数据进行共识,并在共识成功后,根据第一数据对本地数据进行更新包括:
从本地数据中查询是否存在第二数据更新请求信息,第二数据更新请求信息所请求更新的数据的哈希值与前一个数据更新请求信息所请求更新的数据的哈希值相同:
是,则对分布式系统中的若干副本节点广播第一数据更新请求信息,与各副本节点共同对第一数据更新请求信息所请求更新的第一数据进行共识,并在共识成功后,根据第一数据对本地数据进行更新。
具体地,假设本地数据中查询存在第二数据更新请求信息,第二数据更新请求信息所请求更新的数据的哈希值为34ff4a5d,与前一个数据更新请求信息所请求更新的数据的哈希值相同,则对分布式系统中的若干副本节点广播第一数据更新请求信息,与各副本节点共同对第一数据更新请求信息所请求更新的第一数据进行共识,并在共识成功后,根据第一数据对本地数据进行更新。
图2为本发明一实施例提供的一种数据恢复方法的流程图。如图2所示,在本实施例中,本发明提供一种数据恢复方法,该方法适用于对图1所示实施例的一种优选实施例所更新的数据进行恢复,包括:
S22:接收用户终端生成并发送的第三数据更新请求信息的数据恢复请求信息,读取第三数据更新请求信息所请求更新的第三数据;
S24:读取第三数据更新请求信息的上一笔数据更新请求信息所请求更新的数据;
S26:读取所读取的数据更新请求信息的上一笔数据更新请求信息所请求更新的数据,并循环当前步骤直至查找不到上一笔数据更新请求信息;
S28:根据各所读取的数据及第三数据恢复数据恢复请求信息所请求恢复的数据。
具体地,假设第三数据更新请求信息所请求更新的第三数据为OP=+,Line=4,Content=System.out.println("hello China!"),在本地数据中可以查询到第三数据更新请求信息的上一笔数据更新请求信息,查询不到该上一笔数据更新请求信息的上一笔数据更新请求信息,该上一笔数据更新请求信息所请求更新的数据为:
OP=+,Line=1,Content=public class HelloWorld{
OP=+,Line=2,Content=public static void main(String[]args){
OP=+,Line=3,Content=System.out.println("hello world!");
OP=+,Line=4,Content=}
OP=+,Line=5,Content=}
在步骤S22中,主节点A接收用户甲生成并发送的第三数据更新请求信息的数据恢复请求信息,读取第三数据更新请求信息所请求更新的第三数据;
在步骤S24中,主节点A读取第三数据更新请求信息的上一笔数据更新请求信息所请求更新的数据;
在步骤S26中,主节点A读取所读取的数据更新请求信息的上一笔数据更新请求信息所请求更新的数据,并循环当前步骤直至查找不到上一笔数据更新请求信息;由于在本地数据中可以查询到第三数据更新请求信息的上一笔数据更新请求信息,查询不到该上一笔数据更新请求信息的上一笔数据更新请求信息,因此节点A读取该上一笔数据更新请求信息所请求更新的数据;
在步骤S28中,节点A根据各所读取的数据及第三数据恢复数据恢复请求信息所请求恢复的数据;
读取的数据为:
OP=+,Line=1,Content=public class HelloWorld{
OP=+,Line=2,Content=public static void main(String[]args){
OP=+,Line=3,Content=System.out.println("hello world!");
OP=+,Line=4,Content=}
OP=+,Line=5,Content=}
第三数据为:
OP=+,Line=4,Content=System.out.println("hello China!")
因此恢复数据后,所得到的结果为:
图3为本发明一实施例提供的一种数据恢复方法的流程图。如图3所示,在本实施例中,本发明提供一种数据恢复方法,该方法适用于对图1所示实施例的另一种优选实施例所更新的数据进行恢复,包括:
S32:接收用户终端生成并发送的第四数据更新请求信息的数据恢复请求信息,读取第四数据更新请求信息所请求更新的第四数据;
S34:根据第四数据更新请求信息的前一个数据更新请求信息所请求更新的数据的哈希值查找是否存在前一个数据更新请求信息:是,则读取所查找到的数据更新请求信息所请求更新的数据;
S36:根据所查找到的数据更新请求信息所请求更新的数据的哈希值查找是否存在上一笔数据更新请求信息:是,则读取所查找到的数据更新请求信息所请求更新的数据,并循环当前步骤直至查找不到上一笔数据更新请求信息;
S38:根据各所读取的数据及第四数据恢复数据恢复请求信息所请求恢复的数据。
具体地,假设第四数据更新请求信息所请求更新的第四数据为:
Prehash=34ff4a5d,
OP=+,Line=4,Content=System.out.println("hello HangZhou!");
在本地数据中可以查询到第四数据更新请求信息的上一笔数据更新请求信息,该上一笔数据更新请求信息所请求更新的数据的哈希值为34ff4a5d;该上一笔数据更新请求信息的Prehash为Null,查询不到该上一笔数据更新请求信息的上一笔数据更新请求信息;
该上一笔数据更新请求信息所请求更新的数据为:
Prehash=Null
OP=+,Line=4,Content=System.out.println("hello HangZhou!")
OP=+,Line=1,Content=public class HelloWorld{
OP=+,Line=2,Content=public static void main(String[]args){
OP=+,Line=3,Content=System.out.println("hello world!");
OP=+,Line=4,Content=}
OP=+,Line=5,Content=}
在步骤S32中,节点A接收用户甲生成并发送的第四数据更新请求信息的数据恢复请求信息,读取第四数据更新请求信息所请求更新的第四数据;
在步骤S34中,节点A根据第四数据更新请求信息的前一个数据更新请求信息所请求更新的数据的哈希值查找是否存在前一个数据更新请求信息:是,则读取所查找到的数据更新请求信息所请求更新的数据;
在步骤S36中,节点A根据所查找到的数据更新请求信息所请求更新的数据的哈希值查找是否存在上一笔数据更新请求信息:是,则读取所查找到的数据更新请求信息所请求更新的数据,并循环当前步骤直至查找不到上一笔数据更新请求信息;由于在本地数据中可以查询到第四数据更新请求信息的上一笔数据更新请求信息,该上一笔数据更新请求信息所请求更新的数据的哈希值为34ff4a5d;该上一笔数据更新请求信息的prehash为空,查询不到该上一笔数据更新请求信息的上一笔数据更新请求信息,因此节点A读取该上一笔数据更新请求信息所请求更新的数据;
在步骤S38中,节点A根据各所读取的数据及第四数据恢复数据恢复请求信息所请求恢复的数据。
读取的数据为:
Prehash=Null
OP=+,Line=1,Content=public class HelloWorld{
OP=+,Line=2,Content=public static void main(String[]args){
OP=+,Line=3,Content=System.out.println("hello world!");
OP=+,Line=4,Content=}
OP=+,Line=5,Content=}
第四数据为:
Prehash=34ff4a5d,
OP=+,Line=4,Content=System.out.println("hello HangZhou!")
因此恢复数据后,所得到的结果为:
假设第四数据的哈希值为7877eda2;
在后续收到的更新请求信息中,若所收到的更新请求信息的Prehash为34ff4a5d,则所收到的更新请求信息所更新的数据所基于的代码的数据如下:
在后续收到的更新请求信息中,若所收到的更新请求信息的Prehash为7877eda2,则所收到的更新请求信息所更新的数据所基于的下代码的数据如下:
图4为本发明一实施例提供的一种数据更新方法的流程图。如图4所示,在本实施例中,本发明提供一种数据更新方法,包括:
S42:生成并向分布式系统中的主节点发送第一数据更新请求信息,以供主节点接收第一数据更新请求信息,对分布式系统中的若干副本节点广播第一数据更新请求信息,与各副本节点共同对第一数据更新请求信息所请求更新的第一数据进行共识,并在共识成功后,根据第一数据对本地数据进行更新。
上述实施例的数据更新原理可参考图1所示的方法,此处不再赘述。
图5为本发明一实施例提供的一种数据更新方法的流程图。如图5所示,在本实施例中,本发明提供一种数据更新方法,该方法适用于分布式系统的副本节点,包括:
S52:接收主节点广播的第一数据更新请求信息;其中,第一数据更新请求信息由用户终端生成并向分布式系统的主节点发送;
S54:与主节点及分布式系统中的若干其它副本节点共同对第一数据更新请求信息所请求更新的第一数据进行共识,并在共识成功后,根据第一数据对本地数据进行更新。
上述实施例的数据更新原理可参考图1所示的方法,此处不再赘述。
在一优选实施例中,第一数据更新请求信息包括第一数据的操作类型、第一数据的行号及第一数据的行号对应的更新内容。
在一优选实施例中,第一数据更新请求信息包括第一数据更新请求信息的前一个数据更新请求信息所请求更新的数据的哈希值、第一数据的操作类型、第一数据的行号及第一数据的行号对应的更新内容。
图6为本发明一实施例提供的一种数据恢复方法的流程图。如图6所示,在本实施例中,本发明提供一种数据恢复方法,该方法适用于对图5所示实施例的一种优选实施例所更新的数据进行恢复,包括:
S62:接收主节点广播的第五数据更新请求信息的数据恢复请求信息,读取第五数据更新请求信息所请求更新的第五数据;其中,第五数据更新请求信息由用户终端生成并向分布式系统的主节点发送;
S64:读取第五数据更新请求信息的上一笔数据更新请求信息所请求更新的数据;
S66:读取所读取的数据更新请求信息的上一笔数据更新请求信息所请求更新的数据,并循环当前步骤直至查找不到上一笔数据更新请求信息;
S68:根据各所读取的数据及第五数据恢复数据恢复请求所请求恢复的数据。
上述实施例的数据更新原理可参考图2所示的方法,此处不再赘述。
图7为本发明一实施例提供的一种数据恢复方法的流程图。如图7所示,在本实施例中,本发明提供一种数据恢复方法,该方法适用于对图5所示实施例的一种优选实施例所更新的数据进行恢复,包括:
S72:接收主节点广播的第六数据更新请求信息的数据恢复请求信息,读取第六数据更新请求信息所请求更新的第六数据;其中,第六数据更新请求信息由用户终端生成并向分布式系统的主节点发送;
S74:根据第六数据更新请求信息的前一个数据更新请求信息所请求更新的数据的哈希值查找是否存在前一个数据更新请求信息:是,则读取所查找到的数据更新请求信息所请求更新的数据;
S76:根据所查找到的数据更新请求信息所请求更新的数据的哈希值查找是否存在上一笔数据更新请求信息:是,则读取所查找到的数据更新请求信息所请求更新的数据,并循环当前步骤直至查找不到上一笔数据更新请求信息;
S78:根据各所读取的数据及第六数据恢复数据恢复请求信息所请求恢复的数据。
上述实施例的数据更新原理可参考图3所示的方法,此处不再赘述。
图8为本发明一实施例提供的一种设备的结构示意图。
如图8所示,作为另一方面,本申请还提供了一种设备800,包括一个或多个中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM803中,还存储有设备800操作所需的各种程序和数据。CPU801、ROM802以及RAM803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本公开的实施例,上述任一实施例描述的数据更新方法及数据恢复方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行数据更新方法及数据恢复方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。
作为又一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例的装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,该程序被一个或者一个以上的处理器用来执行描述于本申请的数据更新方法及数据恢复方法。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以通过执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以通过专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,各所述单元可以是设置在计算机或移动智能设备中的软件程序,也可以是单独配置的硬件装置。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离本申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (14)

1.一种数据更新方法,其特征在于,所述方法适用于分布式系统的主节点,所述方法包括:
接收用户终端生成并发送的第一数据更新请求信息;
对所述分布式系统中的若干副本节点广播所述第一数据更新请求信息,与各所述副本节点共同对所述第一数据更新请求信息所请求更新的第一数据进行共识,并在共识成功后,根据所述第一数据对本地数据进行更新。
2.根据权利要求1所述的方法,其特征在于,所述第一数据更新请求信息包括所述第一数据的操作类型、所述第一数据的行号及所述第一数据的行号对应的更新内容。
3.根据权利要求1所述的方法,其特征在于,所述第一数据更新请求信息包括所述第一数据更新请求信息的前一个数据更新请求信息所请求更新的数据的哈希值、所述第一数据的操作类型、所述第一数据的行号及所述第一数据的行号对应的更新内容。
4.根据权利要求3所述的方法,其特征在于,所述对所述分布式系统中的若干副本节点广播所述第一数据更新请求信息,与各所述副本节点共同对所述第一数据更新请求信息所请求更新的第一数据进行共识,并在共识成功后,根据所述第一数据对本地数据进行更新包括:
从所述本地数据中查询是否存在第二数据更新请求信息,所述第二数据更新请求信息所请求更新的数据的哈希值与所述前一个数据更新请求信息所请求更新的数据的哈希值相同:
是,则对分布式系统中的若干副本节点广播所述第一数据更新请求信息,与各所述副本节点共同对所述第一数据更新请求信息所请求更新的第一数据进行共识,并在共识成功后,根据所述第一数据对本地数据进行更新。
5.一种数据恢复方法,其特征在于,所述方法适用于对权利要求2所述的数据更新方法所更新的数据进行恢复,所述方法包括:
接收用户终端生成并发送的第三数据更新请求信息的数据恢复请求信息,读取所述第三数据更新请求信息所请求更新的第三数据;
读取所述第三数据更新请求信息的上一笔数据更新请求信息所请求更新的数据;
读取所读取的数据更新请求信息的上一笔数据更新请求信息所请求更新的数据,并循环当前步骤直至查找不到上一笔数据更新请求信息;
根据各所读取的数据及所述第三数据恢复所述数据恢复请求信息所请求恢复的数据。
6.一种数据恢复方法,其特征在于,所述方法适用于对权利要求3所述的数据更新方法所更新的数据进行恢复,所述方法包括:
接收用户终端生成并发送的第四数据更新请求信息的数据恢复请求信息,读取所述第四数据更新请求信息所请求更新的第四数据;
根据所述第四数据更新请求信息的前一个数据更新请求信息所请求更新的数据的哈希值查找是否存在前一个数据更新请求信息:是,则读取所查找到的数据更新请求信息所请求更新的数据;
根据所查找到的数据更新请求信息所请求更新的数据的哈希值查找是否存在上一笔数据更新请求信息:是,则读取所查找到的数据更新请求信息所请求更新的数据,并循环当前步骤直至查找不到上一笔数据更新请求信息;
根据各所读取的数据及所述第四数据恢复所述数据恢复请求信息所请求恢复的数据。
7.一种数据更新方法,其特征在于,包括:
生成并向分布式系统中的主节点发送第一数据更新请求信息,以供所述主节点接收所述第一数据更新请求信息,对分布式系统中的若干副本节点广播所述第一数据更新请求信息,与各所述副本节点共同对所述第一数据更新请求信息所请求更新的第一数据进行共识,并在共识成功后,根据所述第一数据对本地数据进行更新。
8.一种数据更新方法,其特征在于,所述方法适用于分布式系统的副本节点,所述方法包括:
接收主节点广播的第一数据更新请求信息;其中,所述第一数据更新请求信息由用户终端生成并向所述分布式系统的主节点发送;
与所述主节点及所述分布式系统中的若干其它副本节点共同对所述第一数据更新请求信息所请求更新的第一数据进行共识,并在共识成功后,根据所述第一数据对本地数据进行更新。
9.根据权利要求8所述的方法,其特征在于,所述第一数据更新请求信息包括所述第一数据的操作类型、所述第一数据的行号及所述第一数据的行号对应的更新内容。
10.根据权利要求8所述的方法,其特征在于,所述第一数据更新请求信息包括所述第一数据更新请求信息的前一个数据更新请求信息所请求更新的数据的哈希值、所述第一数据的操作类型、所述第一数据的行号及所述第一数据的行号对应的更新内容。
11.一种数据恢复方法,其特征在于,所述方法适用于对权利要求9所述的数据更新方法所更新的数据进行恢复,所述方法包括:
接收主节点广播的第五数据更新请求信息的数据恢复请求信息,读取所述第五数据更新请求信息所请求更新的第五数据;其中,所述第五数据更新请求信息由用户终端生成并向所述分布式系统的主节点发送;
读取所述第五数据更新请求信息的上一笔数据更新请求信息所请求更新的数据;
读取所读取的数据更新请求信息的上一笔数据更新请求信息所请求更新的数据,并循环当前步骤直至查找不到上一笔数据更新请求信息;
根据各所读取的数据及所述第五数据恢复所述数据恢复请求所请求恢复的数据。
12.一种数据恢复方法,其特征在于,所述方法适用于对权利要求10所述的数据更新方法所更新的数据进行恢复,所述方法包括:
接收主节点广播的第六数据更新请求信息的数据恢复请求信息,读取所述第六数据更新请求信息所请求更新的第六数据;其中,所述第六数据更新请求信息由用户终端生成并向所述分布式系统的主节点发送;
根据所述第六数据更新请求信息的前一个数据更新请求信息所请求更新的数据的哈希值查找是否存在前一个数据更新请求信息:是,则读取所查找到的数据更新请求信息所请求更新的数据;
根据所查找到的数据更新请求信息所请求更新的数据的哈希值查找是否存在上一笔数据更新请求信息:是,则读取所查找到的数据更新请求信息所请求更新的数据,并循环当前步骤直至查找不到上一笔数据更新请求信息;
根据各所读取的数据及所述第六数据恢复所述数据恢复请求信息所请求恢复的数据。
13.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1-12中任一项所述的方法。
14.一种存储有计算机程序的存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-12中任一项所述的方法。
CN201910157807.9A 2019-03-02 2019-03-02 数据更新方法、数据恢复方法、设备和存储介质 Pending CN109902097A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910157807.9A CN109902097A (zh) 2019-03-02 2019-03-02 数据更新方法、数据恢复方法、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910157807.9A CN109902097A (zh) 2019-03-02 2019-03-02 数据更新方法、数据恢复方法、设备和存储介质

Publications (1)

Publication Number Publication Date
CN109902097A true CN109902097A (zh) 2019-06-18

Family

ID=66946158

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910157807.9A Pending CN109902097A (zh) 2019-03-02 2019-03-02 数据更新方法、数据恢复方法、设备和存储介质

Country Status (1)

Country Link
CN (1) CN109902097A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101511078A (zh) * 2009-03-10 2009-08-19 中兴通讯股份有限公司 移动终端同步终端数据的挂起和恢复方法
CN103136200A (zh) * 2011-11-22 2013-06-05 中兴通讯股份有限公司 数据更新信息获取方法、装置及数据同步方法、装置
US8473775B1 (en) * 2010-12-14 2013-06-25 Amazon Technologies, Inc. Locality based quorums
CN106844102A (zh) * 2017-01-16 2017-06-13 腾讯科技(深圳)有限公司 数据恢复方法和装置
CN109327548A (zh) * 2018-11-27 2019-02-12 北京瑞卓喜投科技发展有限公司 一种区块链更新方法及区块链更新系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101511078A (zh) * 2009-03-10 2009-08-19 中兴通讯股份有限公司 移动终端同步终端数据的挂起和恢复方法
US8473775B1 (en) * 2010-12-14 2013-06-25 Amazon Technologies, Inc. Locality based quorums
US8812897B1 (en) * 2010-12-14 2014-08-19 Amazon Technologies, Inc. Locality based quorums
CN103136200A (zh) * 2011-11-22 2013-06-05 中兴通讯股份有限公司 数据更新信息获取方法、装置及数据同步方法、装置
CN106844102A (zh) * 2017-01-16 2017-06-13 腾讯科技(深圳)有限公司 数据恢复方法和装置
CN109327548A (zh) * 2018-11-27 2019-02-12 北京瑞卓喜投科技发展有限公司 一种区块链更新方法及区块链更新系统

Similar Documents

Publication Publication Date Title
CN109359222A (zh) 数据存储方法及系统、设备和存储介质
CN109408551A (zh) 数据查询方法及系统、共识方法及系统、设备和存储介质
CN103678556B (zh) 列式数据库处理的方法和处理设备
US7617257B2 (en) System for persistent caching of LDAP metadata in a cluster LDAP server topology
CN109933592A (zh) 数据存储方法、数据回滚方法、设备和存储介质
US8515912B2 (en) Sharing and deconflicting data changes in a multimaster database system
US20120209957A1 (en) Mobile bookmarks
CN109684333A (zh) 一种数据存储及裁剪方法、设备和存储介质
CN108984662A (zh) 一种区块链数据同步方法
US20070118572A1 (en) Detecting changes in data
AU2014262240A1 (en) Entity resolution from documents
CN109587271A (zh) 主链平行链架构系统及区块同步方法、设备和存储介质
CN109977274A (zh) 一种数据查询和验证方法、系统、设备及存储介质
US20110295929A1 (en) Optimistic Concurrency Utilizing Distributed Constraint Enforcement
CN110019080A (zh) 数据访问方法和装置
CN110392121A (zh) 平行链区块生成方法、设备和存储介质
CN110287170A (zh) 数据库升级方法、状态数据调用方法、设备和存储介质
CN109447639A (zh) 隐私交易余额扫描方法、设备和存储介质
Kvasnička et al. A hybrid of simplex method and simulated annealing
CN110287264A (zh) 分布式数据库的数据批量更新方法、装置以及系统
CN110442580A (zh) 一种区块链状态数据存储方法、设备和存储介质
CN106155566A (zh) 用于存储数据的方法、装置及系统
CN109886311A (zh) 增量聚类方法、装置、电子设备和计算机可读介质
CN110445843A (zh) 平行链区块推送方法、设备和存储介质
CN109614411A (zh) 数据存储方法、设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for 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: 20190618