临时故障时的数据修复方法及分布式缓存系统技术方案

技术编号:8107863 阅读:219 留言:0更新日期:2012-12-21 08:24
本发明专利技术公开了一种临时故障时的数据修复方法,所述方法包括:协同服务器向副本服务器发起数据操作时,发现有副本服务器故障,则生成包含有操作过的各数据键(Key)的Key变更记录;在所述副本服务器从故障中恢复后,所述协同服务器根据所述Key变更记录,向所述副本服务器发起数据修复操作;所述副本服务器根据所述协同服务器发起的数据修复操作,进行本地数据修复。本发明专利技术还公开了一种用于临时故障时的数据修复的分布式缓存系统,保证了临时故障恢复后,数据的多个副本间仍能够保持一致性,提高了分布式缓存系统保存数据的准确性,提升了分布式缓存系统的质量属性,优化了应用的体验。

【技术实现步骤摘要】

本专利技术涉及云计算
,尤其涉及一种临时故障时的数据修复方法及分布式缓存系统
技术介绍
云计算(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变更记录向所述副本服务器发起数据修复操作,使得所述副本服务器能够及时进行本地数据修复,从而保证了临时故障恢复后,数据的多个副本间仍能够保持一致性,提高了分布式缓存系统保存数据的准确性,提升了分布式缓存系统的质量属性,优化了应用的体验。附图说明图I为本专利技术一种临时故障时的数据修复方法的实现流程图;图2为本专利技术一种具体实施例中分布式缓存系统的组成结构示意图;图3为本专利技术一种具体实施例中分布式缓存系统临时故障时数据修复过程的实现流程图。具体实施例方式本专利技术的基本思想是在进行数据操作时,如进行数据的写入或更新时,分布式缓存系统中的协同服务器发现有副本服务器故障时,生成所述数据的变更记录并保存;在所述副本服务器故障恢复后,协同服务器根据所述数据的变更记录对所述副本服务器进行数据修复,使得所述副本服务器上所述数据的副本与其他副本服务器中所述数据的副本保持一致,如此,保本文档来自技高网
...
临时故障时的数据修复方法及分布式缓存系统

【技术保护点】
一种临时故障时的数据修复方法,其特征在于,所述方法包括:协同服务器向副本服务器发起数据操作时,发现有副本服务器故障,则生成包含有操作过的各数据键(Key)的Key变更记录;在所述副本服务器从故障中恢复后,所述协同服务器根据所述Key变更记录,向所述副本服务器发起数据修复操作;所述副本服务器根据所述协同服务器发起的数据修复操作,进行本地数据修复。

【技术特征摘要】
1.一种临时故障时的数据修复方法,其特征在于,所述方法包括 协同服务器向副本服务器发起数据操作时,发现有副本服务器故障,则生成包含有操作过的各数据键(Key)的Key变更记录; 在所述副本服务器从故障中恢复后,所述协同服务器根据所述Key变更记录,向所述副本服务器发起数据修复操作; 所述副本服务器根据所述协同服务器发起的数据修复操作,进行本地数据修复。2.根据权利要求I所述临时故障时的数据修复方法,其特征在于,所述向副本服务器发起数据操作,包括向副本服务器发起数据的写入操作或更新操作。3.根据权利要求I或2所述临时故障时的数据修复方法,其特征在于,所述生成包含有故障期间进行过操作的各数据Key的Key变更记录,还包括 所述协同服务器为所述副本服务器建立存储集; 在所述副本服务器故障期间,所述协同服务器生成包含有故障期间操作过的各数据Key的Key变更记录,并保存到所述副本服务器的存储集中。4.根据权利要求I或3所述临时故障时的数据修复方法,其特征在于,所述协同服务器根据所保存的Key变更记录,向所述副本服务器发起数据修复操作,包括 所述协同服务器获取所述Key变更记录中各Key对应的所有数据副本,并识别出所述Key变更记录中各Key对应的上一次操作过的数据副本; 使用识别出的所述上一次进行过操作的数据副本对所述副本服务器发起数据修复操作。5.根据权利要求4所述临时故障时的数据修复方法,其特征在于,所述识别出所述Key变更记录中各Key对应的上一次操作过的数据副本,为 对所获取的所有数据副本中相同Key的多个数据副本进行版本比较,得到所述各Key对应的上一次操作过的数据副本。6.根据权利要求4所述临时故障时的数据修复方法,其特征在于,所述协同服务器获取所述Key变更记录中各Key对应的所有数据副本,为 所述协同服务器从所述各Key对应的所有副本服务器中读取所述各Key对应的数据副本、以及从自身获取所述各Key对应的数据副本。7.根据权利要求4所述临时故障时的数据修复方法,其特征在于,所述副本服务器根据所述协同服务器发起的数据修复操作,进行本...

【专利技术属性】
技术研发人员:郭斌陈典强韩银俊宫微微
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1