[发明专利]一种文件数据的校验方法、装置在审
申请号: | 201610113731.6 | 申请日: | 2016-02-29 |
公开(公告)号: | CN107133120A | 公开(公告)日: | 2017-09-05 |
发明(设计)人: | 吴冬政;董乘宇;朱家稷 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F11/10 | 分类号: | G06F11/10 |
代理公司: | 北京国昊天诚知识产权代理有限公司11315 | 代理人: | 许志勇,刘戈 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 文件 数据 校验 方法 装置 | ||
技术领域
本申请涉及数据处理的技术领域,具体地说,涉及一种文件数据的校验方法、装置。
背景技术
存储在磁盘上的数据,可能因为磁盘故障、操作系统故障、软件缺陷导致读出来的数据和写入的数据不一致,即数据完整性被破坏。因此存储系统需要对数据进行校验,通常的做法是使用校验码(checksum),一种常用的校验码算法是使用循环冗余校验算法(crc算法)生成数据对应的校验码。在存储系统的实践中,有一种常见的做法是以某个固定块大小为单位。
针对每个块生成一个对应的校验码,将文件里所有块对应的校验码单独存放在一个文件中,这种做法的优点是读写逻辑简单,缺点是读写一段数据都需要两次磁盘输入输出操作(磁盘IO),分别是数据文件和校验码文件。还有一种做法是把校验码嵌入到数据里,修改数据内容,每个块数据后边插入一个校验码(通常是4字节),即内嵌校验码方式,这种做法的优点是读写数据只需要一次磁盘输入输出操作,因为每块数据和对应的校验码存放在一起,缺点是读写的逻辑比较复杂,需要把用户的数据内容进行转换,分块插入校验码,相当于把数据文件和校验码文件合成一个文件。
内嵌校验码的数据,因为数据里内嵌有校验码,所以数据自身的完整性能够得到保证,但是不能校验数据是不是和其所在文件是对应的。举一些例子,某些操作系统文件系统有软件缺陷,导致两个不同的文件名指向了同一个底层的文件,还有一些人为的误操作,把两个文件名链接到同一个文件上了。
因此,数据内嵌校验码只能保证数据本身的完整性,不能保证数据和文件是否匹配。
发明内容
有鉴于此,本申请提供一种文件数据的校验方法、装置,可以解决现有的内嵌校验码的数据和文件不一致的问题。
为了解决上述技术问题,本申请第一方面提供一种文件数据的校验方法,包括:
根据待读取的文件的文件名信息,确定校验码初始值;
根据所述校验码初始值和所述待读取的文件中的数据块的数据内容,利用校验码生成算法计算得到所述数据块的校验码;
将所述计算得到的校验码与所述数据块中内嵌的校验码进行比较,若一致则确定所述待读文件和所述数据块是一致的。
其中,所述的方法还包括:
根据待写入的文件的文件名信息,确定校验码初始值;
根据所述校验码初始值和所述待写入的文件中的数据块的数据内容,利用校验码生成算法计算得到所述数据块的校验码;
将计算得到的所述数据块的校验码内嵌到所述数据块中。
其中,确定校验码初始值,包括:
利用散列算法,对所述文件名信息进行散列运算得到散列值,将所述散列值确定为所述文件名信息对应的文件中的数据块的校验码初始值。
其中,所述散列算法包括任一能够保证不同文件名信息产生的散列冲突的概率小于预设的散列冲突忽略阈值的散列算法。
其中,所述的方法还包括:
根据每个文件的元数据设置唯一的校验码初始值,并将所述校验码初始值添加到与其对应的文件的元数据中,每个文件的元数据中包括所述文件的文件名信息。
本发明提供一种文件数据的校验方法,包括:根据待写入的文件的文件名信息,确定校验码初始值;根据所述校验码初始值和所述待写入的文件中的数据块的数据内容,利用校验码生成算法计算得到所述数据块的校验码; 将计算得到的所述数据块的校验码内嵌到所述数据块中。
其中,确定校验码初始值,包括:利用散列算法,对所述文件名信息进行散列运算得到散列值,将所述散列值确定为所述文件名信息对应的文件中的数据块的校验码初始值。
其中,所述散列算法包括任一能够保证不同文件名信息产生的散列冲突的概率小于预设的散列冲突忽略阈值的散列算法。
其中,所述方法还包括:根据每个文件的元数据设置唯一的校验码初始值,并将所述校验码初始值添加到与其对应的文件的元数据中,每个文件的元数据中包括所述文件的文件名信息。
本发明还提供一种文件数据的校验装置,包括:
确定模块,用于根据待读取的文件的文件名信息,确定校验码初始值;
计算模块,用于根据所述校验码初始值和所述待读取的文件中的数据块的数据内容,利用校验码生成算法计算得到所述数据块的校验码;
比较模块,用于将所述计算得到的校验码与所述数据块中内嵌的校验码进行比较,若一致则确定所述待读文件和所述数据块是一致的。
其中,所述确定模块,还用于根据待写入的文件的文件名信息,确定校验码初始值;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610113731.6/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置