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

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

Info

Publication number
WO2012171345A1
WO2012171345A1 PCT/CN2012/070849 CN2012070849W WO2012171345A1 WO 2012171345 A1 WO2012171345 A1 WO 2012171345A1 CN 2012070849 W CN2012070849 W CN 2012070849W WO 2012171345 A1 WO2012171345 A1 WO 2012171345A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
server
replica
copy
key
Prior art date
Application number
PCT/CN2012/070849
Other languages
English (en)
French (fr)
Inventor
郭斌
陈典强
韩银俊
宫微微
Original Assignee
中兴通讯股份有限公司
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 中兴通讯股份有限公司 filed Critical 中兴通讯股份有限公司
Publication of WO2012171345A1 publication Critical patent/WO2012171345A1/zh

Links

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)
  • Hardware Redundancy (AREA)
  • Information Transfer Between Computers (AREA)
  • Retry When Errors Occur (AREA)

Abstract

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

Description

临时故障时的数据修复方法及分布式緩存系统 技术领域
本发明涉及云计算技术领域, 尤其涉及一种临时故障时的数据修复方 法及分布式緩存系统。 背景技术
云计算( Cloud Computing )是网格计算( Grid Computing )、 分布式计 算( Distributed Computing )、并行计算( Parallel Computing )、效用计算( Utility Computing ) 网络存 者 ( 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变更记录向所述副本服务器发起数据修 复操作, 使得所述副本服务器能够及时进行本地数据修复, 从而保证了临 时故障恢复后数据的多个副本间仍能够保持一致性, 提高了分布式緩存系 统保存数据的准确性, 提升了分布式緩存系统的质量属性, 优化了应用的 体验。 附图说明
图 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变更记录中各 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中生成 的 key的变更记录, 准备进行数据修复;
实际应用中, 故障中的副本服务器恢复正常后, 会与所述协同服务器 进行建联, 重新连接所述协同服务器, 并且会在连接后, 通知分布式緩存 系统中各服务器节点 (包括协同服务器) 开始对外提供服务, 因此, 协同 服务器在收到故障中副本服务器的通知后便可以获知副本服务器已恢复正 常。
步驟 308, 协同服务器根据步驟 304中生成的 Key的变更记录, 从本 地以及所有副本服务器上读取进行更新操作的所述数据的 Key和 Value、以 及对应的版本号信息, 得到所述数据的多个副本;
具体地, 协同服务器分别向各副本服务器(包括从故障中恢复的副本 服务器)发起数据读取操作, 并进行本地数据读取, 各副本服务器向协同 服务器返回包括有所述数据副本的读取结果, 得到所述数据保存在各服务 器节点 (包括协同服务器和所有副本服务器) 中的副本。
步驟 309, 协同服务器对步驟 308中获得的多个副本进行版本比较, 识 别出最近一次更新的副本;
具体地, 协同服务器通过比较所述数据各副本的版本号信息, 识别出 最近一次进行更新的副本。
步驟 310,协同服务器对步驟 306中从临时故障中恢复的副本服务器进 行数据修复, 使用步驟 309中得出的最近一次更新操作的副本;
具体地, 协同服务器使用步驟 309中得出的最近一次更新操作的副本, 向临时故障中恢复的副本服务器(本实施例的第三服务器节点)发起数据 修复。
实际应用中, 协同服务器向所述临时故障中恢复的副本服务器发送数 据修复请求, 该数据修复请求包含有所述数据最近一次更新操作的副本。
步驟 311 , 从临时故障中恢复的副本服务器接受数据修复, 进行本地数 据更新, 并且返回修复结果给协同服务器, 如果修复成功, 则结束当前流 程, 如果修复失败, 则返回步驟 307重复进行数据修复, 直到所述数据修 复成功。
具体地, 从临时故障中恢复的副本服务器接收所述协同服务器发送的 数据修复请求, 从所述数据修复请求中提取所述数据最近一次更新操作的 副本, 并将所述数据最近一次更新操作的副本中所述数据的 Key和 Value 保存, 完成本地数据更新。
这里, 如果所述从临时故障中恢复的副本服务器更新本地数据成功, 则修复成功, 向所述协同服务器返回表示修复成功的修复结果, 结束当前 流程; 如果从临时故障中恢复的副本服务器更新本地数据失败, 则修复失 败, 向所述协同服务器返回表示修复失败的修复结果, 并返回步驟 307重 复进行数据修复, 直到所述数据修复成功。 如此, 客户端发起数据更新操 作后, 发生临时故障的服务器节点可以在恢复后及时进行数据修复, 保证 了数据各副本的一致性。
实际应用中, 修复过程中临时故障中恢复的副本服务器再次故障、 或 者网络故障、 或者服务器繁忙长时间未响应都会造成修改失败。
以上所述, 仅为本发明的较佳实施例而已, 并非设置为限定本发明的 保护范围。

Claims

权利要求书
1、 一种临时故障时的数据修复方法, 其中, 所述方法包括:
协同服务器向副本服务器发起数据操作时, 发现有副本服务器故障, 则生成包含有操作过的各数据的键(Key ) 的 Key变更记录;
在所述副本服务器从故障中恢复后, 所述协同服务器根据所述 Key变 更记录, 向所述副本服务器发起数据修复操作;
所述副本服务器根据所述协同服务器发起的数据修复操作, 进行本地 数据修复。
2、 根据权利要求 1所述临时故障时的数据修复方法, 其中, 所述向副 本服务器发起数据操作, 包括: 向副本服务器发起数据的写入操作或更新 操作。
3、 根据权利要求 1或 2所述临时故障时的数据修复方法, 其中, 所述 生成包含有故障期间进行过操作的各数据的 Key的 Key变更记录之后, 所 述方法还包括:
所述协同服务器在本地为所述副本服务器建立存储集;
在所述副本服务器故障期间, 所述协同服务器将所述 Key变更记录保 存到所述副本服务器的存储集中。
4、 根据权利要求 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变更记录保存到所述各副本服 务器的存储集中。
11、 根据权利要求 9所述的分布式緩存系统, 其中, 所述协同服务器, 还设置为获取所述 Key变更记录中各 Key对应的所有数据副本, 识别出所 述 Key变更记录中各 Key对应的上一次操作过的数据副本, 并使用识别出 的所述上一次操作过的数据副本对所述副本服务器发起数据修复操作。
12、根据权利要求 11所述的分布式緩存系统, 其中, 所述副本服务器, 还设置为根据所述协同服务器发起数据修复操作使用的所述上一次操作过 的数据副本, 更新本地保存的数据副本。
13、 根据权利要求 12所述的分布式緩存系统, 其中,
所述副本服务器, 还设置为在更新本地保存的数据副本后, 向所述协 同服务器返回修复结果;
所述协同服务器, 还设置为在所述副本服务器反馈的修复结果为失败 时, 继续向所述副本服务器发起数据更新操作。
PCT/CN2012/070849 2011-06-13 2012-02-02 临时故障时的数据修复方法及分布式缓存系统 WO2012171345A1 (zh)

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
WO2012171345A1 true WO2012171345A1 (zh) 2012-12-20

Family

ID=47336243

Family Applications (1)

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

Country Status (2)

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

Cited By (1)

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

Families Citing this family (6)

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

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101567805A (zh) * 2009-05-22 2009-10-28 清华大学 并行文件系统发生故障后的恢复方法
CN101964820A (zh) * 2010-10-08 2011-02-02 中兴通讯股份有限公司 一种保持数据一致性的方法及系统
CN102024016A (zh) * 2010-11-04 2011-04-20 天津曙光计算机产业有限公司 一种分布式文件系统快速数据恢复的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101697168B (zh) * 2009-10-22 2011-10-19 中国科学技术大学 一种分布式文件系统动态元数据管理方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101567805A (zh) * 2009-05-22 2009-10-28 清华大学 并行文件系统发生故障后的恢复方法
CN101964820A (zh) * 2010-10-08 2011-02-02 中兴通讯股份有限公司 一种保持数据一致性的方法及系统
CN102024016A (zh) * 2010-11-04 2011-04-20 天津曙光计算机产业有限公司 一种分布式文件系统快速数据恢复的方法

Cited By (1)

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

Also Published As

Publication number Publication date
CN102833273A (zh) 2012-12-19
CN102833273B (zh) 2017-11-03

Similar Documents

Publication Publication Date Title
TWI724678B (zh) 共識系統停機時間恢復
WO2012171345A1 (zh) 临时故障时的数据修复方法及分布式缓存系统
US20190079839A1 (en) Locality based quorums
TWI729609B (zh) 共識系統停機時間恢復
WO2016180160A1 (zh) 数据快照的恢复方法和装置
EP2687987B1 (en) Method, system and serving node for data backup and recovery
US8301600B1 (en) Failover recovery in a distributed data store
WO2016070375A1 (zh) 一种分布式存储复制系统和方法
US20130151889A1 (en) Disk-free recovery of xa transactions for in-memory data grids
WO2010115373A1 (zh) 基于对等网络的资源信息备份操作方法及对等网络
WO2012045245A1 (zh) 一种保持数据一致性的方法及系统
WO2022174735A1 (zh) 基于分布式存储的数据处理方法、装置、设备以及介质
WO2010115374A1 (zh) 基于对等网络的资源信息备份操作方法及对等网络
US20220317897A1 (en) Performing various operations at the granularity of a consistency group within a cross-site storage solution
US11892982B2 (en) Facilitating immediate performance of volume resynchronization with the use of passive cache entries
US10452680B1 (en) Catch-up replication with log peer
WO2013163864A1 (zh) 数据持久化处理方法、装置及数据库系统
WO2012171349A1 (zh) 一种分布式自增计数的实现方法、装置及系统
US7805503B2 (en) Capability requirements for group membership
WO2014177085A1 (zh) 分布式多副本数据存储方法及装置
CN111752488B (zh) 存储集群的管理方法、装置、管理节点及存储介质
CN104023061A (zh) 一种lustre的oss高可用集群方案
CN105323271B (zh) 一种云计算系统以及云计算系统的处理方法和装置
CN115766405B (zh) 一种故障处理方法、装置、设备和存储介质
CN115955488A (zh) 基于副本冗余的分布式存储副本跨机房放置方法与装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12799995

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12799995

Country of ref document: EP

Kind code of ref document: A1