一种故障数据的下线方法及设备技术

技术编号:9967516 阅读:97 留言:0更新日期:2014-04-25 08:01
本发明专利技术的实施例公开了一种故障数据的下线方法及设备,其中,所述方法包括:当请求访问分布式存储系统中的数据节点中存储的数据文件出现异常时,统计所述数据文件当前的异常访问次数;判断所述数据文件当前的异常访问次数是否超过第一预设阈值,如果是,则删除与所述数据文件对应的索引信息,其中,所述索引信息用于定位所述数据文件。通过本发明专利技术的实施例,可以保证读请求的正常应答以及故障文件的顺利修复。

【技术实现步骤摘要】
【专利摘要】本专利技术的实施例公开了一种故障数据的下线方法及设备,其中,所述方法包括:当请求访问分布式存储系统中的数据节点中存储的数据文件出现异常时,统计所述数据文件当前的异常访问次数;判断所述数据文件当前的异常访问次数是否超过第一预设阈值,如果是,则删除与所述数据文件对应的索引信息,其中,所述索引信息用于定位所述数据文件。通过本专利技术的实施例,可以保证读请求的正常应答以及故障文件的顺利修复。【专利说明】一种故障数据的下线方法及设备
本专利技术涉及计算机
,尤其涉及一种故障数据的下线方法及设备。
技术介绍
Cassandra是依赖DHT (Distributed Hash Table,分布式哈希表)技术实现的一种典型的无中心节点的环形结构的分布式存储系统。Cassandra数据存储空间可以抽象为一个环形结构,数据就是通过hash分散在这个环形存储空间上。每个数据节点负责管理这个环形存储空间上的某一块连续的范围(也叫Range),落在此Range空间上的数据就存储在这个数据节点上。在相关技术中,数据是以SSTable (Sorted String Table,有序字符串表)文件格式存储在这个节点的磁盘上。系统启动时,将每个SSTable文件的索引加载到内存中,并在内存中创建一个唯一的SSTable内存对象与该SSTable文件一一对应。当读数据时候,通过内存对象中的索引来定位数据,进而访问SSTable文件读取对应数据。在实际应用中,由于存储介质故障而导致整块磁盘不可访问或者磁盘上存储的某些文件部分损坏。文件或磁盘故障后无法读取,内存中的SSTable对象和索引却仍然可以正常访问,当接入节点的读请求访问数据节点上的故障文件时,数据节点的工作线程读取数据,出现I / 0(输入/输出)异常直接退出。由此可见,在相关技术中,当数据节点中的文件或磁盘出现故障时,在接收到接入节点对故障文件的读请求访问时,数据节点的工作线程出现异常而直接退出,从而导致接入节点的读请求访问超时。并且,由于数据节点的工作线程的异常退出,导致正常的扫描修复模块也无法成功拿到数据的副本,因而无法对故障数据进行比较和修复。
技术实现思路
签于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的一种故障数据的下线方法及设备。根据本专利技术的一个方面,提供了一种故障数据的下线方法,所述方法包括:当请求访问分布式存储系统中的数据节点中存储的数据文件出现异常时,统计所述数据文件当前的异常访问次数;判断所述数据文件当前的异常访问次数是否超过第一预设阈值,如果是,则删除与所述数据文件对应的索引信息,其中,所述索引信息用于定位所述数据文件。可选地,在删除与所述数据文件对应的索引信息的步骤之后,所述方法还包括:确定所述数据文件所在的磁盘目录;判断所述磁盘目录下已被删除的索引信息的数据文件所占的比例是否超过第二预设阈值,如果是,则删除所述磁盘目录下的所有数据文件对应的索引信息。可选地,所述索引信息包括:内存队列中创建的与所述数据文件对应的内存对象。可选地,所述数据文件为有序字符串表SSTable文件。可选地,统计所述数据文件当前的异常访问次数的步骤包括:为所述数据文件设置一计数器,当请求访问所述数据文件出现异常时,所述计数器加I。根据本专利技术的另一方面,还提供了一种故障数据的下线设备,所述设备包括:统计模块,用于在请求访问分布式存储系统中的数据节点中存储的数据文件出现异常时,统计所述数据文件当前的异常访问次数;第一判断模块,用于判断所述数据文件当前的异常访问次数是否超过第一预设阈值;第一执行模块,用于在所述第一判断模块的判断结果为是的情况下,删除与所述数据文件对应的索引信息,其中,所述索引信息用于定位所述数据文件。可选地,所述设备还包括:确定模块,用于确定所述数据文件所在的磁盘目录;第二判断模块,用于判断所述磁盘目录下已被删除的索引信息的数据文件所占的比例是否超过第二预设阈值;第二执行模块,用于在所述第二判断模块的判断结果为是的情况下,删除所述磁盘目录下的所有数据文件对应的索引信息。可选地,所述索引信息包括:内存队列中创建的与所述数据文件对应的内存对象。可选地,所述数据文件为有序字符串表SSTable文件。可选地,所述统计模块包括:检测模块,用于检测当前请求访问所述数据文件是否出现异常;计数器,用于在所述检测模块检测到出现异常时,计算访问出现异常的次数。由上述技术方案可知,本专利技术的实施例具有如下有益效果:在本专利技术实施例中,数据节点对数据文件的异常访问次数进行统计,在数据文件的异常访问次数超过预设阈值时,删除该数据文件对应的索引信息,从而保证了读请求的正常应答,并且,由于及时将故障数据文件下线,也保证了后台数据扫描修复模块能够顺利地进行数据的比较修复工作,缩短故障数据的恢复时间。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并目为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的【具体实施方式】。【专利附图】【附图说明】通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了根据本专利技术的实施例的故障数据的下线方法100的流程图;图2示出了根据本专利技术的实施例的分布式存储系统的结构示意图;图3示出了根据本专利技术的实施例的Cassandra文件存储系统中发生故障的SSTable文件自动下线的方法300的流程图,以及图4示出了根据本专利技术的实施例的故障数据的下线设备的结构示意图。【具体实施方式】下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。参见图1,其中示意性地示出了根据本专利技术的实施例的故障数据的下线方法100的流程图,该方法100应用于如图2的分布式存储系统,该分布式存储系统包括接入节点和数据节点。其中,接入节点负责计算数据及副本的分布;数据节点负责数据副本的存储,在具体实施中,每个节点既可以作为接入节点也可以作为数据节点,例如,在Cassandra系统中,每个节点都既作为接入节点,又作为数据节点而存在。本专利技术实施例中,该方法100的主要目的在于:(I)在数据节点出现文件故障时,能够尽快地自动摘除故障文件的索引信息,从而保证在数据文件发生故障时,能够正常应答接入节点的读访问请求;(2)通过及时将故障文件下线,保证后台数据扫描修复模块能够顺利地进行数据的比较修复工作,缩短故障数据的恢复时间。如图1所示,所述方法100主要包括以下步骤S110、S120和S130。方法100始于步骤S110,在步骤SllO中,当请求访问分布式存储系统中的数据节点中存储的数据文件出现异常时,统计该数据文件当前的异常访问次数。在实际应用中,例如,图2所示的系统中,当接入节点210请求访问数据节点220中的存储的本文档来自技高网
...

【技术保护点】
一种故障数据的下线方法,所述方法包括:当请求访问分布式存储系统中的数据节点中存储的数据文件出现异常时,统计所述数据文件当前的异常访问次数;判断所述数据文件当前的异常访问次数是否超过第一预设阈值,如果是,则删除与所述数据文件对应的索引信息,其中,所述索引信息用于定位所述数据文件。

【技术特征摘要】

【专利技术属性】
技术研发人员:王锋
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:

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

1