随机读写文件测试中的数据校验方法和装置制造方法及图纸

技术编号:16818761 阅读:32 留言:0更新日期:2017-12-16 12:03
本申请公开了一种随机读写文件测试中的数据校验方法和装置,包括:在分布式存储系统中以多个副本的方式保存随机读写文件的每个数据块;每个数据块的多个副本对应一个校验码集合;所述校验码集合包括至少两个整型数据,代表校验码的取值范围;随机选择需要写入数据的数据块,向所述数据块的多个副本写入数据并更新对应的校验码集合;当随机选择从所述数据块读取数据时,从所述数据块的一个副本读取数据并利用所述校验码集合对读取的数据进行校验。反映出数据块所保存数据的变化情况,能够在分布时存储系统的随机读写文件测试时对各个数据块的数据进行校验。

Method and device for data checking in random reading and writing test

The invention discloses a random read and write files in the test data checking method and device, including: in a distributed storage system with multiple copies of each data block stored in random read and write files; multiple copies of each data block corresponds to a checksum set; the checksum set comprises at least two integer data, the range of representative codes; randomly selected to write data in blocks of data, write data and update check code corresponding to the collection of multiple copies of the data block; when randomly selected data read from the data block, read data from a copy of the data block and use the check code set to verify the data read. It reflects the change of data saved by data blocks, and it can check data of all data blocks when storing random read and write files when distributing.

【技术实现步骤摘要】
随机读写文件测试中的数据校验方法和装置
本申请属于计算机
,具体地说,涉及一种随机读写文件测试中的数据校验方法和装置。
技术介绍
分布式存储系统中的随机读写文件兼具多副本、可随机读写的特性。如何在对分布式存储系统随机读写文件的测试中对数据进行校验是保证分布式存储系统随机读写文件数据正确性的关键技术。现有的数据校验技术方案,应用场景为仅追加类型文件(AppendOnlyFile)。对已写数据的校验码,根据需求存储在易失或者非易失存储介质中,对读到的数据进行校验码的计算,与已存储的相应校验码进行比对,若一致则认为校验成功,否则认为校验失败。现有的适用于仅追加类型文件的校验方案不可应用于随机读写文件,原因在于可随机读写文件中的任意位置由于可被复写,因此对应的校验码也会随时变化,分布式存储系统中写操作可能由于各种各样的原因导致写操作失败,那么随机读写文件数据块的不同副本的数据可能会不一致,会存在多种可能性。对分布式存储系统的随机读写文件进行测试时做数据校验的目的是:为了验证数据的正确性。如果采用现有的校验方式对随机读写文件进行校验,读取的数据与最后一次写入的数据对应的校验码不一致,就会认为数据错误。但随机读写文件的数据校验,对写入失败的副本来说,读取到曾经写入过的值仍然认为其数据是正确的,只有读到没有写入过的值时,会认为数据的正确性出现了问题。因此用现有的校验方法不能准确验证随机读写文件数据的正确性。
技术实现思路
有鉴于此,本申请提供了一种随机读写文件测试中的数据校验方法和装置,以解决现有技术中在对分布式存储系统的随机读写文件进行测试时,无法进行数据校验的技术问题。为了解决上述技术问题,本申请公开了一种随机读写文件测试中的数据校验方法,包括:在分布式存储系统中以多个副本的方式保存随机读写文件的每个数据块;每个数据块的多个副本对应一个校验码集合;所述校验码集合包括至少两个整型数据,代表校验码的取值范围;随机选择需要写入数据的数据块,向所述数据块的多个副本写入数据并更新对应的校验码集合;当随机选择从所述数据块读取数据时,从所述数据块的一个副本读取数据并利用所述校验码集合对读取的数据进行校验。为了解决上述技术问题,本申请还公开了一种随机读写文件测试中的数据校验装置,包括:存储模块,用于在分布式存储系统中以多个副本的方式保存随机读写文件的每个数据块;每个数据块的多个副本对应一个校验码集合;所述校验码集合包括至少两个整型数据,代表校验码的取值范围;写入模块,应用随机选择需要写入数据的数据块,向所述数据块的多个副本写入数据并更新对应的校验码集合;校验模块,应用当随机选择从所述数据块读取数据时,从所述数据块的一个副本读取数据并利用所述校验码集合对读取的数据进行校验。与现有技术相比,本申请可以获得包括以下技术效果:通过能代表一个取值范围的校验码集合来反映随机读写文件的数据块中可能会读取到数据,并将写入数据块的数据在校验码集合进行同步,从而反映出数据块所保存数据的变化情况,能够在分布时存储系统的随机读写文件测试时对各个数据块的数据进行校验。当然,实施本申请的任一产品必不一定需要同时达到以上所述的所有技术效果。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1是本申请实施例的分布式存储系统的架构示意图;图2是本申请实施例的一种随机读写文件测试中的数据校验方法的流程图;图3是本申请实施例的数据块与校验码集合的对应关系示意图;图4是本申请实施例的数据写入时的流程图;图5是本申请实施例的数据写入成功时的校验码更新示意图;图6是本申请实施例的数据写入时的流程图;图7是本申请实施例的数据写入失败时的校验码更新示意图;图8是本申请实施例的数据校验时的流程图;图9是本申请实施例的数据读取成功时的校验码更新示意图;图10是本申请实施例的一种数据读写装置的框图。具体实施方式以下将配合附图及实施例来详细说明本申请的实施方式,藉此对本申请如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。本申请实施例应用于分布式存储系统,分布式存储系统的拓扑结构如图1所示,总体上包括元数据服务器(MetaServer)、文件服务器集群(FileServer)、支持高并发访问的客户端(Client)。系统可以通过扩展不断增加文件服务器,以应对后期系统规模扩展。通常,以Linux系统为底层服务器,运行MetaServer和FileServer进程;通过TCP/IP协议进行元数据服务器、文件服务器集群和客户端三者之间的交互;多个不同的FileServer进程以FileServerID和TCP端口进行区分可以同时运行在一台Linux系统上,每一个文件服务器管理一个存储空间。而元数据服务器和文件服务器可以运行在同一Linux系统上,但考虑到分布式存储系统的性能,元数据服务器和文件服务器通常分别运行于不同的Linux系统。元数据服务器和文件服务器集群保持着心跳连接,以监控和管理各文件服务器集群的状态;元数据服务器还提供管理监控接口,由管理机对分布式存储系统进行管理监控;客户端接口提供客户端访问分布式存储系统的功能,客户端可直接访问元数据服务器取得文件属性等操作,或者通过元数据服务器访问文件服务器集群进行文件的读写操作。来自客户端的针对数据的读取操作和写入操作,首先由元数据服务器查询到对应的文件路径和文件标识;客户端接收到元数据服务器返回的文件路径和文件标识后,再将读取操作和写入操作转移到与文件路径对应的文件服务器集群,由该文件服务器集群的文件处理接口接收并执行读取操作指令或写入操作指令。该分布式存储系统可以提供随机读写接口,例如openRandomAccessFile,其返回RandomAccessFile随机读写类。当客户端调用随机读写接口时,客户端根据输入的文件名请求相应的随机读写文件的随机读写流,之后,客户端得到文件随机读写操作句柄,便可以通过指针操作对随机读写文件进行随机读写。随机读写文件保存在文件服务器集群中,该文件服务器集群可包括一台或多台存储设备。而对于一个随机读写文件来说,该文件的不同部分也可能被存储在一台或多台存储设备的磁盘中。在对文件服务器集群的随机读写文件进行测试时,通过随机读写文件的不同部分所对应的校验码集合对数据进行校验。本申请实施例中的分布式存储系统,随机读写文件的数据长度是一个数据块长度的整数倍,例如,数据块长度为4KB。在随机读写时,读写的数据位移能被该数据块长度整除,因此,可以理解为一个随机读写文件被以数据块为最小单位分成了若干数据块。而每个数据块在分布式存储系统中同时保存有多个副本。对于该随机读写文件的任意一个数据块,同一时刻读写互斥。若一个数据块在被写,就不会被读,反之亦然。但同一个文件的多个互不相交的数据块可存在同时读或写。对于一个随机读写文件,可选择多个互不相交的范围(Range)同时读或写,每个范围包含一个或多个连续的数据块。当某一个范围的读写完成后,另外随机选择一个范围(不与正在读写的其它范围相交),开始下一次的读或写。这样,保证随机读写文件在任意时刻都有在范围上互不相交、在时间上互本文档来自技高网...
随机读写文件测试中的数据校验方法和装置

【技术保护点】
一种随机读写文件测试中的数据校验方法,其特征在于,包括:在分布式存储系统中以多个副本的方式保存随机读写文件的每个数据块;每个数据块的多个副本对应一个校验码集合;所述校验码集合包括至少两个整型数据,代表校验码的取值范围;随机选择需要写入数据的数据块,向所述数据块的多个副本写入数据并更新对应的校验码集合;当随机选择从所述数据块读取数据时,从所述数据块的一个副本读取数据并利用所述校验码集合对读取的数据进行校验。

【技术特征摘要】
1.一种随机读写文件测试中的数据校验方法,其特征在于,包括:在分布式存储系统中以多个副本的方式保存随机读写文件的每个数据块;每个数据块的多个副本对应一个校验码集合;所述校验码集合包括至少两个整型数据,代表校验码的取值范围;随机选择需要写入数据的数据块,向所述数据块的多个副本写入数据并更新对应的校验码集合;当随机选择从所述数据块读取数据时,从所述数据块的一个副本读取数据并利用所述校验码集合对读取的数据进行校验。2.根据权利要求1所述的方法,其特征在于,所述校验码集合包括两个整型数据并代表一个连续的取值范围,所述两个整型数据分别为述取值范围的最小值和最大值;所述校验码集合包括两个以上整型数据并代表一个离散的取值范围,所述两个以上整型数据分别为所述取值范围内的离散值。3.根据权利要求1或2所述的方法,其特征在于,所述随机选择需要写入数据的数据块,向所述数据块的多个副本写入数据并更新对应的校验码集合包括:从随机读写文件中随机选择需要写入数据的数据块,在向所述数据块对应的多个副本执行写入操作之前,将所述校验码集合的最大值与预设步长之和确定为本次写入操作的写入值,并将所述校验码集合的最大值更新为所述写入值;对所述数据块对应的多个副本执行本次写入操作并判定是否写入成功;当判定为写入成功时,将所述校验码集合的最小值更新为所述写入值;当判定为写入失败时,所述校验码集合保持不变。4.根据权利要求3所述的方法,其特征在于,当所述校验码集合包括两个整型数据时,所述预设步长等于1,当所述校验码集合包括两个以上整型数据时,所述预设步长大于或等于1。5.根据权利要求3所述的方法,其特征在于,对所述数据块对应的多个副本执行本次写入操作包括:按照一个整型数据所占用的存储空间将每个副本细分为多个子块,向每个子块中写入所述写入值。6.根据权利要求5所述的方法,其特征在于,对所述数据块对应的多个副本执行本次写入操作还包括:判断一个副本的多个子块中成功写入所述写入值的比例是否大于或等于第一预设门限;当所述多个子块中成功写入所述写入值的比例大于或等于第一预设门限时,返回所述副本写入成功状态消息。7.根据权利要求3所述的方法,其特征在于,判定是否写入成功包括:判断所述多个副本中返回写入成功状态消息的副本数量是否大于或等于第二预设门限;当返回写入成功状态消息的副本数量大于或等于第二预设门限时,判定写入成功;当返回写入成功状态消息的副本数量小于第二预设门限时,判定写入失败。8.根据权利要求1所述的方法,其特征在于,当随机选择从所述数据块读取数据时,从所述数据块的一个副本读取数据并利用所述校验码集合对读取的数据进行校验包括:从所述数据块的一个副本读取数据;判断所述读取的数据是否属于所述校验码集合的取值范围;当所述读取的数据属于所述校验码集合的取值范围之内时,判定所述读取的数据校验通过,并将所述校验码集合的最小值更新为所述读取的数据;当所述读取的数据属于所述校验码集合的取值范围之外时,判定所述读取的数据校验未通过,所述校验码集合保持不变。9.根据权利要求1所述的方法,其特征在于,从所述数据块的一个副本读取数据包括:按照一个整型数据所占用的存储空间将所述一个副本细分为多个子块,分别读取全部子块中已写入的整型数据;判断从所述全部子块中分别读取的整型数据是否相同;当从所述全部子块中分别读取的整型数据相同时,判定本次读取成功;当从所述全部子块中分别读取的整型数据不相同时,判定本次读取失败并且校验未通过。10.根据权利要求1所述的方法,其特征在于,所述数据块的存储空间与所述分布式存储系统磁盘的一个扇区的大小相同。11.一种随机读写文件测试中的...

【专利技术属性】
技术研发人员:张彪田磊磊闫卫斌
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1