[0001]
本发明涉及数据处理领域,尤其涉及一种数据异常处理方法、装置、存储介质和计算机设备。
背景技术:[0002]
为了简化用户端的使用以及降低数据缓冲对网络造成的压力,如今主要采用分布式存储的方式将数据划分成多个文件块后缓存到磁盘中。
[0003]
然而,将划分成多个文件块的数据缓存到磁盘时,该多个文件块中的部分或全部文件块可能会出现错误和丢失等异常情况。当出现异常情况时,由于无法得知已经缓存到磁盘中的多个文件块中具体出现异常的文件块,因此,只能将已缓存到磁盘中的文件块全部清除重新进行缓存,否则用户端从磁盘中获得的数据将是部分错误和/或缺失的数据,也就是在出现异常情况时,用户端无法得到完整正确的数据。
[0004]
所以,为了保证用户端可以获得完整正确的数据,需要可以确定磁盘中是否存在异常的文件块的方法。
技术实现要素:[0005]
鉴于上述问题,本发明提供一种克服上述问题或者至少部分地解决上述问题的一种数据异常处理方法、装置、存储介质和计算机设备,技术方案如下:
[0006]
一种数据异常处理方法,包括:
[0007]
确定存储在第一磁盘块组中的各文件块的序号;
[0008]
根据所述文件块的序号和所述第一磁盘块组中包含的文件块的数量确定存储在所述第一磁盘块组中的各文件块所属的文件块组的序号估值;
[0009]
在确定的各序号估值中包括至少两个不同的序号估值时,确定所述第一磁盘块组中存在异常的文件块。
[0010]
可选的,所述根据所述文件块的序号和所述第一磁盘块组中包含的文件块的数量确定存储在所述第一磁盘块组中的各文件块所属的文件块组的序号估值,包括:
[0011]
对每个所述文件块:将该文件块的序号减去文件块的起始序号后除以所述第一磁盘块组中包含的文件块的数量获得商,将该商进行向下取整,将取整后的结果确定为该文件块所属的文件块组的序号估值。
[0012]
可选的,所述方法还包括:
[0013]
判断确定的各序号估值中所包括的不同的序号估值的数量,在所述数量低于预设数量时,将在所述第一磁盘块组中且所属的文件块组的序号估值位于第一序号估值组的文件块确定为异常的文件块,所述第一序号估值组为在所述各序号估值中出现次数最多的序号估值外的其他序号估值构成的序号估值组;
[0014]
和/或,
[0015]
判断所述各序号估值中出现次数最多的序号估值的出现次数是否高于预设次数,
如果是,将在所述第一磁盘块组中且所属的文件块组的序号估值位于第一序号估值组的文件块确定为异常的文件块,所述第一序号估值组为在所述各序号估值中出现次数最多的序号估值外的其他序号估值构成的序号估值组。
[0016]
可选的,所述方法还包括:
[0017]
在所述数量不低于预设数量时,将所述第一磁盘块组中的各文件块进行清除;
[0018]
和/或,
[0019]
在出现次数不高于预设次数时,将所述第一磁盘块组中的各文件块进行清除。
[0020]
可选的,所述方法还包括:
[0021]
根据出现次数最多的序号估值,将所述异常的文件块替换为正确的文件块。
[0022]
可选的,所述第一磁盘块组位于第一类型磁盘中,所述根据出现次数最多的序号估值,将所述异常的文件块替换为正确的文件块,包括:
[0023]
根据所述异常的文件块与正常的文件块在所述第一磁盘块组中的位置关系,确定所述异常的文件块对应的正确的文件块的序号及所述正确的文件块所属的文件的文件id,其中,所述正常的文件块所属的文件块组的序号估值为所述出现次数最多的序号估值;
[0024]
根据所述正确的文件块的序号及所述正确的文件块所属的文件的文件id,从第二类型磁盘中获得所述正确的文件块并将所述异常的文件块替换为所述正确的文件块。
[0025]
一种数据异常处理装置,包括:文件块序号确定单元、序号估值确定单元和异常文件块确定单元,
[0026]
所述文件块序号确定单元,用于确定存储在第一磁盘块组中的各文件块的序号;
[0027]
所述序号估值确定单元,用于根据所述文件块的序号和所述第一磁盘块组中包含的文件块的数量确定存储在所述第一磁盘块组中的各文件块所属的文件块组的序号估值;
[0028]
所述异常文件块确定单元,用于在确定的各序号估值中包括至少两个不同的序号估值时,确定所述第一磁盘块组中存在异常的文件块。
[0029]
可选的,所述序号估值确定单元具体用于对每个所述文件块:将该文件块的序号减去文件块的起始序号后除以所述第一磁盘块组中包含的文件块的数量获得商,将该商进行向下取整,将取整后的结果确定为该文件块所属的文件块组的序号估值。
[0030]
一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上述任一项所述的数据异常处理方法。
[0031]
一种计算机设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述处理器执行程序时至少实现以下步骤:
[0032]
确定存储在第一磁盘块组中的各文件块的序号;
[0033]
根据所述文件块的序号和所述第一磁盘块组中包含的文件块的数量确定存储在所述第一磁盘块组中的各文件块所属的文件块组的序号估值;
[0034]
在确定的各序号估值中包括至少两个不同的序号估值时,确定所述第一磁盘块组中存在异常的文件块。
[0035]
借由上述技术方案,本发明提供的一种数据异常处理方法、装置、存储介质和计算机设备,可以确定存储在第一磁盘块组中的各文件块的序号;根据所述文件块的序号和所述第一磁盘块组中包含的文件块的数量确定存储在所述第一磁盘块组中的各文件块所属的文件块组的序号估值;在确定的各序号估值中包括至少两个不同的序号估值时,确定所
述第一磁盘块组中存在异常的文件块。本发明实施例采用根据磁盘块组中文件块的序号确定该文件块所属的文件块组的序号估值,从而确定磁盘块组中存在异常的文件块的技术手段,克服了无法确定磁盘块组中是否存在异常的文件块的技术问题,进而达到了可以发现磁盘块组中的文件块异常的技术效果。
[0036]
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
[0037]
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0038]
图1示出了本发明实施例提供的一种数据异常处理方法的流程示意图;
[0039]
图2示出了本发明实施例提供的将总数据划分为文件块的说明示意图;
[0040]
图3示出了本发明实施例提供的将文件块划分为文件块组及设置文件块组的序号的说明示意图;
[0041]
图4示出了本发明实施例提供的一种磁盘、磁盘块和磁盘块组之间的关系以及设置磁盘块的序号和磁盘块组的序号的说明示意图;
[0042]
图5示出了本发明实施例提供的一种分块及分组方案的说明示意图;
[0043]
图6示出了本发明实施例提供的另一种数据异常处理方法的流程示意图;
[0044]
图7示出了本发明实施例提供的确定异常的文件块的说明示意图;
[0045]
图8示出了本发明实施例提供的另一种分块及分组方案的说明示意图;
[0046]
图9示出了本发明实施例提供的一种数据异常处理装置的结构示意图。
具体实施方式
[0047]
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0048]
如图1所示,本发明实施例提供的一种数据异常处理方法,可以包括:
[0049]
s100、确定存储在第一磁盘块组中的各文件块的序号;
[0050]
具体的,本发明可以按照从文件头部到文件尾部的顺序将文件划分为多个文件块。在进行划分时,文件块的最大数据量可以为预设数据量。当从开始划分位置向后存在所述预设数据量的文件数据时,则可以将该开始划分位置之后的最近的预设数据量的文件数据划分为一个新的文件块,依次类推,直至划分至文件尾部。例如:如图2所示,某文件的数据量为5.3mb,预设数据量为1mb,则可以从文件头部到文件尾部将该文件划分为六个文件块,前五个文件块的数据量均为1mb,最后一个文件块的数据量为0.3mb。可选的,本发明可以根据文件块划分顺序为各文件块设置序号,如:0、1、2等。
[0051]
进一步,本发明还可以将一定数量的文件块划分为一个文件块组。例如:每两个文
件块划分为一个文件块组。则上述5.3mb的举例中的六个文件块可以划分为三个文件块组。可选的,本发明可以将相邻的一定数量的文件块划分为一个文件块组,各文件块组中包括的文件块不同。具体的,一个文件块组中的各文件块均为同一文件的文件块。可选的,本发明可以按照文件块组中包括的各文件块在文件中的位置的首尾顺序为各文件块组设置序号。例如:如图3所示,当每两个文件块划分为一个文件块组时,前两个文件块划分为的文件块组的序号可以为0,后续两个文件块划分为的文件块组的序号可以为1,以此类推。
[0052]
除对文件进行划分外,本发明还可以对磁盘进行划分,本发明可以将一个磁盘划分为多个磁盘块,每个磁盘块的大小相同。可选的,每个磁盘块的大小可以和上述预设数据量相同(即磁盘块的大小和文件块的大小相同)。这样,一个磁盘块中就可以放下一个文件块,或者说,一个文件块就可以放入一个磁盘块中。可选的,如图4所示,本发明可以按照磁盘物理地址的先后顺序依次划分得到多个磁盘块,并根据划分顺序为各磁盘块设置序号,如:0、1、2等。
[0053]
进一步,本发明还可以将一定数量的磁盘块划分为一个磁盘块组。可选的,每个磁盘块组中包括的磁盘块的数量和每个文件块组中包括的文件块的数量可以相同。例如:本发明将每三个文件块确定为一个文件块组,相应的,本发明将每三个磁盘块确定为一个磁盘块组。可选的,一个磁盘块组内各磁盘块均位于不同的磁盘中,且位于同一磁盘块组内的各磁盘块在所在磁盘内的序号相同。如图4所示,例如:序号为0的磁盘块组内包含磁盘块a、磁盘块b、磁盘块c这三个磁盘块,这三个磁盘块分别位于磁盘a、磁盘b、磁盘c中,且磁盘块a在磁盘a中的序号与磁盘块b在磁盘b中的序号相同(均为0),且磁盘块b在磁盘b中的序号与磁盘块c在磁盘c中的序号相同(均为0)。可选的,本发明可以按照磁盘块组中包括的各磁盘块的序号为各磁盘块组设置序号。具体的,可以将磁盘块组内包括的各磁盘块的序号确定为磁盘块组的序号。例如:某磁盘块组内包括三个磁盘块,各磁盘块在所在磁盘内的序号均为3,则该磁盘块组的序号为3。
[0054]
当然,本发明并不限定上述文件块序号的起始序号、文件块组序号的起始序号、磁盘块序号的起始序号和磁盘块组序号的起始序号。在图2至图4的举例中,上述四种序号的起始序号均为0,可以理解的是,起始序号也可以为其他数,本发明不做限定。
[0055]
其中,当文件块序号有多个时,这些文件块序号可以构成一个连续的数字序列,如:3、4、5、6。相应的,文件块组序号、磁盘块序号和磁盘块组序号也可以分别构成一个连续的数字序列。
[0056]
可选的,当文件存储到磁盘中时,本发明可以建立文件id与其所在的磁盘的id的对应关系。这样就可以通过文件id确定存储该文件的磁盘的id,反之,也可以根据磁盘的id确定该磁盘内存储的文件的id。
[0057]
当每个磁盘块组中包括的磁盘块的数量和每个文件块组中包括的文件块的数量相同时,一个磁盘块组中仅可以放入一个完整的文件块组。本发明可以对磁盘块组的序号与磁盘块组保存的文件块组的序号进行对应保存。例如:某序号为3的磁盘块组中保存了序号为3的文件块组,则本发明可以将二者进行对应保存。保存方式可以为键值对,其中,磁盘块组的序号可以为键,文件块组的序号可以为值。进一步,本发明也可以对磁盘块的序号与磁盘块保存的文件块的序号进行对应保存并添加到上述文件id与磁盘id的对应关系中。例如:(file_id,file block_id)=>(disk_id,disk block_id)。其中,file_id为文件id,
file block_id为文件块的序号,disk_id为磁盘id,disk block_id为磁盘块的序号。该(file_id,file block_id)=>(disk_id,disk block_id)可以称为文件索引。
[0058]
可选的,上述第一磁盘块组可以为作为缓存的磁盘中的存储空间。作为缓存的磁盘可以为固态硬盘、内存等。当然,第一磁盘块组也可以为作为持久化存储的磁盘中的存储空间。
[0059]
除将数据放入可作为缓存的磁盘中,本发明还可以将全量数据放入作为持久化存储的磁盘中,如机械硬盘中。
[0060]
可以理解的是,本发明还可以对持久化存储的磁盘进行上述磁盘块、磁盘块组的划分并按照与第一磁盘块组相同的存储对应方式对文件块、文件块组进行存储。
[0061]
可以理解的是,一般情况下,作为缓存的磁盘的存储空间较小,因此一般仅保存了全量数据中的部分数据,而在作为持久化存储的磁盘中存储全量数据。本发明不仅可以保存作为缓存的磁盘内各文件块的文件索引,还可以保存作为持久化存储的磁盘内各文件块的文件索引。这样,本发明可以通过文件id和文件块的序号将作为缓存的磁盘的磁盘块的序号与作为持久化存储的磁盘的磁盘块的的序号对应起来。
[0062]
例如:作为缓存的a磁盘有文件索引:(file_1,file block_1)=>(disk_01,disk block_02);作为持久化存储的b磁盘有文件索引:(file_1,file block_1)=>(disk_11,disk block_03),则本发明可以确定文件id为1中序号为1的文件块存储于id为01的a磁盘中的序号为02的磁盘块中,以及还存储于id为11的b磁盘中的序号为03的磁盘块中。当作为缓存的a磁盘中的数据出现问题时,本发明可以根据上述索引的关系找到持久化存储的b磁盘中的相应数据并根据该数据对a磁盘中出现问题的数据进行更新。
[0063]
下面通过图5对本发明的分块及分组方案进行说明:
[0064]
如图5所示,设第一类型磁盘为作为缓存的磁盘,其中,第一类型磁盘由磁盘a、磁盘b和磁盘c构成。第二类型磁盘为作为持久化存储的磁盘,第二类型磁盘由磁盘d、磁盘e和磁盘f构成。磁盘a至磁盘f均被划分为多个磁盘块,各磁盘块的存储空间相同。如图5所示,对于磁盘a至磁盘f中任一磁盘中各磁盘块的序号均从0开始依次递增。如图5所示,将第一类型磁盘中磁盘块序号相同的各磁盘块确定为一个磁盘块组,磁盘块组的序号与其所包含的磁盘块的序号相同。为了图5的清楚简洁,磁盘块组仅用磁盘块组0、磁盘块组1和磁盘块组2示意说明。如图5所示,第二类型磁盘中磁盘块组的划分方式与第二类型磁盘中磁盘块组的划分方式相同。如图5所示,将文件0001(文件id为0001)划分为文件块0(0为文件块的序号)至文件块7(7为文件块的序号),文件块的序号从0开始依次递增。文件0001分别存储在第一类型磁盘和第二类型磁盘中。每个文件块的数据量与磁盘块的存储空间相同。如图5中的虚线箭头所示,文件块0放入磁盘a的磁盘块0以及磁盘d的磁盘块0中,其他文件块所在的磁盘块根据虚线箭头可知,此处不再赘述。具体的,本发明可以对图5中的文件0001的各文件块进行分组,将文件块0至文件块2划分为文件块组0,将文件块3至文件块5划分为文件块组1,将文件块6至文件块7划分为文件块组2。可知,文件块组0存储于磁盘块组0中,以此类推。
[0065]
s200、根据所述文件块的序号和所述第一磁盘块组中包含的文件块的数量确定存储在所述第一磁盘块组中的各文件块所属的文件块组的序号估值;
[0066]
可选的,当按照文件块组中包括的各文件块在文件中的位置的首尾顺序为各文件
块组设置序号时,文件块所属的文件块组的序号估值的获得方式可以具体为:某文件块的序号减去文件块组中在文件起始位置的文件块的起始序号(如起始序号为0)后再除以第一磁盘块组包含的文件块的数量获得商,将该商进行向下取整,获得文件块所属的文件块组的序号估值。
[0067]
其中,一个文件块组的序号估值与该文件块组的序号之间的差值可以为固定值。该固定值为整数。
[0068]
可以理解的是,虽然本发明步骤s200确定的是序号估值,但是由于序号估值与序号之间的差值为固定值,因此本发明可以根据序号估值确定磁盘块组内各文件块是否存在异常的文件块。例如:在确定的各序号估值中包括至少两个不同的序号估值时,则说明第一磁盘块组中的各文件块所属的文件块组的序号至少为两个。但本发明在进行文件存储时,仅将属于同一文件块组的文件块放入一个磁盘块组中,因此当第一磁盘块组中的各文件块所属的文件块组的序号至少为两个时,说明第一磁盘块组中存在异常的文件块。
[0069]
可以理解的是,当文件块的起始序号为0时,本发明可以将文件块的序号除以第一磁盘块组包含的文件块的数量获得商,将该商进行向下取整,获得文件块所属的文件块组的序号估值。
[0070]
本发明实施例确定文件块所属的文件块组的序号估值的过程,可以如图6所示,本发明实施例提供的另一种数据异常处理方法,根据文件块的序号和第一磁盘块组中包含的文件块的数量确定存储在第一磁盘块组中的各文件块所属的文件块组的序号估值的具体过程可以为:s210、对每个所述文件块:将该文件块的序号减去文件块的起始序号后除以所述第一磁盘块组中包含的文件块的数量获得商,将该商进行向下取整,将取整后的结果确定为该文件块所属的文件块组的序号估值。
[0071]
如图7所示,如果第一磁盘组中包含的文件块的数量为4个时,文件块的起始序号为0,文件块d的序号0除以4,得到的序号估值为0;文件块e的序号1除以4得到0.25,向下取整后得到的序号估值为0,以此类推,直到文件块g的序号3除以4得到0.75,向下取整后得到的序号估值为0,所以,在正常情况下,序号分别为0、1、2和3的文件块所属的文件块组的序号估值都为0。依次可知,文件块h、文件块i、文件块j和文件块k所属的文件块组的序号估值为1,以此类推。
[0072]
需要注意的是,文件块组中包含的文件块的个数是固定的,本发明可选实施例可以从0开始对文件划分获得的文件块的序号进行分配,当文件块组中包含的文件块的个数为4时,则该文件块组中包括的文件块的序号可以是0、1、2和3,也可以是4、5、6和7,以此类推。当文件块组中包含的文件块的个数为5时,则该文件块组中包括的文件块的序号可以是0、1、2、3和4,也可以是5、6、7、8和9,以此类推。对文件块的序号从0开始分配是根据编程语言的习惯确定的,以便减少在实际编程过程中的多余运算。
[0073]
可以理解的是,当文件块的起始序号和文件块组的起始序号均为0时,本发明确定的文件块组的序号估值即为文件块组的序号本身。
[0074]
之所以确定序号估值,而不是确定序号本身,是因为确定序号估值的计算过程较为简单,可以有效减少计算量。
[0075]
s300、在确定的各序号估值中包括至少两个不同的序号估值时,确定所述第一磁盘块组中存在异常的文件块。
[0076]
具体的,在正常情况下,第一磁盘块组中包含的文件块所属的文件块组的序号估值相同且唯一,当确定第一磁盘块组中包含的文件块所属的文件块组的序号估值存在至少两个不同的序号估值时,可以确定第一磁盘块组中包含的文件块中存在异常的文件块。例如,以图7进行举例说明:文件块组的序号为0的四个文件块存储在磁盘的第一磁盘块组中,在正常情况下,第一磁盘块组中的文件块所属的文件块组的序号估值应该都为0,然而当确定第一磁盘块组内存储的某一文件块所属的文件块组的序号估值不为0时,则确定第一磁盘块组中包含的文件块中存在异常的文件块,说明磁盘中的第一磁盘块组中出现异常的数据,需要及时对第一磁盘块组进行处理。例如假设图7中文件块f的序号为6,则通过本发明可以确定文件块d、文件块e和文件块g所属的文件块组的序号估值均为0,而文件块f所属的文件块组的序号估值为1。这种情况可以确定第一磁盘块组中存在异常的文件块。
[0077]
本发明实施例提供的一种数据异常处理方法,可以确定存储在第一磁盘块组中的各文件块的序号;根据所述文件块的序号和所述第一磁盘块组中包含的文件块的数量确定存储在所述第一磁盘块组中的各文件块所属的文件块组的序号估值;在确定的各序号估值中包括至少两个不同的序号估值时,确定所述第一磁盘块组中存在异常的文件块。本发明实施例采用根据磁盘块组中文件块的序号确定该文件块所属的文件块组的序号估值,从而确定磁盘块组中存在异常的文件块的技术手段,克服了无法确定磁盘块组中是否存在异常的文件块的技术问题,进而达到了可以发现磁盘块组中的文件块异常的技术效果。
[0078]
在确定第一磁盘块组中存在异常的文件块以后,可以进一步在第一磁盘块组中包含的文件块中确定异常的文件块。具体确定异常的文件块的过程可以包括:
[0079]
判断确定的各序号估值中所包括的不同的序号估值的数量,在所述数量低于预设数量时,将在所述第一磁盘块组中且所属的文件块组的序号估值位于第一序号估值组的文件块确定为异常的文件块,所述第一序号估值组为在所述各序号估值中出现次数最多的序号估值外的其他序号估值构成的序号估值组。此时,本发明可以仅将异常的文件块进行清除。
[0080]
具体的,预设数量可以根据实际需要进行设置。例如,预设数量为3,若文件块d至g确定的各序号估值分别为0、0、1和0,则不同的序号估值的数量为2,2小于3,此时可以确定出现次数最多的序号估值为0,则可以将位于第一磁盘块组中且确定的序号估值中除0之外的其他序号估值(即1)的文件块确定为异常的文件块(即文件块f为异常的文件块)。
[0081]
可选的,在所述数量不低于预设数量时,可以将所述第一磁盘块组中的各文件块进行清除。当确定的各序号估值中所包括的不同的序号估值的数量不低于预设数量时,说明第一磁盘块组中的异常的文件块较多,已没有再单独修正的必要,此时可以直接对第一磁盘块组中的所有文件块进行清除。例如:预设数量为3,若文件块d至g确定的各序号估值分别为0、5、1和2,则不同的序号估值的数量为4,不低于预设数量,可以直接将第一磁盘块组中文件块d至g进行清除。
[0082]
可选的,本发明还提供了另一种确定异常的文件块的过程,该过程可以包括:
[0083]
判断所述各序号估值中出现次数最多的序号估值的出现次数是否高于预设次数,如果是,将在所述第一磁盘块组中且所属的文件块组的序号估值位于第一序号估值组的文件块确定为异常的文件块,所述第一序号估值组为在所述各序号估值中出现次数最多的序号估值外的其他序号估值构成的序号估值组。此时,可以仅将异常的文件块进行清除。
[0084]
具体的,预设次数可以根据实际需要进行设置。例如,预设次数为2,若确定的各序号估值分别为0、0、1和0,则出现次数最多的序号估值为0,出现次数为3,将序号估值为1的文件块确定为异常的文件块。
[0085]
可选的,在出现次数不高于预设次数时,将所述第一磁盘块组中的各文件块进行清除。当出现次数不高于预设次数时,说明即使出现次数最多的序号估值也出现较少,因此第一磁盘块组中正常的文件块数量较少,也没有单独修正的必要,可以将所述第一磁盘块组中的全部文件块进行清除。
[0086]
可选的,所述第一磁盘块组位于第一类型磁盘中,本发明实施例在所述将所述第一磁盘块组中的各文件块进行清除之后,还可以包括:
[0087]
确定在所述第一磁盘块组内保存且所属的序号估值为出现次数最多的序号估值的正常的文件块的序号及所述正常的文件块所属文件的id;
[0088]
根据所述正常的文件块在所述第一磁盘块组中的存储位置确定所述第一磁盘块组中应存储的各文件块的序号;
[0089]
根据确定的文件id及所述第一磁盘块组中应存储的各文件块的序号从第二类型磁盘中获得所述各文件块;
[0090]
将从所述第二类型磁盘获得的所述各文件块存入所述第一磁盘块组中。
[0091]
具体的,所述正常的文件块所属的文件块组的序号估值为所述出现次数最多的序号估值。本发明实施例可以将所属的序号估值为出现次数最多的序号估值的文件块确定为正常的文件块,再根据正常的文件块,可以确定该正常的文件块所属文件的id。例如,如图8所示,出现次数最多的序号估值为0,可以将第一磁盘块组中序号估值为0的文件块1和文件块2确认为正常的文件块,由文件块1和文件块2,可以确定文件的id为0001。
[0092]
具体的,可以根据一个或多个正常的文件块在第一磁盘块组中的存储位置,确定第一磁盘组中应存储的各文件块的序号。例如,如图8所示,若第一磁盘块组为第一类型磁盘中的磁盘块组0,由于文件块按照序号排列进行分组,且每个文件块组存储到磁盘块组中时,该文件块组内各文件块在磁盘块组中也按照序号顺序进行排列。因此,本发明可以根据存储文件块1的磁盘块在磁盘块组0中的位置确定该磁盘块组0内其他磁盘块应存储的正确的文件块的序号。即:文件块1和文件块2为正常的文件块,存储文件块1的磁盘块在磁盘块组0中位于从左侧开始数的第二个位置,存储文件块2的磁盘块在磁盘块组0中位于从左侧开始数的第三个位置,因此磁盘块组0中位于从左侧开始数的第一个位置中的磁盘块中存储的文件块的序号为0,即:磁盘块组0中位于从左侧开始数的第一个位置中的磁盘块应存储文件块0。因此,本发明可以确定磁盘块组0中应存储文件块的序号分别为:0、1和2。
[0093]
具体的,根据文件id及应存储的文件块的序号,可以在第二类型磁盘中获得对于该文件id以及序号的文件块。例如,如图8所示,根据确定文件id为0001,应存储的文件块的序号为0、1和2,可以在第二类型磁盘中获得存储位置为磁盘d中的磁盘块0的文件块0,在第二类型磁盘中获得存储位置为磁盘e中的磁盘块0的文件块1,在第二类型磁盘中获得存储位置为磁盘f中的磁盘块0的文件块2。
[0094]
具体的,在将第一磁盘块组中的各文件块进行清除之后,需要将第二类型磁盘中正确的文件块存入到第一磁盘块组中。如图8所示,若第一磁盘块组为第一类型磁盘中的磁盘块组0,在将第一类型磁盘中的磁盘块组0中的文件块7、文件块1和文件块2清除之后,从
第二类型磁盘的磁盘块组0中获得正确的文件块0、文件块1和文件块2存入第一类型磁盘中的磁盘块组0。其中,磁盘a中的磁盘块0存入文件块0,磁盘b中的磁盘块0存入文件块1,以及磁盘c中的磁盘块0存入文件块3。
[0095]
其中,第一类型磁盘可以为作为缓存的磁盘,第二类型磁盘可以为作为持久化存储的磁盘。
[0096]
当确定第一磁盘组中存在异常的文件块且没有满足将所述第一磁盘块组中的各文件块进行清除的条件时,本发明实施例还可以对位于第一类型磁盘中的第一磁盘块组中的异常的文件块进行修复,具体的修复过程可以为:根据出现次数最多的序号估值,将所述异常的文件块替换为正确的文件块。
[0097]
具体的,所述第一磁盘块组位于第一类型磁盘中,所述根据出现次数最多的序号估值,将所述异常的文件块替换为正确的文件块,可以包括:
[0098]
根据所述异常的文件块与所述第一磁盘块组中正常的文件块的位置关系,确定所述异常的文件块对应的正确的文件块的序号及所述正确的文件块所属的文件的文件id,其中,所述正常的文件块所属的文件块组的序号估值为所述出现次数最多的序号估值;
[0099]
根据所述正确的文件块的序号及所述正确的文件块所属的文件的文件id,从第二类型磁盘中获得所述正确的文件块并将所述异常的文件块替换为所述正确的文件块。
[0100]
其中,正确的文件块为原本应放在所述异常的文件块所在的磁盘块的文件块。由于文件块按照序号排列进行分组,且每个文件块组存储到磁盘块组中时,该文件块组内各文件块在磁盘块组中也按照序号顺序存储到相应的磁盘块中。因此,本发明可以根据存储正常的文件块的磁盘块在磁盘块组中的位置以及存储异常的文件块的磁盘块在磁盘块组中的位置的位置关系,由正常的文件块的序号根据位置关系推导得出所述异常的文件块对应的正确的文件块的序号及所述正确的文件块所属的文件的文件id。
[0101]
例如,如图8所示,假设第一磁盘块组为第一类型磁盘中的磁盘块组0,第一类型磁盘中的磁盘块组0对应的文件块组中包括文件块7、文件块1和文件块2,位置为磁盘a中磁盘块0上的文件块7确定为异常的文件块,则可以根据文件块7所在磁盘块相邻的磁盘块(磁盘b中磁盘块0)中正常的文件块1的序号,确定应在磁盘a中磁盘块0上存储的正确的文件块的序号为0。当然,本发明可以确定正确的文件块所属的文件的文件id与所述正常的文件块所属的文件的文件id相同。
[0102]
具体的,根据正确的文件块的序号和所属的文件的文件id,可以在第二类型磁盘中获得正确的文件块之后,将异常的文件块替换为正确的文件块。例如,如图8所示,正确的文件块的序号为0,所属的文件的文件id为0001,则在第二类型磁盘中可以获得文件块0,将磁盘a中磁盘块0中存储文件块7替换为文件块0。
[0103]
具体的,本发明可以根据所述异常的文件块与正常的文件块在所述第一磁盘块组中的位置关系,确定所述异常的文件块对应的正确的文件块的序号及所述正确的文件块所属的文件的文件id,进而根据所述正确的文件块的序号及所述正确的文件块所属的文件的文件id,从第二类型磁盘中获得所述正确的文件块并将所述异常的文件块替换为所述正确的文件块。本发明可以将错误的数据修改为正确的数据,保证了数据的准确。
[0104]
与上述方法实施例相对应,本发明实施例提供了一种数据异常处理装置,其结构如图9所示,可以包括:文件块序号确定单元100、序号估值确定单元200和异常文件块确定
单元300,
[0105]
所述文件块序号确定单元100,用于确定存储在第一磁盘块组中的各文件块的序号;
[0106]
具体的,本发明可以按照从文件头部到文件尾部的顺序将文件划分为多个文件块。在进行划分时,文件块的最大数据量可以为预设数据量。当从开始划分位置向后存在所述预设数据量的文件数据时,则可以将该开始划分位置之后的最近的预设数据量的文件数据划分为一个新的文件块,依次类推,直至划分至文件尾部。例如:如图2所示,某文件的数据量为5.3mb,预设数据量为1mb,则可以从文件头部到文件尾部将该文件划分为六个文件块,前五个文件块的数据量均为1mb,最后一个文件块的数据量为0.3mb。可选的,本发明可以根据文件块划分顺序为各文件块设置序号,如:0、1、2等。
[0107]
进一步,本发明还可以将一定数量的文件块划分为一个文件块组。例如:每两个文件块划分为一个文件块组。则上述5.3mb的举例中的六个文件块可以划分为三个文件块组。可选的,本发明可以将相邻的一定数量的文件块划分为一个文件块组,各文件块组中包括的文件块不同。具体的,一个文件块组中的各文件块均为同一文件的文件块。可选的,本发明可以按照文件块组中包括的各文件块在文件中的位置的首尾顺序为各文件块组设置序号。
[0108]
除对文件进行划分外,本发明还可以对磁盘进行划分,本发明可以将一个磁盘划分为多个磁盘块,每个磁盘块的大小相同。可选的,每个磁盘块的大小可以和上述预设数据量相同(即磁盘块的大小和文件块的大小相同)。这样,一个磁盘块中就可以放下一个文件块,或者说,一个文件块就可以放入一个磁盘块中。
[0109]
进一步,本发明还可以将一定数量的磁盘块划分为一个磁盘块组。可选的,每个磁盘块组中包括的磁盘块的数量和每个文件块组中包括的文件块的数量可以相同。例如:本发明将每三个文件块确定为一个文件块组,相应的,本发明将每三个磁盘块确定为一个磁盘块组。可选的,一个磁盘块组内各磁盘块均位于不同的磁盘中,且位于同一磁盘块组内的各磁盘块在所在磁盘内的序号相同。可选的,本发明可以按照磁盘块组中包括的各磁盘块的序号为各磁盘块组设置序号。具体的,可以将磁盘块组内包括的各磁盘块的序号确定为磁盘块组的序号。
[0110]
当然,本发明并不限定上述文件块序号的起始序号、文件块组序号的起始序号、磁盘块序号的起始序号和磁盘块组序号的起始序号。可以理解的是,起始序号也可以为其他数,本发明不做限定。
[0111]
其中,当文件块序号有多个时,这些文件块序号可以构成一个连续的数字序列。相应的,文件块组序号、磁盘块序号和磁盘块组序号也可以分别构成一个连续的数字序列。
[0112]
可选的,当文件存储到磁盘中时,本发明可以建立文件id与其所在的磁盘的id的对应关系。这样就可以通过文件id确定存储该文件的磁盘的id,反之,也可以根据磁盘的id确定该磁盘内存储的文件的id。
[0113]
当每个磁盘块组中包括的磁盘块的数量和每个文件块组中包括的文件块的数量相同时,一个磁盘块组中仅可以放入一个完整的文件块组。本发明可以对磁盘块组的序号与磁盘块组保存的文件块组的序号进行对应保存。保存方式可以为键值对,其中,磁盘块组的序号可以为键,文件块组的序号可以为值。进一步,本发明也可以对磁盘块的序号与磁盘
块保存的文件块的序号进行对应保存并添加到上述文件id与磁盘id的对应关系中。例如:(file_id,file block_id)=>(disk_id,disk block_id)。其中,file_id为文件id,file block_id为文件块的序号,disk_id为磁盘id,disk block_id为磁盘块的序号。该(file_id,file block_id)=>(disk_id,disk block_id)可以称为文件索引。
[0114]
可选的,上述第一磁盘块组可以为作为缓存的磁盘中的存储空间。作为缓存的磁盘可以为固态硬盘、内存等。当然,第一磁盘块组也可以为作为持久化存储的磁盘中的存储空间。
[0115]
除将数据放入可作为缓存的磁盘中,本发明还可以将全量数据放入作为持久化存储的磁盘中,如机械硬盘中。
[0116]
可以理解的是,本发明还可以对持久化存储的磁盘进行上述磁盘块、磁盘块组的划分并按照与第一磁盘块组相同的存储对应方式对文件块、文件块组进行存储。
[0117]
可以理解的是,一般情况下,作为缓存的磁盘的存储空间较小,因此一般仅保存了全量数据中的部分数据,而在作为持久化存储的磁盘中存储全量数据。本发明不仅可以保存作为缓存的磁盘内各文件块的文件索引,还可以保存作为持久化存储的磁盘内各文件块的文件索引。这样,本发明可以通过文件id和文件块的序号将作为缓存的磁盘的磁盘块的序号与作为持久化存储的磁盘的磁盘块的的序号对应起来。
[0118]
例如:作为缓存的a磁盘有文件索引:(file_1,file block_1)=>(disk_01,disk block_02);作为持久化存储的b磁盘有文件索引:(file_1,file block_1)=>(disk_11,disk block_03),则本发明可以确定文件id为1中序号为1的文件块存储于id为01的a磁盘中的序号为02的磁盘块中,以及还存储于id为11的b磁盘中的序号为03的磁盘块中。当作为缓存的a磁盘中的数据出现问题时,本发明可以根据上述索引的关系找到持久化存储的b磁盘中的相应数据并根据该数据对a磁盘中出现问题的数据进行更新。
[0119]
所述序号估值确定单元200,用于根据所述文件块的序号和所述第一磁盘块组中包含的文件块的数量确定存储在所述第一磁盘块组中的各文件块所属的文件块组的序号估值;
[0120]
可选的,当按照文件块组中包括的各文件块在文件中的位置的首尾顺序为各文件块组设置序号时,文件块所属的文件块组的序号估值的获得方式可以具体为:某文件块的序号减去文件块组中在文件起始位置的文件块的起始序号(如起始序号为0)后再除以第一磁盘块组包含的文件块的数量获得商,将该商进行向下取整,获得文件块所属的文件块组的序号估值。
[0121]
其中,一个文件块组的序号估值与该文件块组的序号之间的差值可以为固定值。该固定值为整数。
[0122]
可以理解的是,当文件块的起始序号为0时,本发明可以将文件块的序号除以第一磁盘块组包含的文件块的数量获得商,将该商进行向下取整,获得文件块所属的文件块组的序号估值。
[0123]
序号估值确定单元200可以具体用于对每个所述文件块:将该文件块的序号减去文件块的起始序号后除以所述第一磁盘块组中包含的文件块的数量获得商,将该商进行向下取整,将取整后的结果确定为该文件块所属的文件块组的序号估值。
[0124]
如图7所示,如果第一磁盘组中包含的文件块的数量为4个时,文件块的起始序号
为0,文件块d的序号0除以4,得到的序号估值为0;文件块e的序号1除以4得到0.25,向下取整后得到的序号估值为0,以此类推,直到文件块g的序号3除以4得到0.75,向下取整后得到的序号估值为0,所以,在正常情况下,序号分别为0、1、2和3的文件块所属的文件块组的序号估值都为0。依次可知,文件块h、文件块i、文件块j和文件块k所属的文件块组的序号估值为1,以此类推。
[0125]
需要注意的是,文件块组中包含的文件块的个数是固定的,本发明可选实施例可以从0开始对文件划分获得的文件块的序号进行分配,当文件块组中包含的文件块的个数为4时,则该文件块组中包括的文件块的序号可以是0、1、2和3,也可以是4、5、6和7,以此类推。当文件块组中包含的文件块的个数为5时,则该文件块组中包括的文件块的序号可以是0、1、2、3和4,也可以是5、6、7、8和9,以此类推。对文件块的序号从0开始分配是根据编程语言的习惯确定的,以便减少在实际编程过程中的多余运算。
[0126]
可以理解的是,当文件块的起始序号和文件块组的起始序号均为0时,本发明确定的文件块组的序号估值即为文件块组的序号本身。
[0127]
之所以确定序号估值,而不是确定序号本身,是因为确定序号估值的计算过程较为简单,可以有效减少计算量。
[0128]
所述异常文件块确定单元300,用于在确定的各序号估值中包括至少两个不同的序号估值时,确定所述第一磁盘块组中存在异常的文件块。
[0129]
具体的,在正常情况下,第一磁盘块组中包含的文件块所属的文件块组的序号估值相同且唯一,当确定第一磁盘块组中包含的文件块所属的文件块组的序号估值存在至少两个不同的序号估值时,可以确定第一磁盘块组中包含的文件块中存在异常的文件块。
[0130]
本发明实施例提供的一种数据异常处理装置,可以确定存储在第一磁盘块组中的各文件块的序号;根据所述文件块的序号和所述第一磁盘块组中包含的文件块的数量确定存储在所述第一磁盘块组中的各文件块所属的文件块组的序号估值;在确定的各序号估值中包括至少两个不同的序号估值时,确定所述第一磁盘块组中存在异常的文件块。本发明实施例采用根据磁盘块组中文件块的序号确定该文件块所属的文件块组的序号估值,从而确定磁盘块组中存在异常的文件块的技术手段,克服了无法确定磁盘块组中是否存在异常的文件块的技术问题,进而达到了可以发现磁盘块组中的文件块异常的技术效果。
[0131]
可选的,本发明实施例提供的另一种数据异常处理装置还可以包括:判断单元和文件块清除单元,
[0132]
所述判断单元可以用于判断确定的各序号估值中所包括的不同的序号估值的数量,在所述数量低于预设数量时,触发所述异常文件块确定单元300用于将在所述第一磁盘块组中且所属的文件块组的序号估值位于第一序号估值组的文件块确定为异常的文件块,所述第一序号估值组为在所述各序号估值中出现次数最多的序号估值外的其他序号估值构成的序号估值组。此时,本发明可以仅将异常的文件块进行清除。
[0133]
具体的,预设数量可以根据实际需要进行设置。例如,预设数量为3,若文件块d至g确定的各序号估值分别为0、0、1和0,则不同的序号估值的数量为2,2小于3,此时可以确定出现次数最多的序号估值为0,则可以将位于第一磁盘块组中且确定的序号估值中除0之外的其他序号估值(即1)的文件块确定为异常的文件块(即文件块f为异常的文件块)。
[0134]
所述文件块清除单元可以用于在所述数量不低于预设数量时,将所述第一磁盘块
组中的各文件块进行清除。当确定的各序号估值中所包括的不同的序号估值的数量不低于预设数量时,说明第一磁盘块组中的异常的文件块较多,已没有再单独修正的必要,此时可以直接对第一磁盘块组中的所有文件块进行清除。
[0135]
可选的,在本发明实施例提供的另一种数据异常处理装置中,所述判断单元可以用于判断所述各序号估值中出现次数最多的序号估值的出现次数是否高于预设次数,如果是,触发所述异常文件块确定单元300用于将在所述第一磁盘块组中且所属的文件块组的序号估值位于第一序号估值组的文件块确定为异常的文件块,所述第一序号估值组为在所述各序号估值中出现次数最多的序号估值外的其他序号估值构成的序号估值组。此时,可以仅将异常的文件块进行清除。
[0136]
具体的,预设次数可以根据实际需要进行设置。例如,预设次数为2,若确定的各序号估值分别为0、0、1和0,则出现次数最多的序号估值为0,出现次数为3,将序号估值为1的文件块确定为异常的文件块。
[0137]
在此情况下,可选的,所述文件块清除单元用于在出现次数不高于预设次数时,将所述第一磁盘块组中的各文件块进行清除。当出现次数不高于预设次数时,说明即使出现次数最多的序号估值也出现较少,因此第一磁盘块组中正常的文件块数量较少,也没有单独修正的必要,可以将所述第一磁盘块组中的全部文件块进行清除。
[0138]
可选的,在本发明实施例提供的另一种数据异常处理装置,还可以包括:文件id确定单元、应存储文件块序号确定单元、文件块获得单元和文件块存入单元,
[0139]
文件id确定单元,用于文件块清除单元将所述第一磁盘块组中的各文件块进行清除之后,确定在所述第一磁盘块组内保存且所属的序号估值为出现次数最多的序号估值的正常的文件块的序号及所述正常的文件块所属文件的id;
[0140]
应存储文件块序号确定单元,根据所述正常的文件块在所述第一磁盘块组中的存储位置确定所述第一磁盘块组中应存储的各文件块的序号;
[0141]
文件块获得单元,用于根据确定的文件id及所述第一磁盘块组中应存储的各文件块的序号从第二类型磁盘中获得所述各文件块;
[0142]
文件块存入单元,用于将从所述第二类型磁盘获得的所述各文件块存入所述第一磁盘块组中。
[0143]
具体的,所述正常的文件块所属的文件块组的序号估值为所述出现次数最多的序号估值。本发明实施例可以将所属的序号估值为出现次数最多的序号估值的文件块确定为正常的文件块,再根据正常的文件块,可以确定该正常的文件块所属文件的id。
[0144]
具体的,可以根据一个或多个正常的文件块在第一磁盘块组中的存储位置,确定第一磁盘组中应存储的各文件块的序号。例如,如图8所示,若第一磁盘块组为第一类型磁盘中的磁盘块组0,由于文件块按照序号排列进行分组,且每个文件块组存储到磁盘块组中时,该文件块组内各文件块在磁盘块组中也按照序号顺序进行排列。因此,本发明可以根据存储文件块1的磁盘块在磁盘块组0中的位置确定该磁盘块组0内其他磁盘块应存储的正确的文件块的序号。即:文件块1和文件块2为正常的文件块,存储文件块1的磁盘块在磁盘块组0中位于从左侧开始数的第二个位置,存储文件块2的磁盘块在磁盘块组0中位于从左侧开始数的第三个位置,因此磁盘块组0中位于从左侧开始数的第一个位置中的磁盘块中存储的文件块的序号为0,即:磁盘块组0中位于从左侧开始数的第一个位置中的磁盘块应存
储文件块0。因此,本发明可以确定磁盘块组0中应存储文件块的序号分别为:0、1和2。
[0145]
具体的,根据文件id及应存储的文件块的序号,可以在第二类型磁盘中获得对于该文件id以及序号的文件块。
[0146]
具体的,在将第一磁盘块组中的各文件块进行清除之后,需要将第二类型磁盘中正确的文件块存入到第一磁盘块组中。
[0147]
其中,第一类型磁盘可以为作为缓存的磁盘,第二类型磁盘可以为作为持久化存储的磁盘。
[0148]
可选的,本发明实施例提供的另一种数据异常处理装置还包括:文件块替换单元,
[0149]
所述文件块替换单元,用于根据出现次数最多的序号估值,将所述异常的文件块替换为正确的文件块。
[0150]
可选的,所述第一磁盘块组位于第一类型磁盘中,所述文件块替换单元具体用于根据所述异常的文件块与正常的文件块在所述第一磁盘块组中的位置关系,确定所述异常的文件块对应的正确的文件块的序号及所述正确的文件块所属的文件的文件id,其中,所述正常的文件块所属的文件块组的序号估值为所述出现次数最多的序号估值;根据所述正确的文件块的序号及所述正确的文件块所属的文件的文件id,从第二类型磁盘中获得所述正确的文件块并将所述异常的文件块替换为所述正确的文件块。
[0151]
其中,正确的文件块为原本应放在所述异常的文件块所在的磁盘块的文件块。由于文件块按照序号排列进行分组,且每个文件块组存储到磁盘块组中时,该文件块组内各文件块在磁盘块组中也按照序号顺序存储到相应的磁盘块中。因此,本发明可以根据存储正常的文件块的磁盘块在磁盘块组中的位置以及存储异常的文件块的磁盘块在磁盘块组中的位置的位置关系,由正常的文件块的序号根据位置关系推导得出所述异常的文件块对应的正确的文件块的序号及所述正确的文件块所属的文件的文件id。
[0152]
具体的,根据正确的文件块的序号和所属的文件的文件id,可以在第二类型磁盘中获得正确的文件块之后,将异常的文件块替换为正确的文件块。
[0153]
具体的,本发明可以根据所述异常的文件块与正常的文件块在所述第一磁盘块组中的位置关系,确定所述异常的文件块对应的正确的文件块的序号及所述正确的文件块所属的文件的文件id,进而根据所述正确的文件块的序号及所述正确的文件块所属的文件的文件id,从第二类型磁盘中获得所述正确的文件块并将所述异常的文件块替换为所述正确的文件块。本发明可以将错误的数据修改为正确的数据,保证了数据的准确。
[0154]
本发明实施例提供的一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上述任一项所述的数据异常处理方法。
[0155]
本发明实施例提供的一种计算机设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述处理器执行程序时至少实现以下步骤:
[0156]
确定存储在第一磁盘块组中的各文件块的序号;
[0157]
根据所述文件块的序号和所述第一磁盘块组中包含的文件块的数量确定存储在所述第一磁盘块组中的各文件块所属的文件块组的序号估值;
[0158]
在确定的各序号估值中包括至少两个不同的序号估值时,确定所述第一磁盘块组中存在异常的文件块。
[0159]
所述一种数据异常处理装置包括处理器和存储器,上述文件块序号确定单元100、序号估值确定单元200和异常文件块确定单元300等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
[0160]
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来确定磁盘块组中异常的文件块。
[0161]
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。
[0162]
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述数据异常处理方法。
[0163]
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述数据异常处理方法。
[0164]
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现所述数据异常处理方法
[0165]
本文中的设备可以是服务器、pc、pad、手机等。
[0166]
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化所述数据异常处理方法。
[0167]
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0168]
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0169]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0170]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0171]
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
[0172]
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/
或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。存储器是计算机可读介质的示例。
[0173]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0174]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0175]
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0176]
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。