CN109284621A - 数据保护/恢复方法和装置以及数据存储/保护方法 - Google Patents
数据保护/恢复方法和装置以及数据存储/保护方法 Download PDFInfo
- Publication number
- CN109284621A CN109284621A CN201710592005.1A CN201710592005A CN109284621A CN 109284621 A CN109284621 A CN 109284621A CN 201710592005 A CN201710592005 A CN 201710592005A CN 109284621 A CN109284621 A CN 109284621A
- Authority
- CN
- China
- Prior art keywords
- data
- label
- value
- identifier
- tag
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000013500 data storage Methods 0.000 title description 6
- 230000003247 decreasing effect Effects 0.000 claims description 31
- 238000011084 recovery Methods 0.000 claims description 30
- 238000007781 pre-processing Methods 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 11
- 230000002159 abnormal effect Effects 0.000 abstract description 16
- 230000004069 differentiation Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种数据保护方法及装置和数据恢复方法及装置,包括节点为写入数据设置标识和标签,在写入数据过程中出现重用标识时,节点为写入数据设置与上一次写入数据相同的标识,并按照预先设置的保护规则设置标签,以使标签不相同于上一次写入数据的标签;其中,标识用于表示与写入数据的对应关系,标签为按照预先设置的保护规则设置的用于区别出有效的写入数据。本申请通过对异常情况下的数据是否为有效数据进行的区分,为后续数据恢复时对有效数据的识别提供了保证,从而保证了异常情况下的数据安全性,进而防止了数据的错误和丢失。
Description
技术领域
本申请涉及但不限于分布式系统技术,尤指一种数据/恢复方法和装置以及数据存储/保护方法。
背景技术
在分布式系统中,各节点通常使用分布式锁来协同工作,各节点作为客户端向锁服务的节点注册,以此保证任意时刻同一把锁仅有同一个客户端持有。客户端与锁服务的节点通信异常意味着锁失效,此时,该客户端不应继续读写数据,发现锁失效后,客户端通过向节点注册回调的方法,根据业务逻辑对数据做适当防护,比如采用进程退出的方式停止数据操作。同时,会有新的客户端取得这把锁对外服务。
分布式锁应该保证任意时刻只有一个客户端持有同一把锁,目前,当节点发现客户端异常时,会触发上述注册回调,让客户端意识到自己已无效。但是,客户端的状态异常时,可能导致注册回调方法不能正常执行,导致同一把锁被两个客户端持有即分布式锁失效,从而出现数据双写,最终结果是用户数据写错甚至丢失。
发明内容
为了解决上述技术问题,本发明提供一种数据保护/恢复方法和装置以及数据存储/读取方法,能够保证异常情况下的数据安全性,防止用户数据的错误和丢失。
为了达到本发明目的,本发明提供了一种数据保护方法,包括:
节点为写入数据设置标识和标签;其中,标识用于表示与写入数据的对应关系,标签为按照预先设置的保护规则设置的用于区别出有效的写入数据;
在写入数据过程中出现重用标识时,节点为写入数据设置与上一次写入数据相同的标识,并按照预先设置的保护规则设置标签,以使标签不相同于上一次写入数据的标签。
可选地,所述节点启动时,所述方法还包括:
对应当前标识写入一条空数据,并按照所述保护规则设置标签为递增最值或递减最值。
可选地,所述节点在恢复数据中,所述方法还包括:
当读取的数据对应的标识与上一次读取的数据对应的标识相同时,按照所述保护规则选取满足保护规则的标签对应的数据作为该标识对应的数据。
可选地,所述保护规则包括:如果所述写入数据成功,所述标签的值设置为第一初始值;当出现所述标识相同的情况,所述标签的值按照预先设置的步长递增;
所述满足保护规则包括:对于对应于同一标识的多个数据,选择对应标签的值最大的数据作为有效数据。
可选地,所述保护规则包括:如果所述写入数据成功,所述标签的值设置为第二初始值;当出现所述标识相同的情况,所述标签的值按照预先设置的步长递减;
所述满足保护规则就是:对于对应于同一标识的多个数据,选择对应标签的值最小的数据作为有效数据。
本申请还提供了一种数据恢复方法,包括:
节点在恢复数据中,当读取的数据对应的标识与上一次读取的数据对应的标识相同时,按照预先设置的保护规则选取满足保护规则的标签对应的数据作为该标识对应的数据。
可选地,所述保护规则包括:如果所述写入数据成功,所述标签的值设置为第一初始值;当出现所述标识相同的情况,所述标签的值按照预先设置的步长递增;
所述满足保护规则包括:对于对应于同一标识的多个数据,选择对应标签的值最大的数据作为有效数据。
可选地,所述保护规则包括:如果所述写入数据成功,所述标签的值设置为第二初始值;当出现所述标识相同的情况,所述标签的值按照预先设置的步长递减;
所述满足保护规则就是:对于对应于同一标识的多个数据,选择对应标签的值最小的数据作为有效数据。
本申请又提供了一种数据保护装置,包括:第一设置模块、第一处理模块,其中,
第一设置模块,用于设置保护规则;
第一处理模块,用于为写入数据设置标识和标签,其中,标识用于表示与写入数据的对应关系,标签为按照预先设置的保护规则设置的用于区别出有效的写入数据;在写入数据过程中出现重用标识时,节点为写入数据设置与上一次写入数据相同的标识,并按照预先设置的保护规则设置标签,以使标签不相同于上一次写入数据的标签。
可选地,所述装置还包括:预处理模块,用于在自身所属节点启动时,对应当前标识写入一条空数据,并按照预先设置的保护规则设置标签为递增最值或递减最值。
可选地,所述保护规则包括:如果所述写入数据成功,所述标签的值设置为第一初始值;当出现所述标识相同的情况,所述标签的值按照预先设置的步长递增;或者,如果所述写入数据成功,所述标签的值设置为第二初始值;当出现所述标识相同的情况,所述标签的值按照预先设置的步长递减。
本申请还提供了一种数据恢复装置,包括:第二设置模块、第二处理模块,其中,
第二设置模块,用于设置保护规则;
第二处理模块,用于在自身所属节点恢复数据中,当读取的数据对应的标识与上一次读取的数据对应的标识相同时,按照预先设置的保护规则选取满足保护规则的标签对应的数据作为该标识对应的数据。
可选地,
所述保护规则包括:如果所述写入数据成功,所述标签的值设置为第一初始值;当出现所述标识相同的情况,所述标签的值按照预先设置的步长递增;所述满足保护规则包括:对于对应于同一标识的多个数据,选择对应标签的值最大的数据作为有效数据。
或者,
如果所述写入数据成功,所述标签的值设置为第二初始值;当出现所述标识相同的情况,所述标签的值按照预先设置的步长递减;所述满足保护规则就是:对于对应于同一标识的多个数据,选择对应标签的值最小的数据作为有效数据。
本申请又提供了一种节点,包括:设置模块、第一处理模块、第二处理模块,其中,
设置模块,用于设置保护规则;
第一处理模块,用于为写入数据设置标识和标签,其中,标识用于表示与写入数据的对应关系,标签为按照预先设置的保护规则设置的用于区别出有效的写入数据;在写入数据过程中出现重用标识时,节点为写入数据设置与上一次写入数据相同的标识,并按照预先设置的保护规则设置标签,以使标签不相同于上一次写入数据的标签;
第二处理模块,用于在自身所属节点恢复数据中,当读取的数据对应的标识与上一次读取的数据对应的标识相同时,按照预先设置的保护规则选取满足保护规则的标签对应的数据作为该标识对应的数据;
可选地,还包括:预处理模块,用于在自身所属节点启动时,对应当前标识写入一条空数据,并按照预先设置的保护规则设置标签为递增最值或递减最值。
可选地,
所述保护规则包括:如果所述写入数据成功,所述标签的值设置为第一初始值;当出现所述标识相同的情况,所述标签的值按照预先设置的步长递增;所述满足保护规则包括:对于对应于同一标识的多个数据,选择对应标签的值最大的数据作为有效数据。
或者,
如果所述写入数据成功,所述标签的值设置为第二初始值;当出现所述标识相同的情况,所述标签的值按照预先设置的步长递减;所述满足保护规则就是:对于对应于同一标识的多个数据,选择对应标签的值最小的数据作为有效数据。
本申请又提供了一种数据存储方法,所述数据包括标识和标签,该方法包括:
获取第一数据对应的标识;
确认所述第一数据对应的标识为重复数据,其中,该标识还对应于第二数据;
设置所述第一数据的标签,其中,该标签与所述第二数据的标签不同,标签用于指示具有相同标识的数据的有效性。
本申请还提供了一种数据读取方法,所述数据包括标识和标签,该方法包括:
获取标识;
确认所述标识为重复数据,其中,该标识分别对应于第一数据和第二数据;
获取所述第一数据和第二数据的标签,其中,标签用于指示具有相同标识的数据的有效性;
读取标签显示有效的数据。
与现有技术相比,本申请技术方案至少包括:节点为写入数据设置标识和标签,在写入数据过程中出现重用标识时,节点为写入数据设置与上一次写入数据相同的标识,并按照预先设置的保护规则设置标签,以使标签不相同于上一次写入数据的标签;其中,标识用于表示与写入数据的对应关系,标签为按照预先设置的保护规则设置的用于区别出有效的写入数据。本申请通过对异常情况下的数据是否为有效数据进行的区分,为后续数据恢复时对有效数据的识别提供了保证,从而保证了异常情况下的数据安全性,进而防止了数据的错误和丢失。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为本申请实施例中数据保护方法的流程图;
图2为本申请实施例中数据保护装置的组成结构示意图;
图3为本申请实施例中数据恢复装置的组成结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在本申请一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
对于云存储服务,每一次数据的写入,服务端的节点都会分配唯一的标识(ID)与该数据对应,随着数据的不断写入,ID连续递增。新旧客户端交替的使用ID来恢复内存数据结构对外服务。由于数据ID连续递增,对于每次的成功写入,ID都会加一。但是,如果写入失败,该ID会被重用,即下次写入仍然使用相同的ID。该ID会持久化到存储系统。新节点对外服务时使用同一个ID序列,以保证ID的连续性。
在锁服务正常的情况下,老的节点成功写入ID之后丢锁停止服务,新节点对外服务时会拿到ID这条数据,同时下一次写入数据会对应记录为ID+1,ID连续递增数据没有丢失。
但是,在异常时,比如分布式锁失效时,或者是节点与客户端通信异常等时,如果老的节点没能及时防护,同样可能写入ID+1。比如:假设由于写操作和网络都有延迟,节点1写入ID+1的数据1(data1)尚未完成时,如果节点2拿到锁启动,在启动之初,由于节点2看不到节点1对应ID+1写入的这条数据,于是节点2写入数据的对应编号会从ID+1开始,即对应ID+1写入数据2(data2)。这样一来,等到节点3再启动要恢复数据时,就会看到两条对应同一ID+1的数据,从而发生了数据双写的冲突问题。
分布式锁失效,或者客户端的状态异常如通信异常等时出现数据双写后,同一个ID可能被两个客户端分别写入不同的数据,本申请发明人发现,如果新增维度来表征写入该ID的哪个数据是有效的,那么,就能对无效的数据进行处理,从而保护用户数据不会出错。
图1为本申请实施例中数据保护方法的流程图,如图1所示,包括:
步骤100:节点为写入数据设置标识和标签,其中,标识用于表示与写入数据的对应关系,标签为按照预先设置的保护规则设置的用于区别出有效的写入数据。
本申请中,在写入数据时,对应写入的数据除了设置ID之外,还增加了一标签(tag)信息。
可选地,预先设置的保护规则可以包括:如果数据写入成功,tag的值设置为第一初始值,如0等;当出现ID相同的情况,tag按照预先设置的步长递增;相应地,满足保护规则就是:对于对应于同一ID的多个数据,选择对应tag的值最大的数据作为有效数据。
可选地,预先设置的保护规则也可以包括:如果数据写入成功,tag的值设置为第二初始值,如tag能设置的最大值;当出现ID相同的情况,tag按照预先设置的步长递减,相应地,满足保护规则就是:对于对应于同一ID的多个数据,选择对应tag的值最小的数据作为有效数据。
需要说明的是,节点写入数据时,如果写入成功,存储层入云储存或其他存储介质等会向用户返回成功回应。
需要说明的是,当递增至递增最值或递减至递减最值即最大值或者0,从初始值开始按照上述保护规则重新计数。
保护规则的目的就是为了对ID相同的数据进行区分,并将满足保护规则的数据作为对应该ID的有效数据,以上列举的保护规则的具体实现仅仅是几个实例而已,并不用于限定本申请的保护范围。
从本申请的保护规则可以看出,如果本次数据对应ID写入成功,则按照保护规则,本次数据对应的tag的值设置为初始值如0;下一次写入的数据如果对应ID+1,tag从0开始计数,该数据正确有效。如果本次数据的写入不能确定是否成功,比如超时等,那么,下一次写入数据的ID会维持不变,假设按照保护规则按照预先设置的步长递减,则tag的值会是tag+1。
对应数据的ID和tag的值均与数据一起持久化到存储中,以便节点更替需要恢复数据时能够识别出哪些数据是有效的,哪些数据是无效的。正确写入的数据对应的ID总是连续递增的,对于ID相同而tag的值不同的数据,按照保护规则会读取tag的值最大或最小的数据即最后一次写入的数据作为有效数据。
本申请数据保护方法还包括:
当节点启动时,对应当前标识写入一条空数据,并按照预先设置的保护规则设置标签为递增最值或递减最值。这里,节点启动包括:新节点的第一次启动,也包括老节点的重新启动,也就是说,只要节点发生启动的动作,就对应当前标识写入一条空数据,并按照预先设置的保护规则设置标签为递增最值或递减最值。
可选地,当满足保护规则是:对于对应于同一ID的多个数据,选择对应tag的值最大的数据作为有效数据的情况,节点启动时对应写入的空数据设置的tag的值为最大值;当满足保护规则是:对于对应于同一ID的多个数据,选择对应tag的值最小的数据作为有效数据的情况,节点启动时对应写入的空数据设置的tag的值为0。
本申请提供的技术方案中,由于新启动的节点或者节点重新启动后不能确定是否存在老的节点的最后一次写入尚未成功的情况,因此,初始化tag的值为递增最值或递减最值,并写入一条空数据。这样,按照预先设置的保护规则,如果空数据对应的ID与之前的相同,说明上一次写入该ID的数据无效;如果空数据对应的ID与之前的不同,说明上一次写入该ID的数据有效,此时,只是相当于多写入了一条空数据,对数据安全没有任何影响。
步骤101:在写入数据过程中出现重用标识时,节点为写入数据设置与上一次写入数据相同的标识,并按照预先设置的保护规则设置标签,以使标签不相同于上一次写入数据的标签。
本步骤中的按照预先设置的保护规则设置标签,以使标签不相同于上一次写入数据的标签包括:按照预先设置的保护规则,当出现ID相同的情况,tag会按照预先设置的步长递增或者递减。举例来看,
比如,如表1所示,本实施例中,不涉及新旧节点更替的情况,
表1
从表1中可以看出,如果节点1写入对应ID=6,tag=0的这条数据出错,那么,ID=6会被重用,如表1所示,下一次写入数据会被设置为对应ID=6,tag=1。两次写入数据相比,对应的ID相同,因此,按照预先设置的保护规则,满足tag的值为更大的data4会被认为是有效数据。
根据本申请另一个实施例,如表2所示,本实施例中,涉及新节点启动的情况,假设老的节点如表2中的节点1发生异常,比如分布式锁失效时,或者是节点与客户端通信异常等时,需要启动新节点2的情况。
表2
从表2中可以看出,本实施例中,由于不能确定在新启动的节点2之前,老的节点即表2中的节点1是否存在最后一次写入未成功的情况,因此,初始化tag的值为递增最值即最大值,并写入一条空数据(empty)。如表2所示,在这条空数据之前,节点1对应ID=5也写入一条数据3,因此,当这些数据被恢复读取时,按照预先设置的保护规则,tag值为empty的这条数据的tag的值为递增最值即满足保护规则,会被认为是有效的数据。
根据本申请另一个实施例,如表3所示,本实施例中,涉及新节点启动的情况,假设老的节点如表2中的节点1发生异常,比如分布式锁失效时,或者是节点与客户端通信异常等时,需要启动新节点2的情况。
表3
从表3中可以看出,本实施例中,由于不能确定新启动的节点2之前,老的节点即表3中的节点1是否存在最后一次写入未成功的情况,因此,初始化tag的值为递增最值即最大值,并写入一条空数据(empty)。如表3所示,正常(例如,锁服务正常,或通信正常等)情况下,节点1写入ID=6的数据后停止服务,节点2启动之后ID从7开始计数,写入一条Empty。因此,当这些数据被恢复读取时,按照预先设置的保护规则,ID是连续的,会被认为是正常的没有冲突的数据。
上述表1、表2、表3所示的实施例均是以tag的值递增为例,如果tag的值是递减的,按照上述本申请技术方案的描述,本领域技术人员是容易获知具体实现的,这里不再赘述。
上述本申请提供的任一项数据保护方法,通过对异常情况下的数据是否为有效数据进行的区分,为后续数据恢复时对有效数据的识别提供了保证,从而保证了异常情况下的数据安全性,进而防止了数据的错误和丢失。
本申请还提供一种数据恢复方法,包括:节点在恢复数据中,当读取的数据对应的标识与上一次读取的数据对应的标识相同时,按照预先设置的保护规则选取满足保护规则的标签对应的数据作为该标识对应的数据。
可选地,预先设置的保护规则可以包括:如果数据写入成功,tag的值设置为第一初始值,如0、1、2等;当出现ID相同的情况,tag按照预先设置的步长递增;相应地,满足保护规则就是:对于对应于同一ID的多个数据,选择对应tag的值最大的数据作为有效数据。
可选地,预先设置的保护规则也可以包括:如果数据写入成功,tag的值设置为第二初始值,如tag能设置的最大值;当出现ID相同的情况,tag按照预先设置的步长递减,相应地,满足保护规则就是:对于对应于同一ID的多个数据,选择对应tag的值最小的数据作为有效数据。
需要说明的是,当递增至递增最值或递减至递减最值即最大值或者0,从初始值开始按照上述保护规则重新计数。
保护规则的目的就是为了对ID相同的数据进行区分,并将满足保护规则的数据作为对应该ID的有效数据,以上列举的保护规则的具体实现仅仅是几个实例而已,并不用于限定本申请的保护范围。
举例来看,假设如表1所示的数据持久化到了存储中,由于异常情况,需要启动节点2,这时,节点2会对持久化在存储中的数据进行恢复读取,对于对应ID=6的两个数据,按照预先设置的保护规则,由于数据4对应的tag的值比数据3对应的tag的值大,因此,数据4被认为是有效的数据,而数据3则被认为是无效的数据并被覆盖掉。
再如表2所示的数据持久化到了存储中,由于异常情况,需要启动节点3,这时,节点3会对持久化在存储中的数据进行恢复读取,对于对应ID=6的两个数据,按照预先设置的保护规则,由于空数据对应的tag的值是最大值,比数据3对应的tag的值大,因此,空数据被认为是有效的数据,而数据3则被认为是无效的数据并被覆盖掉。
通过上述任一项数据恢复方法,在数据恢复时,按照对数据的不同区分识别出了有效数据,保证了异常情况下的数据安全性,从而防止了数据的错误和丢失。
本申请实施例还提供了一种数据存储方法,所述数据包括标识和标签,该方法包括:
获取第一数据对应的标识;
确认所述第一数据对应的标识为重复数据,其中,该标识还对应于第二数据;
设置所述第一数据的标签,其中,该标签与所述第二数据的标签不同,标签用于指示具有相同标识的数据的有效性。
本申请实施例又提供了一种数据读取方法,所述数据包括标识和标签,该方法包括:
获取标识;
确认所述标识为重复数据,其中,该标识分别对应于第一数据和第二数据;
获取所述第一数据和第二数据的标签,其中,标签用于指示具有相同标识的数据的有效性;
获取标签显示有效的数据。
图2为本申请实施例中数据保护装置的组成结构示意图,如图2所示,至少包括:第一设置模块、第一处理模块,其中,
第一设置模块,用于设置保护规则;
第一处理模块,用于为写入数据设置标识和标签,其中,标识用于表示与写入数据的对应关系,标签为按照预先设置的保护规则设置的用于区别出有效的写入数据;在写入数据过程中出现重用标识时,节点为写入数据设置与上一次写入数据相同的标识,并按照预先设置的保护规则设置标签,以使标签不相同于上一次写入数据的标签。
本申请数据保护装置还包括:预处理模块,用于在自身所属节点启动时,对应当前标识写入一条空数据,并按照预先设置的保护规则设置标签为递增最值或递减最值。
可选地,预先设置的保护规则可以包括:如果数据写入成功,tag的值设置为第一初始值,如0等;当出现ID相同的情况,tag按照预先设置的步长递增;相应地,满足保护规则就是:对于对应于同一ID的多个数据,选择对应tag的值最大的数据作为有效数据。
可选地,预先设置的保护规则也可以包括:如果数据写入成功,tag的值设置为第二初始值,如tag能设置的最大值;当出现ID相同的情况,tag按照预先设置的步长递减,相应地,满足保护规则就是:对于对应于同一ID的多个数据,选择对应tag的值最小的数据作为有效数据。
需要说明的是,当递增至递增最值或递减至递减最值即最大值或者0,从初始值开始按照上述保护规则重新计数。
保护规则的目的就是为了对ID相同的数据进行区分,并将满足保护规则的数据作为对应该ID的有效数据,以上列举的保护规则的具体实现仅仅是几个实例而已,并不用于限定本申请的保护范围。
可选地,当满足保护规则是:对于对应于同一ID的多个数据,选择对应tag的值最大的数据作为有效数据的情况,节点启动时对应写入的空数据设置的tag的值为最大值;当满足保护规则是:对于对应于同一ID的多个数据,选择对应tag的值最小的数据作为有效数据的情况,节点启动时对应写入的空数据设置的tag的值为0。
图3为本申请实施例中数据恢复装置的组成结构示意图,如图2所示,至少包括第二设置模块、第二处理模块,其中,
第二设置模块,用于设置保护规则;
第二处理模块,用于在自身所属节点恢复数据中,当读取的数据对应的标识与上一次读取的数据对应的标识相同时,按照预先设置的保护规则选取满足保护规则的标签对应的数据作为该标识对应的数据。
可选地,预先设置的保护规则可以包括:如果数据写入成功,tag的值设置为第一初始值,如0等;当出现ID相同的情况,tag按照预先设置的步长递增;相应地,满足保护规则就是:对于对应于同一ID的多个数据,选择对应tag的值最大的数据作为有效数据。
可选地,预先设置的保护规则也可以包括:如果数据写入成功,tag的值设置为第二初始值,如tag能设置的最大值;当出现ID相同的情况,tag按照预先设置的步长递减,相应地,满足保护规则就是:对于对应于同一ID的多个数据,选择对应tag的值最小的数据作为有效数据。
需要说明的是,当递增至递增最值或递减至递减最值即最大值或者0,从初始值开始按照上述保护规则重新计数。
保护规则的目的就是为了对ID相同的数据进行区分,并将满足保护规则的数据作为对应该ID的有效数据,以上列举的保护规则的具体实现仅仅是几个实例而已,并不用于限定本申请的保护范围。
本申请还提供一种节点,包括上述图2所示的任一数据保护装置。
本申请再提供一种节点,包括上述图3所示的任一数据恢复装置。
本申请又提供一种节点,包括上述图2所示的任一数据保护装置和图3所示的任一数据恢复装置,此时,第一设置模块和第二设置模块合并为一个设置模块。具体地,节点又可以是至少包括:设置模块、第一处理模块、第二处理模块,其中,
设置模块,用于设置保护规则;
第一处理模块,用于为写入数据设置标识和标签,其中,标识用于表示与写入数据的对应关系,标签为按照预先设置的保护规则设置的用于区别出有效的写入数据;在写入数据过程中出现重用标识时,节点为写入数据设置与上一次写入数据相同的标识,并按照预先设置的保护规则设置标签,以使标签不相同于上一次写入数据的标签。
第二处理模块,用于在自身所属节点恢复数据中,当读取的数据对应的标识与上一次读取的数据对应的标识相同时,按照预先设置的保护规则选取满足保护规则的标签对应的数据作为该标识对应的数据。
本申请包括数据保护装置和数据恢复装置的节点还包括:预处理模块,用于在自身所属节点启动时,对应当前标识写入一条空数据,并按照预先设置的保护规则设置标签为递增最值或递减最值。
虽然本申请所揭露的实施方式如上,但所述的内容仅为便于理解本申请而采用的实施方式,并非用以限定本申请。任何本申请所属领域内的技术人员,在不脱离本申请所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本申请的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (18)
1.一种数据保护方法,其特征在于,包括:
节点为写入数据设置标识和标签;其中,标识用于表示与写入数据的对应关系,标签为按照预先设置的保护规则设置的用于区别出有效的写入数据;
在写入数据过程中出现重用标识时,节点为写入数据设置与上一次写入数据相同的标识,并按照预先设置的保护规则设置标签,以使标签不相同于上一次写入数据的标签。
2.根据权利要求1所述的数据保护方法,其特征在于,所述节点启动时,所述方法还包括:
对应当前标识写入一条空数据,并按照所述保护规则设置标签为递增最值或递减最值。
3.根据权利要求1所述的数据保护方法,其特征在于,所述节点在恢复数据中,所述方法还包括:
当读取的数据对应的标识与上一次读取的数据对应的标识相同时,按照所述保护规则选取满足保护规则的标签对应的数据作为该标识对应的数据。
4.根据权利要求1、2或3所述的数据保护方法,其特征在于,
所述保护规则包括:如果所述写入数据成功,所述标签的值设置为第一初始值;当出现所述标识相同的情况,所述标签的值按照预先设置的步长递增;
所述满足保护规则包括:对于对应于同一标识的多个数据,选择对应标签的值最大的数据作为有效数据。
5.根据权利要求1、2或3所述的数据保护方法,其特征在于,
所述保护规则包括:如果所述写入数据成功,所述标签的值设置为第二初始值;当出现所述标识相同的情况,所述标签的值按照预先设置的步长递减;
所述满足保护规则就是:对于对应于同一标识的多个数据,选择对应标签的值最小的数据作为有效数据。
6.一种数据恢复方法,其特征在于,包括:
节点在恢复数据中,当读取的数据对应的标识与上一次读取的数据对应的标识相同时,按照预先设置的保护规则选取满足保护规则的标签对应的数据作为该标识对应的数据。
7.根据权利要求6所述的数据恢复方法,其特征在于,
所述保护规则包括:如果所述写入数据成功,所述标签的值设置为第一初始值;当出现所述标识相同的情况,所述标签的值按照预先设置的步长递增;
所述满足保护规则包括:对于对应于同一标识的多个数据,选择对应标签的值最大的数据作为有效数据。
8.根据权利要求6所述的数据恢复方法,其特征在于,
所述保护规则包括:如果所述写入数据成功,所述标签的值设置为第二初始值;当出现所述标识相同的情况,所述标签的值按照预先设置的步长递减;
所述满足保护规则就是:对于对应于同一标识的多个数据,选择对应标签的值最小的数据作为有效数据。
9.一种数据保护装置,其特征在于,包括:第一设置模块、第一处理模块,其中,
第一设置模块,用于设置保护规则;
第一处理模块,用于为写入数据设置标识和标签,其中,标识用于表示与写入数据的对应关系,标签为按照预先设置的保护规则设置的用于区别出有效的写入数据;在写入数据过程中出现重用标识时,节点为写入数据设置与上一次写入数据相同的标识,并按照预先设置的保护规则设置标签,以使标签不相同于上一次写入数据的标签。
10.根据权利要求9所述的数据保护装置,其特征在于,所述装置还包括:预处理模块,用于在自身所属节点启动时,对应当前标识写入一条空数据,并按照预先设置的保护规则设置标签为递增最值或递减最值。
11.根据权利要求9或10所述的数据保护装置,其特征在于,
所述保护规则包括:如果所述写入数据成功,所述标签的值设置为第一初始值;当出现所述标识相同的情况,所述标签的值按照预先设置的步长递增;或者,如果所述写入数据成功,所述标签的值设置为第二初始值;当出现所述标识相同的情况,所述标签的值按照预先设置的步长递减。
12.一种数据恢复装置,其特征在于,包括:第二设置模块、第二处理模块,其中,
第二设置模块,用于设置保护规则;
第二处理模块,用于在自身所属节点恢复数据中,当读取的数据对应的标识与上一次读取的数据对应的标识相同时,按照预先设置的保护规则选取满足保护规则的标签对应的数据作为该标识对应的数据。
13.根据权利要求12所述的数据恢复装置,其特征在于,
所述保护规则包括:如果所述写入数据成功,所述标签的值设置为第一初始值;当出现所述标识相同的情况,所述标签的值按照预先设置的步长递增;所述满足保护规则包括:对于对应于同一标识的多个数据,选择对应标签的值最大的数据作为有效数据;
或者,
如果所述写入数据成功,所述标签的值设置为第二初始值;当出现所述标识相同的情况,所述标签的值按照预先设置的步长递减;所述满足保护规则就是:对于对应于同一标识的多个数据,选择对应标签的值最小的数据作为有效数据。
14.一种节点,其特征在于,包括:设置模块、第一处理模块、第二处理模块,其中,
设置模块,用于设置保护规则;
第一处理模块,用于为写入数据设置标识和标签,其中,标识用于表示与写入数据的对应关系,标签为按照预先设置的保护规则设置的用于区别出有效的写入数据;在写入数据过程中出现重用标识时,节点为写入数据设置与上一次写入数据相同的标识,并按照预先设置的保护规则设置标签,以使标签不相同于上一次写入数据的标签;
第二处理模块,用于在自身所属节点恢复数据中,当读取的数据对应的标识与上一次读取的数据对应的标识相同时,按照预先设置的保护规则选取满足保护规则的标签对应的数据作为该标识对应的数据。
15.根据权利要求14所述的节点,其特征在于,还包括:预处理模块,用于在自身所属节点启动时,对应当前标识写入一条空数据,并按照预先设置的保护规则设置标签为递增最值或递减最值。
16.根据权利要求14或15所述的节点,其特征在于,
所述保护规则包括:如果所述写入数据成功,所述标签的值设置为第一初始值;当出现所述标识相同的情况,所述标签的值按照预先设置的步长递增;所述满足保护规则包括:对于对应于同一标识的多个数据,选择对应标签的值最大的数据作为有效数据;
或者,
如果所述写入数据成功,所述标签的值设置为第二初始值;当出现所述标识相同的情况,所述标签的值按照预先设置的步长递减;所述满足保护规则就是:对于对应于同一标识的多个数据,选择对应标签的值最小的数据作为有效数据。
17.一种数据存储方法,其特征在于,所述数据包括标识和标签,该方法包括:
获取第一数据对应的标识;
确认所述第一数据对应的标识为重复数据,其中,该标识还对应于第二数据;
设置所述第一数据的标签,其中,该标签与所述第二数据的标签不同,标签用于指示具有相同标识的数据的有效性。
18.一种数据读取方法,其特征在于,所述数据包括标识和标签,该方法包括:
获取标识;
确认所述标识为重复数据,其中,该标识分别对应于第一数据和第二数据;
获取所述第一数据和第二数据的标签,其中,标签用于指示具有相同标识的数据的有效性;
读取标签显示有效的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710592005.1A CN109284621B (zh) | 2017-07-19 | 2017-07-19 | 数据保护/恢复方法和装置以及数据存储/保护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710592005.1A CN109284621B (zh) | 2017-07-19 | 2017-07-19 | 数据保护/恢复方法和装置以及数据存储/保护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109284621A true CN109284621A (zh) | 2019-01-29 |
CN109284621B CN109284621B (zh) | 2022-10-25 |
Family
ID=65184666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710592005.1A Active CN109284621B (zh) | 2017-07-19 | 2017-07-19 | 数据保护/恢复方法和装置以及数据存储/保护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109284621B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1501263A (zh) * | 2002-11-13 | 2004-06-02 | �������ʿƿƼ�����˾ | 借助半导体存储装置实现数据安全存储和算法存储的方法 |
CN1991870A (zh) * | 2005-12-28 | 2007-07-04 | 株式会社Pfu | 数据删改防止方法及数据删改防止系统 |
CN101436158B (zh) * | 2008-12-25 | 2011-07-13 | 中兴通讯股份有限公司 | 一种基于嵌入式设备闪存的参数管理方法和系统 |
CN102521256A (zh) * | 2011-11-17 | 2012-06-27 | 广东电网公司电力科学研究院 | 高可靠性的实时/历史数据库数据保护方法 |
CN102713851A (zh) * | 2009-12-10 | 2012-10-03 | 国际商业机器公司 | 虚拟服务器中的逻辑数据对象重用 |
CN104461380A (zh) * | 2014-11-17 | 2015-03-25 | 华为技术有限公司 | 数据存储方法及装置 |
CN104615504A (zh) * | 2015-02-06 | 2015-05-13 | 浪潮(北京)电子信息产业有限公司 | 一种实现数据保护的方法及装置 |
CN105138655A (zh) * | 2015-08-31 | 2015-12-09 | 深圳市茁壮网络股份有限公司 | 一种数据存储、读取方法及装置 |
CN105242881A (zh) * | 2015-10-12 | 2016-01-13 | 创新科软件技术(深圳)有限公司 | 分布式存储系统及其数据读写方法 |
CN105447012A (zh) * | 2014-08-15 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 一种用于数据库的写入互斥方法及装置 |
CN105630418A (zh) * | 2015-12-24 | 2016-06-01 | 曙光信息产业(北京)有限公司 | 一种数据存储方法及装置 |
CN105718212A (zh) * | 2014-12-18 | 2016-06-29 | 爱思开海力士有限公司 | 数据储存装置及其操作方法 |
WO2016117354A1 (ja) * | 2015-01-19 | 2016-07-28 | ソニー株式会社 | 情報処理装置および方法、並びにプログラム |
-
2017
- 2017-07-19 CN CN201710592005.1A patent/CN109284621B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1501263A (zh) * | 2002-11-13 | 2004-06-02 | �������ʿƿƼ�����˾ | 借助半导体存储装置实现数据安全存储和算法存储的方法 |
CN1991870A (zh) * | 2005-12-28 | 2007-07-04 | 株式会社Pfu | 数据删改防止方法及数据删改防止系统 |
CN101436158B (zh) * | 2008-12-25 | 2011-07-13 | 中兴通讯股份有限公司 | 一种基于嵌入式设备闪存的参数管理方法和系统 |
CN102713851A (zh) * | 2009-12-10 | 2012-10-03 | 国际商业机器公司 | 虚拟服务器中的逻辑数据对象重用 |
CN102521256A (zh) * | 2011-11-17 | 2012-06-27 | 广东电网公司电力科学研究院 | 高可靠性的实时/历史数据库数据保护方法 |
CN105447012A (zh) * | 2014-08-15 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 一种用于数据库的写入互斥方法及装置 |
CN104461380A (zh) * | 2014-11-17 | 2015-03-25 | 华为技术有限公司 | 数据存储方法及装置 |
CN105718212A (zh) * | 2014-12-18 | 2016-06-29 | 爱思开海力士有限公司 | 数据储存装置及其操作方法 |
WO2016117354A1 (ja) * | 2015-01-19 | 2016-07-28 | ソニー株式会社 | 情報処理装置および方法、並びにプログラム |
CN104615504A (zh) * | 2015-02-06 | 2015-05-13 | 浪潮(北京)电子信息产业有限公司 | 一种实现数据保护的方法及装置 |
CN105138655A (zh) * | 2015-08-31 | 2015-12-09 | 深圳市茁壮网络股份有限公司 | 一种数据存储、读取方法及装置 |
CN105242881A (zh) * | 2015-10-12 | 2016-01-13 | 创新科软件技术(深圳)有限公司 | 分布式存储系统及其数据读写方法 |
CN105630418A (zh) * | 2015-12-24 | 2016-06-01 | 曙光信息产业(北京)有限公司 | 一种数据存储方法及装置 |
Non-Patent Citations (2)
Title |
---|
ALFREDO FERRO等: "An Efficient Duplicate Record Detection Using q-Grams Array", 《DAWAK 2010: DATA WAREHOUSING AND KNOWLEDGE DISCOVERY》 * |
岳虹等: "一种基于软硬件协同的程序安全关键数据动态保护机制", 《计算机工程与科学》 * |
Also Published As
Publication number | Publication date |
---|---|
CN109284621B (zh) | 2022-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106776130B (zh) | 一种日志恢复方法、存储装置和存储节点 | |
CN107506266B (zh) | 一种数据恢复方法及系统 | |
CN106155839B (zh) | 一种用于备份数据的方法与设备 | |
EP3147797B1 (en) | Data management method, node and system for database cluster | |
CN103645972A (zh) | 系统自动恢复方法及装置 | |
WO2018107792A1 (zh) | 数据的增量恢复方法和装置 | |
CN105653345A (zh) | 用于支持对数据的非易失性随机访问的方法和设备 | |
CN112579327B (zh) | 一种故障检测方法、装置及设备 | |
US20180121531A1 (en) | Data Updating Method, Device, and Related System | |
CN110286853A (zh) | 一种数据写入方法和装置、计算机可读存储介质 | |
CN109753378A (zh) | 一种内存故障的隔离方法、装置、系统及可读存储介质 | |
CN111176888A (zh) | 云存储的容灾方法、装置及系统 | |
CN110737716A (zh) | 一种数据写入的方法和装置 | |
CN104268032A (zh) | 一种多控制器的快照处理方法及装置 | |
CN110543398A (zh) | 一种故障信息的记录方法和系统 | |
CN104133742A (zh) | 一种数据保护的方法及装置 | |
CN109284621B (zh) | 数据保护/恢复方法和装置以及数据存储/保护方法 | |
US8473464B2 (en) | Method and device for data recovery using bit logging | |
CN113918371B (zh) | 一种内存处理方法及装置 | |
US20100169572A1 (en) | Data storage method, apparatus and system for interrupted write recovery | |
CN110968456A (zh) | 分布式存储系统中故障磁盘的处理方法及装置 | |
CN105260132B (zh) | 一种热加载磁盘过滤驱动的方法与设备 | |
CN107025150A (zh) | 一种实现数据备份实时恢复控制的系统及其方法 | |
CN111090491B (zh) | 虚拟机任务状态的恢复方法、装置及电子设备 | |
CN109728949B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |