一种齐整数据块存储、访问和校验方法技术

技术编号:24251412 阅读:51 留言:0更新日期:2020-05-22 23:30
本发明专利技术设计一种齐整数据块存储、访问和校验方法,涉及计算机技术领域。该方法具体为:设计以目录名和文件名作为地址的目录结构,按序写入数据块并建立校验列表,根据序号实现数据块的快速读取。本发明专利技术通过将数据块序号转换成以目录名和文件名构成的地址,省去遍历文件系统和数据文件的开销,提高了读写效率,降低了数据间的位置耦合性,同时有利于对数据是否篡改的校验。

A method of storing, accessing and verifying data block

【技术实现步骤摘要】
一种齐整数据块存储、访问和校验方法
本专利技术涉及计算机
,尤其涉及一种齐整数据块存储、访问和校验方法。
技术介绍
在计算机应用中,信息存储通常以文件形式写入持久存储设备(如:硬盘、光盘等)中,访问时再通过读取持久存储设备中的文件来完成。虽然,随着技术的进步,这些持久存储设备的访问速度越来越快,但在应用中IO的开销依然占比较高。对于一些海量、高频、碎片化的数据访问场景,以文件方式读写数据显得非常吃力,这些时候通常都是利用数据库来完成对这些数据访问的优化。而在一些去中心化的应用场景中,数据没有集中的数据库来存放,文件存储是唯一的方式,这个时候如何提高访问的效率就变得非常重要。同时,在去中心化应用场景下,文件一般都只有写入和读取两种操作,不允许修改和删除操作,验证已经写入的数据是否被修改也是设计这些应用的时候要考虑的问题。
技术实现思路
有鉴于此,本专利技术在于设计一种齐整数据块存储、访问和校验方法。实现对海量顺序的大小相等数据块以文件方式高效地存储和访问,并提供机制对数据进行校验。本专利技术通过以下技术方案实现:一种齐整数据块存储、访问和校验方法,该方法包括如下步骤:(1)设计以目录名和文件名作为地址的目录结构;(2)按序写入数据块并建立校验列表;(3)根据序号实现数据块的快速读取。进一步的,步骤1中,目录结构的设计综合考虑数据块大小、文件大小、目录中文件容量,文件中块容量为16^k(16的k次方,k为大于0的整数),目录中文件数为16^n(16的n次方,n为大于0的整数),上级目录中子目录数为16^m(16的m次方,m为大于0的整数),文件名以十六进制字符串来表示,由低到高分别为n位十六进制字符串和多个m位十六进制字符串,m的个数和目录的级数一致。进一步的,步骤2中,数据块写入之前,需要获得整个存储结构中的最新地址和序号,新的数据块写入这个最新地址,并将序号自动加1,代表数据块地址,并返回给数据块写入调用者。进一步的,步骤2中,当文件中块容量达到设计的最大值(16^k),则创建新的文件以存储新的数据块,同时对容量已满的文件做摘要,存入目录下的校验列表文件中。进一步的,步骤2中,当容纳文件的目录中的文件数达到设计的最大值(16^n),则新建同级子目录以存储新的文件,同时对容量已满的目录中的校验列表文件做摘要,存入上级目录下的校验列表文件中。进一步的,步骤2中,当容纳子目录的上级目录数达到设计的最大值(16^m),则新建同级子目录以存储新的下级目录,同时对容量已满的目录中的校验列表文件做摘要,存入上级目录下的校验列表文件中。进一步的,步骤3中,当读取指定序号的数据块时,首先将序号转换为文件名长度的十六进制字符串,高位不足补零,使用这个字符串就可以直接解析出完整的路径信息以及自定数据块在文件中的位置,从而快速读取数据块中的信息。本专利技术的有益效果是:通过将数据块序号转换成以目录名和文件名构成的地址,省去遍历文件系统和数据文件的开销,也不必在其他存储系统记录数据块对应的文件名,就可以利用序号直达存储数据块的数据文件以及数据块在文件中的具体存储位置,提高了读写效率;同时由于数据块位置只与序号相关,降低了数据间的位置耦合性,有利于数据的备份、分发、以及集群存储设计等;整个存储结构中的校验列表通过级联方式,构造出一个类似默克尔树的校验机制,非常有利于的对数据是否篡改的校验。附图说明图1为本专利技术一种齐整数据块存储、访问和校验方法的流程图。图2为本专利技术一种齐整数据块存储、访问和校验方法的存储结构示例图。具体实施方式以下通过特定的具体实例说明本专利技术的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本专利技术的其他优点与功效。本专利技术还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本专利技术的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本专利技术的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本专利技术的限制;为了更好地说明本专利技术的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。本专利技术在于设计一种齐整数据块存储、访问和校验方法。实现对海量顺序的大小相等数据块以文件方式高效地存储和访问,并提供机制对数据进行校验。其具体的实施方案如下:(1)设计以目录名和文件名作为地址的目录结构目录结构的设计综合考虑数据块大小、文件大小、目录中文件容量,文件中块容量为16^k(16的k次方,k为大于0的整数),目录中文件数为16^n(16的n次方,n为大于0的整数),上级目录中子目录数为16^m(16的m次方,m为大于0的整数),文件名以十六进制字符串来表示,由低到高分别为n位十六进制字符串和多个m位十六进制字符串,m的个数和目录的级数一致。如附图2所示:其中有3级目录,ROOT根目录下为一级目录,一级目录下为二级目录,二级目录下的文件为三级,目录名为3位,每级目录下可以容纳16^3=4096个子目录或文件,即根目录下最多可以有4096个一级目录,每个一级目录下做多可以有4096个二级目录,每个二级目录下最多可以有4096个数据文件。而数据文件中块容量的设计,首先要综合考虑操作系统限制、数据移动的方便程度,来确定文件总的大小,然后,根据文件大小、数据块大小确定一个和16^k接近的方案,从而确定出k的大小。(2)按序写入数据块并建立校验列表数据块写入之前,需要获得整个存储结构中的最新地址和序号,新的数据块写入这个最新地址,并将序号自动加1,代表数据块地址,并返回给数据块写入调用者。当文件中块容量达到设计的最大值(16^k),则创建新的文件以存储新的数据块,同时对容量已满的文件做摘要,存入目录下的校验列表文件中。当容纳文件的目录中的文件数达到设计的最大值(16^n),则新建同级子目录以存储新的文件,同时对容量已满的目录中的校验列表文件做摘要,存入上级目录下的校验列表文件中。当容纳子目录的上级目录数达到设计的最大值(16^m),则新建同级子目录以存储新的下级目录,同时对容量已满的目录中的校验列表文件做摘要,存入上级目录下的校验列表文件中。(3)根据序号实现数据块的快速读取当读取指定序号的数据块时,首先将序号转换为文件名长度的十六进制字符串,高位不足补零,使用这个字符串就可以直接解析出完整的路径信息以及自定数据块在文件中的位置,从而快速读取数据块中的信息。比如:附图2所示的目录结构,假设文件数据块容量为16^4=65536,如果要读取序号为10,000,000,000的数据块中的数据时,10,000,000,000除以65536商152,587余58368,1本文档来自技高网...

【技术保护点】
1.一种齐整数据块存储、访问和校验方法,其特征在于,该方法包括如下步骤:/n(1)设计以目录名和文件名作为地址的目录结构;/n(2)按序写入数据块并建立校验列表;/n(3)根据序号实现数据块的快速读取。/n

【技术特征摘要】
1.一种齐整数据块存储、访问和校验方法,其特征在于,该方法包括如下步骤:
(1)设计以目录名和文件名作为地址的目录结构;
(2)按序写入数据块并建立校验列表;
(3)根据序号实现数据块的快速读取。


2.根据权利要求1所述齐整数据块存储、访问和校验方法,其特征在于,步骤1中,目录结构的设计综合考虑数据块大小、文件大小、目录中文件容量,文件中块容量为16^k(16的k次方,k为大于0的整数),目录中文件数为16^n(16的n次方,n为大于0的整数),上级目录中子目录数为16^m(16的m次方,m为大于0的整数),文件名以十六进制字符串来表示,由低到高分别为n位十六进制字符串和多个m位十六进制字符串,m的个数和目录的级数一致。


3.根据权利要求1所述齐整数据块存储、访问和校验方法,其特征在于,步骤2中,数据块写入之前,需要获得整个存储结构中的最新地址和序号,新的数据块写入这个最新地址,并将序号自动加1,代表数据块地址,并返回给数据块写入调用者。


4.根据权利要求1所述齐整数据块存储、访问和...

【专利技术属性】
技术研发人员:朱建
申请(专利权)人:契链科技深圳有限公司
类型:发明
国别省市:广东;44

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

1