CN102833273A - 临时故障时的数据修复方法及分布式缓存*** - Google Patents

临时故障时的数据修复方法及分布式缓存*** Download PDF

Info

Publication number
CN102833273A
CN102833273A CN2011101576931A CN201110157693A CN102833273A CN 102833273 A CN102833273 A CN 102833273A CN 2011101576931 A CN2011101576931 A CN 2011101576931A CN 201110157693 A CN201110157693 A CN 201110157693A CN 102833273 A CN102833273 A CN 102833273A
Authority
CN
China
Prior art keywords
data
server
key
replica
replica server
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
Application number
CN2011101576931A
Other languages
English (en)
Other versions
CN102833273B (zh
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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201110157693.1A priority Critical patent/CN102833273B/zh
Priority to PCT/CN2012/070849 priority patent/WO2012171345A1/zh
Publication of CN102833273A publication Critical patent/CN102833273A/zh
Application granted granted Critical
Publication of CN102833273B publication Critical patent/CN102833273B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Retry When Errors Occur (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明公开了一种临时故障时的数据修复方法,所述方法包括:协同服务器向副本服务器发起数据操作时,发现有副本服务器故障,则生成包含有操作过的各数据键(Key)的Key变更记录;在所述副本服务器从故障中恢复后,所述协同服务器根据所述Key变更记录,向所述副本服务器发起数据修复操作;所述副本服务器根据所述协同服务器发起的数据修复操作,进行本地数据修复。本发明还公开了一种用于临时故障时的数据修复的分布式缓存***,保证了临时故障恢复后,数据的多个副本间仍能够保持一致性,提高了分布式缓存***保存数据的准确性,提升了分布式缓存***的质量属性,优化了应用的体验。

Description

临时故障时的数据修复方法及分布式缓存***
技术领域
本发明涉及云计算技术领域,尤其涉及一种临时故障时的数据修复方法及分布式缓存***。
背景技术
云计算(Cloud Computing)是网格计算(Grid Computing)、分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(UtilityComputing)网络存储(Network Storage Technologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机技术和网络技术发展融合的产物。它旨在通过网络把多个成本相对较低的计算实体整合成一个具有强大计算能力的***。分布式缓存是云计算范畴中的一个领域,其作用是提供海量数据的分布式存储服务以及高速读写访问的能力。
分布式缓存***由若干服务器节点和客户端互相连接构成,其中,服务器节点负责数据的存储,客户端可以对服务器节点做数据的写入、读取、更新、删除等操作。一般来说,写入的数据不可能只保存在单个服务器节点上,而是在多台服务器节点上保存同一个数据的副本,互为备份,所述数据由键(Key)和值(Value)构成,Key相当于数据的索引,Value是Key所代表数据的数据内容,逻辑上Key和Value是一一对应的关系。
在分布式缓存***中,保证数据的一致性是关键问题。在故障恢复后,数据在分布式缓存***中各服务器节点上保存的各个副本可能会变得不一致。例如,在对一个Key对应的数据反复执行写入、更新、删除等动作期间,如果存在网络故障或各种软硬件故障,则在故障恢复后,不同的服务器节点上保存的所述Key对应的Value可能就会不同。
现有技术在故障恢复后,如果立即要通过Key读取数据,则将各个副本取出并比较,根据一定的数据版本号比较规则选择出正确的Value,同时对旧数据进行修复,以保持同一数据的多个副本的一致性。但如果从故障恢复到需要通过Key读取数据之间,多个副本所在的服务器节点相继发生了多次故障,则在需要通过Key读取数据时,可能会出现读不到数据、或读到较旧的数据、或读到的各个副本间无从比较新旧等情况,从而降低了分布式缓存***的质量属性,并且严重影响了分布式缓存***的应用体验。
发明内容
有鉴于此,本发明的主要目的在于提供一种临时故障时的数据修复方法及分布式缓存***,能够在分布式缓存***中服务器节点故障恢复后维持同一数据各副本的一致性。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种临时故障时的数据修复方法,所述方法包括:
协同服务器向副本服务器发起数据操作时,发现有副本服务器故障,则生成包含有操作过的各数据键(Key)的Key变更记录;
在所述副本服务器从故障中恢复后,所述协同服务器根据所述Key变更记录,向所述副本服务器发起数据修复操作;
所述副本服务器根据所述协同服务器发起的数据修复操作,进行本地数据修复。
在上述方案中,所述向副本服务器发起数据操作,包括:向副本服务器发起数据的写入操作或更新操作。
在上述方案中,所述生成包含有故障期间进行过操作的各数据Key的Key变更记录,还包括:
所述协同服务器为所述副本服务器建立存储集;
在所述副本服务器故障期间,所述协同服务器生成包含有故障期间操作过的各数据Key的Key变更记录,并保存到所述副本服务器的存储集中。
在上述方案中,所述协同服务器根据所保存的Key变更记录,向所述副本服务器发起数据修复操作,包括:
所述协同服务器获取所述Key变更记录中各Key对应的所有数据副本,并识别出所述Key变更记录中各Key对应的上一次操作过的数据副本;
使用识别出的所述上一次进行过操作的数据副本对所述副本服务器发起数据修复操作。
在上述方案中,所述识别出所述Key变更记录中各Key对应的上一次操作过的数据副本,为:
对所获取的所有数据副本中相同Key的多个数据副本进行版本比较,得到所述各Key对应的上一次操作过的数据副本。
在上述方案中,所述协同服务器获取所述Key变更记录中各Key对应的所有数据副本,为:
所述协同服务器从所述各Key对应的所有副本服务器中读取所述各Key对应的数据副本、以及从自身获取所述各Key对应的数据副本。
在上述方案中,所述副本服务器根据所述协同服务器发起的数据修复操作,进行本地数据修复,包括:
所述副本服务器根据所述Key变更记录中各Key对应的上一次操作过的数据副本,更新本地保存的数据副本。
在上述方案中,在所述副本服务器根据所述协同服务器发起的数据修复操作,进行本地数据修复之后,所述方法还包括:
所述副本服务器在更新本地保存的数据副本后,向所述协同服务器返回修复结果;
在所述修复结果为失败时,所述协同服务器继续向所述副本服务器发起数据更新操作。
本发明还提供了一种用于临时故障时数据修复的分布式缓存***,所述***包括:协同服务器、以及一个或多个副本服务器,其中,
协同服务器,用于向所述一个或多个副本服务器发起数据操作时,发现有副本服务器故障,则生成包含有操作过的各数据Key的Key变更记录;以及,用于在所述副本服务器从故障中恢复后,根据所述Key变更记录,向所述副本服务器发起数据修复操作;
所述一个或多个副本服务器,用于在故障恢复后,根据所述协同服务器发起的数据修复操作进行本地数据修复。
在上述方案中,所述协同服务器,还用于所述各副本服务器建立存储集;在所述各副本服务器故障期间,生成包含有故障期间操作过的各数据Key的Key变更记录,并保存到所述各副本服务器的存储集中。
在上述方案中,所述协同服务器,还用于获取所述Key变更记录中各Key对应的所有数据副本,识别出所述Key变更记录中各Key对应的上一次操作过的数据副本,并使用识别出的所述上一次操作过的数据副本对所述副本服务器发起数据修复操作。
在上述方案中,所述副本服务器,还用于根据所述协同服务器发起数据修复操作使用的所述上一次操作过的数据副本,更新本地保存的数据副本。
在上述方案中,所述副本服务器,还用于在更新本地保存的数据副本后,向所述协同服务器返回修复结果;所述协同服务器,还用于在所述副本服务器反馈的修复结果为失败时,继续向所述副本服务器发起数据更新操作。
本发明所提供临时故障时的数据修复方法及分布式缓存***,由协同服务器在发现有副本服务器故障时,生成Key变更记录,在所述副本服务器从故障中恢复后,根据所述Key变更记录向所述副本服务器发起数据修复操作,使得所述副本服务器能够及时进行本地数据修复,从而保证了临时故障恢复后,数据的多个副本间仍能够保持一致性,提高了分布式缓存***保存数据的准确性,提升了分布式缓存***的质量属性,优化了应用的体验。
附图说明
图1为本发明一种临时故障时的数据修复方法的实现流程图;
图2为本发明一种具体实施例中分布式缓存***的组成结构示意图;
图3为本发明一种具体实施例中分布式缓存***临时故障时数据修复过程的实现流程图。
具体实施方式
本发明的基本思想是:在进行数据操作时,如进行数据的写入或更新时,分布式缓存***中的协同服务器发现有副本服务器故障时,生成所述数据的变更记录并保存;在所述副本服务器故障恢复后,协同服务器根据所述数据的变更记录对所述副本服务器进行数据修复,使得所述副本服务器上所述数据的副本与其他副本服务器中所述数据的副本保持一致,如此,保证了临时故障恢复后数据的多个副本间的一致性。
本发明的一种临时故障时的数据修复方法,应用于分布式缓存***,能够,在临时故障恢复后,快速保持数据副本间的一致性,参照图1所示,所述方法主要包括以下步骤:
步骤101:协同服务器向副本服务器发起数据操作时,发现有副本服务器故障,则生成包含有操作过的各数据Key的Key变更记录;
具体地,协同服务器在接收到客户端发起的Key-Value的数据写入请求或数据更新请求后,需要向各副本服务器发起数据的写入操作或更新操作时,发现有副本服务器故障,则生成Key变更记录。
其中,协同服务器是分布式缓存***中运行正常的服务器节点,用于接收客户端发起的数据操作,并相应的向各副本服务器发起数据操作。
副本服务器是分布式缓存***中保存有当前需操作数据的数据副本的所有服务器节点中、除所述协同服务器之外的各服务器节点。
其中,Key变更记录中。
实际应用中,所述协同服务器可以为各副本服务器建立存储集;在各副本服务器故障期间,所述协同服务器生成包含有故障期间操作过的各数据Key的Key变更记录,即包含故障期间发生过写入或更新的数据的Key的Key变更记录,并保存到各副本服务器的存储集中。如此,变更记录中只需要保存数据的Key即可,不需要保存数据的Value,代价很小,节省资源。
步骤102:在所述副本服务器从故障中恢复后,所述协同服务器根据所述Key变更记录,向所述副本服务器发起数据修复操作;
具体地,所述协同服务器获取所述Key变更记录中各Key对应的所有数据副本,并识别出所述Key变更记录中各Key对应的上一次操作过的数据副本;使用识别出的所述上一次进行过操作的数据副本对所述副本服务器发起数据修复操作。
这里,协同服务器通过对所获取的所有数据副本中相同Key的多个数据副本进行版本比较,得到所述各Key对应的上一次操作过的数据副本。
这里,所述协同服务器可以从所述各Key对应的所有副本服务器中读取所述各Key对应的数据副本、以及从自身获取所述各Key对应的数据副本,完成所述各Key对应的所有数据副本的获取。
步骤103:所述副本服务器根据所述协同服务器发起的数据修复操作,进行本地数据修复。
具体地,所述副本服务器根据所述Key变更记录中各Key对应的上一次操作过的数据副本,更新本地保存的数据副本。
这里,所述副本服务器根据发起数据修复操作时使用的数据副本,将故障期间发生过写入或更新操作的Key及对应的Value和版本号信息等保存到本地,完成本地数据副本的更新。
这里,在步骤103之后,所述方法还包括:所述副本服务器在更新本地保存的数据副本后,向所述协同服务器返回修复结果;在所述修复结果为失败时,所述协同服务器继续向所述副本服务器发起数据更新操作。在所述修复结果为成功时,结束当前的数据修复过程。
相应的,本发明还提供了一种用于临时故障时的数据修复的分布式缓存***,所述***包括:协同服务器、以及一个或多个副本服务器,其中,协同服务器,用于向所述一个或多个副本服务器发起数据操作时,发现有副本服务器故障,则生成包含有操作过的各数据Key的Key变更记录;以及,用于在所述副本服务器从故障中恢复后,根据所述Key变更记录,向所述副本服务器发起数据修复操作;所述一个或多个副本服务器,用于在故障恢复后,根据所述协同服务器发起的数据修复操作进行本地数据修复。
其中,所述协同服务器,还用于所述各副本服务器建立存储集;在所述各副本服务器故障期间,生成包含有故障期间操作过的各数据Key的Key变更记录,并保存到所述各副本服务器的存储集中。
具体地,所述协同服务器,还用于获取所述Key变更记录中各Key对应的所有数据副本,识别出所述Key变更记录中各Key对应的上一次操作过的数据副本,并使用识别出的所述上一次操作过的数据副本对所述副本服务器发起数据修复操作。
其中,所述副本服务器,还用于根据所述协同服务器发起数据修复操作使用的所述上一次操作过的数据副本,更新本地保存的数据副本。
其中,所述副本服务器,还可以用于在更新本地保存的数据副本后,向所述协同服务器返回修复结果;所述协同服务器,还可以用于在所述副本服务器反馈的修复结果为失败时,继续向所述副本服务器发起数据更新操作,重新进行数据修复,直到所述修复结果为成功。
实施例一
本实施例中,由服务器节点和客户端构成的分布式缓存***如图2所示,该分布式缓存***包括三个服务器节点(第一服务器节点、第二服务器节点和第三服务器节点)和两个客户端(第一客户端和第二客户端),其中,各客户端与各服务器节点建立连接,服务器节点间互相建立连接。
在客户端发起数据更新操作后,在数据更新过程中进行临时故障的数据修复的具体实现过程,如图3所示,具体步骤如下:
步骤301,第一客户端发起数据更新操作,根据数据的Key选择一台服务器节点作为协同服务器,并向将所述协同服务器发送对一个Key-Value的数据更新请求;
具体地,对于一个特定数据的Key,可以根据一定的优先级将分布式缓存***的服务器集群可以看作是一个协同服务器和多个副本服务器的集群,不同的Key可能会有不同的协同服务器和副本服务器。此外,协同服务器的选取也需要参考当时的网络条件,该网络条件包括各服务器节点的工作状态是否正常等。
本实施例中,根据需要进行更新操作的数据的Key和当前的网络条件,选择第一服务器节点作为协同服务器。
步骤302,协同服务器接收所述数据更新请求,并将所述第一客户端发送数据更新请求时所发送数据的Key和Value进行存储,更新本地数据。
这里,协同服务器更新本地数据时,如果更新失败,则向所述第一客户端返回更新失败的回应,可以返回步骤301重新进行,还可以结束当前流程。
步骤303,协同服务器根据一定规则识别出所述数据的Key对应的副本服务器,并向识别出的各副本服务器发起数据更新操作;
这里,协同服务器可以根据一致性哈希规则或根据按字段分段规则识别副本服务器。
例如,可以通过哈希算法得到所述数据的Key对应的哈希值,由所得到的哈希值找到对应保存有所述Key对应的数据副本的其他服务器节点,所找到的其他服务器节点即为所述数据的Key对应的副本服务器。
本实施例中,协同服务器识别出第二服务器节点和第三服务器节点为所述Key对应的副本服务器,向第二服务器节点和第三服务器节点发送数据更新请求,发起数据更新操作。
步骤304,协同服务器在发起数据更新操作后,发现所述Key对应的副本服务器中有服务器节点存在故障,生成所述Key的变更记录并暂存于本地;
具体地,如果服务器节点存在故障,服务器节点将无法接收信息和发出信息。协同服务器在向各副本服务器发起数据更新操作时,发现无法向一个副本服务器发起数据更新操作,即无法将数据更新请求送达该副本服务器时,则认为该副本服务器存在故障。
本实施例中,协同服务器发现作为副本服务器的第三服务器节点存在故障,此时,生成所述Key的变更记录并暂存于本地。
这里,所述Key的变更记录包括进行过当前更新操作的所有Key。
步骤305,协同服务器接收正常运行的各副本服务器返回的回应,将包含有各副本服务器返回的回应和所述协同服务器的本地更新结果的更新操作结果返回给第一客户端;
这里,正常运行的各副本服务器接收到协同服务器发起的数据更新请求后,分别将所述数据更新请求中数据的Key和Value进行存储,更新本地数据,如果更新成功,则向所述协同服务器返回更新成功的回应,如果更新失败,则向所述协同服务器返回更新失败的回应。
实际应用中,在存储容量不够的情况或类似情况下,会出现更新失败的结果。
如果所有副本服务器均返回更新失败的回应,则协同服务器认为此次更新操作失败,可以返回步骤303或步骤301重新进行,还可以结束当前流程;否则,协同服务器认为此次更新操作成功,可以继续后续流程。
这里,如果所述协同服务器进行本地数据更新成功,则向所述第一客户端返回表示更新成功的本地更新结果,如果所述协同服务器进行本地数据更新失败,则向所述第一客户端返回表示更新失败的本地更新结果。
所述本地更新结果为所述协同服务器进行数据更新
步骤306,故障中副本服务器恢复正常,开始对外提供服务;
步骤307,协同服务器发现副本服务器恢复正常,加载步骤304中生成的变更记录,准备进行数据修复;
实际应用中,故障中的副本服务器恢复正常后,会与所述协同服务器进行建联,重新连接所述协同服务器,并且会在连接后,通知分布式缓存***中各服务器节点(包括协同服务器)开始对外提供服务,如此,协同服务器在收到故障中副本服务器的通知后便可以获知副本服务器已恢复正常。
步骤308,协同服务器根据步骤304中生成的变更记录,从本地以及所有副本服务器上读取进行更新操作的所述数据的Key和Value、以及对应的版本号信息,得到所述数据的多个副本;
具体地,协同服务器分别向各副本服务器(包括从故障中恢复的副本服务器)发起数据读取操作,并进行本地数据读取,各副本服务器向协同服务器返回包括有所述数据副本的读取结果,得到所述数据保存在各服务器节点(包括协同服务器和所有副本服务器)中的副本。
步骤309,协同服务器对步骤308中获得的多个副本进行版本比较,识别出最近一次更新的副本;
具体地,协同服务器将所述数据各副本的版本号信息进行比较,识别出最近一次进行更新的副本。
步骤310,协同服务器对步骤306中从临时故障中恢复的副本服务器进行数据修复,使用步骤309中得出的最近一次更新操作的副本;
具体地,协同服务器使用步骤309中得出的最近一次更新操作的副本,向从临时故障中恢复的副本服务器(本实施例的第三服务器节点)发起数据修复。
实际应用中,协同服务器向所述临时故障中恢复的副本服务器发送数据修复请求,该数据修复请求包含有所述数据最近一次更新操作的副本。
步骤311,从临时故障中恢复的副本服务器接受数据修复,进行本地数据更新,并且返回修复结果给协同服务器,如果修复成功,则结束当前流程,如果修复失败,则返回步骤307重复进行数据修复,直到所述数据修复成功。
具体地,从临时故障中恢复的副本服务器接收所述协同服务器发送的数据修复请求,从所述数据修复请求中提取所述数据最近一次更新操作的副本,并将所述数据最近一次更新操作的副本中所述数据的Key和Value保存,完成本地数据更新。
这里,如果所述从临时故障中恢复的副本服务器更新本地数据成功,则修复成功,向所述协同服务器返回表示修复成功的修复结果,结束当前流程;如果所述从临时故障中恢复的副本服务器更新本地数据失败,则修复失败,向所述协同服务器返回表示修复失败的修复结果,并返回步骤307重复进行数据修复,直到所述数据修复成功。如此,客户端发起数据更新操作后,发送临时故障的服务器节点可以在恢复后及时进行数据修复,保证了数据各副本的一致性。
实际应用中,修复过程中临时故障中恢复的副本服务器再次故障、或者网络故障、或者服务器繁忙长时间未响应都会造成修改失败。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (13)

1.一种临时故障时的数据修复方法,其特征在于,所述方法包括:
协同服务器向副本服务器发起数据操作时,发现有副本服务器故障,则生成包含有操作过的各数据键(Key)的Key变更记录;
在所述副本服务器从故障中恢复后,所述协同服务器根据所述Key变更记录,向所述副本服务器发起数据修复操作;
所述副本服务器根据所述协同服务器发起的数据修复操作,进行本地数据修复。
2.根据权利要求1所述临时故障时的数据修复方法,其特征在于,所述向副本服务器发起数据操作,包括:向副本服务器发起数据的写入操作或更新操作。
3.根据权利要求1或2所述临时故障时的数据修复方法,其特征在于,所述生成包含有故障期间进行过操作的各数据Key的Key变更记录,还包括:
所述协同服务器为所述副本服务器建立存储集;
在所述副本服务器故障期间,所述协同服务器生成包含有故障期间操作过的各数据Key的Key变更记录,并保存到所述副本服务器的存储集中。
4.根据权利要求1或3所述临时故障时的数据修复方法,其特征在于,所述协同服务器根据所保存的Key变更记录,向所述副本服务器发起数据修复操作,包括:
所述协同服务器获取所述Key变更记录中各Key对应的所有数据副本,并识别出所述Key变更记录中各Key对应的上一次操作过的数据副本;
使用识别出的所述上一次进行过操作的数据副本对所述副本服务器发起数据修复操作。
5.根据权利要求4所述临时故障时的数据修复方法,其特征在于,所述识别出所述Key变更记录中各Key对应的上一次操作过的数据副本,为:
对所获取的所有数据副本中相同Key的多个数据副本进行版本比较,得到所述各Key对应的上一次操作过的数据副本。
6.根据权利要求4所述临时故障时的数据修复方法,其特征在于,所述协同服务器获取所述Key变更记录中各Key对应的所有数据副本,为:
所述协同服务器从所述各Key对应的所有副本服务器中读取所述各Key对应的数据副本、以及从自身获取所述各Key对应的数据副本。
7.根据权利要求4所述临时故障时的数据修复方法,其特征在于,所述副本服务器根据所述协同服务器发起的数据修复操作,进行本地数据修复,包括:
所述副本服务器根据所述Key变更记录中各Key对应的上一次操作过的数据副本,更新本地保存的数据副本。
8.根据权利要求7所述临时故障时的数据修复方法,其特征在于,在所述副本服务器根据所述协同服务器发起的数据修复操作,进行本地数据修复之后,所述方法还包括:
所述副本服务器在更新本地保存的数据副本后,向所述协同服务器返回修复结果;
在所述修复结果为失败时,所述协同服务器继续向所述副本服务器发起数据更新操作。
9.一种用于临时故障时数据修复的分布式缓存***,其特征在于,所述***包括:协同服务器、以及一个或多个副本服务器,其中,
协同服务器,用于向所述一个或多个副本服务器发起数据操作时,发现有副本服务器故障,则生成包含有操作过的各数据Key的Key变更记录;以及,用于在所述副本服务器从故障中恢复后,根据所述Key变更记录,向所述副本服务器发起数据修复操作;
所述一个或多个副本服务器,用于在故障恢复后,根据所述协同服务器发起的数据修复操作进行本地数据修复。
10.根据权利要求9所述的分布式缓存***,其特征在于,
所述协同服务器,还用于所述各副本服务器建立存储集;在所述各副本服务器故障期间,生成包含有故障期间操作过的各数据Key的Key变更记录,并保存到所述各副本服务器的存储集中。
11.根据权利要求9所述的分布式缓存***,其特征在于,所述协同服务器,还用于获取所述Key变更记录中各Key对应的所有数据副本,识别出所述Key变更记录中各Key对应的上一次操作过的数据副本,并使用识别出的所述上一次操作过的数据副本对所述副本服务器发起数据修复操作。
12.根据权利要求11所述的分布式缓存***,其特征在于,所述副本服务器,还用于根据所述协同服务器发起数据修复操作使用的所述上一次操作过的数据副本,更新本地保存的数据副本。
13.根据权利要求12所述的分布式缓存***,其特征在于,
所述副本服务器,还用于在更新本地保存的数据副本后,向所述协同服务器返回修复结果;
所述协同服务器,还用于在所述副本服务器反馈的修复结果为失败时,继续向所述副本服务器发起数据更新操作。
CN201110157693.1A 2011-06-13 2011-06-13 临时故障时的数据修复方法及分布式缓存*** Active CN102833273B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201110157693.1A CN102833273B (zh) 2011-06-13 2011-06-13 临时故障时的数据修复方法及分布式缓存***
PCT/CN2012/070849 WO2012171345A1 (zh) 2011-06-13 2012-02-02 临时故障时的数据修复方法及分布式缓存***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110157693.1A CN102833273B (zh) 2011-06-13 2011-06-13 临时故障时的数据修复方法及分布式缓存***

Publications (2)

Publication Number Publication Date
CN102833273A true CN102833273A (zh) 2012-12-19
CN102833273B CN102833273B (zh) 2017-11-03

Family

ID=47336243

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110157693.1A Active CN102833273B (zh) 2011-06-13 2011-06-13 临时故障时的数据修复方法及分布式缓存***

Country Status (2)

Country Link
CN (1) CN102833273B (zh)
WO (1) WO2012171345A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104238963A (zh) * 2014-09-30 2014-12-24 华为技术有限公司 一种数据存储方法、存储装置及存储***
CN104778179A (zh) * 2014-01-14 2015-07-15 阿里巴巴集团控股有限公司 一种数据迁移测试方法和***
CN105589887A (zh) * 2014-10-24 2016-05-18 中兴通讯股份有限公司 分布式文件***的数据处理方法及分布式文件***
WO2016206568A1 (zh) * 2015-06-26 2016-12-29 阿里巴巴集团控股有限公司 数据更新方法、装置及相关***
CN107153671A (zh) * 2016-03-02 2017-09-12 阿里巴巴集团控股有限公司 一种在分布式***中实现多文件副本读写的方法与设备
CN108055159A (zh) * 2017-12-21 2018-05-18 郑州云海信息技术有限公司 一种集群节点操作同步方法及装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105338026B (zh) * 2014-07-24 2018-10-09 阿里巴巴集团控股有限公司 数据资源的获取方法、装置和***

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101567805B (zh) * 2009-05-22 2011-12-28 清华大学 并行文件***发生故障后的恢复方法
CN101697168B (zh) * 2009-10-22 2011-10-19 中国科学技术大学 一种分布式文件***动态元数据管理方法及***
CN101964820B (zh) * 2010-10-08 2014-04-09 中兴通讯股份有限公司 一种保持数据一致性的方法及***
CN102024016B (zh) * 2010-11-04 2013-03-13 曙光信息产业股份有限公司 一种分布式文件***快速数据恢复的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
吴华等: "分布式文件***中恢复机制的研究", 《微计算机信息》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104778179A (zh) * 2014-01-14 2015-07-15 阿里巴巴集团控股有限公司 一种数据迁移测试方法和***
CN104778179B (zh) * 2014-01-14 2019-05-28 阿里巴巴集团控股有限公司 一种数据迁移测试方法和***
CN104238963A (zh) * 2014-09-30 2014-12-24 华为技术有限公司 一种数据存储方法、存储装置及存储***
CN104238963B (zh) * 2014-09-30 2017-08-11 华为技术有限公司 一种数据存储方法、存储装置及存储***
CN105589887A (zh) * 2014-10-24 2016-05-18 中兴通讯股份有限公司 分布式文件***的数据处理方法及分布式文件***
WO2016206568A1 (zh) * 2015-06-26 2016-12-29 阿里巴巴集团控股有限公司 数据更新方法、装置及相关***
CN107153671A (zh) * 2016-03-02 2017-09-12 阿里巴巴集团控股有限公司 一种在分布式***中实现多文件副本读写的方法与设备
CN107153671B (zh) * 2016-03-02 2020-11-24 阿里巴巴集团控股有限公司 一种在分布式***中实现多文件副本读写的方法与设备
CN108055159A (zh) * 2017-12-21 2018-05-18 郑州云海信息技术有限公司 一种集群节点操作同步方法及装置

Also Published As

Publication number Publication date
WO2012171345A1 (zh) 2012-12-20
CN102833273B (zh) 2017-11-03

Similar Documents

Publication Publication Date Title
US11314458B2 (en) Global de-duplication of virtual disks in a storage platform
US11237864B2 (en) Distributed job scheduler with job stealing
CN101964820B (zh) 一种保持数据一致性的方法及***
CN110168580B (zh) 使用分布式***训练分类器模型时的容错恢复***和方法
CN102594849B (zh) 数据备份、恢复方法、虚拟机快照删除、回滚方法及装置
US9727273B1 (en) Scalable clusterwide de-duplication
CN102833273A (zh) 临时故障时的数据修复方法及分布式缓存***
CN101334797B (zh) 一种分布式文件***及其数据块一致性管理的方法
CN103098016B (zh) 基于文件***备份的去重
CN111656326B (zh) 用于执行用于无修复恢复的数据库备份的***和方法
US20140025638A1 (en) Method, system and serving node for data backup and restoration
US10387271B2 (en) File system storage in cloud using data and metadata merkle trees
CA2923068A1 (en) Method and system for metadata synchronization
US20180225051A1 (en) Managing data replication in a data grid
US8438130B2 (en) Method and system for replicating data
CN103034566A (zh) 虚拟机还原的方法和装置
WO2020040958A1 (en) Providing consistent database recovery after database failure for distributed databases with non-durable storage leveraging background synchronization point
CN112579550B (zh) 一种分布式文件***的元数据信息同步方法及***
CN115955488B (zh) 基于副本冗余的分布式存储副本跨机房放置方法与装置
CN111752892A (zh) 分布式文件***及其实现方法、管理***、设备及介质
CN111770158B (zh) 云平台恢复方法、装置、电子设备及计算机可读存储介质
KR101797482B1 (ko) 데이터베이스 시스템에서 블록 복구 방법, 장치 및 컴퓨터 판독가능 매체에 저장된 컴퓨터-프로그램
JP2015148919A (ja) ストレージシステム
CN113965582A (zh) 一种模式转换方法和***,及存储介质
CN112256201A (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