CN108897698A - 一种文件数据块寻址方法、系统及设备和存储介质 - Google Patents
一种文件数据块寻址方法、系统及设备和存储介质 Download PDFInfo
- Publication number
- CN108897698A CN108897698A CN201810697847.8A CN201810697847A CN108897698A CN 108897698 A CN108897698 A CN 108897698A CN 201810697847 A CN201810697847 A CN 201810697847A CN 108897698 A CN108897698 A CN 108897698A
- Authority
- CN
- China
- Prior art keywords
- file
- block number
- shu
- lbn
- pointer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
Abstract
本申请公开了一种文件数据块寻址方法、系统及设备和计算机可读存储介质,该方法包括:获取待操作文件的文件块号,并判断所述文件块号是否在预设范围内;若是,则根据所述文件块号对应的指针通过直接寻址的方式确定所述待操作文件对应的磁盘逻辑块号;若否,则获取目标指针,并根据所述目标指针指向的基树和所述文件块号确定所述待操作文件对应的磁盘逻辑块号;其中,所述基树为存储文件的磁盘逻辑块号的基树。本申请提供的文件数据块寻址方法,采用直接映射加基树映射,将文件块号映射到磁盘逻辑块号。通过文件块号预设范围的直接索引,小文件通过两次访问磁盘就能完成磁盘请求,对稀疏文件及大文件采用基树映射,有效降低了索引块的磁盘占用。
Description
技术领域
本申请涉及存储技术领域,更具体地说,涉及一种文件数据块寻址方法、系统及设备和一种计算机可读存储介质。
背景技术
用户数据在文件系统中以文件的方式进行存储,文件由文件数据和文件元数据组成,文件数据就是用户存储的数据内容,元数据是描述文件数据的数据,即如何识别找到该文件数据,如何记录文件数据的变化等。每个非空的普通文件都由一组数据块组成。这些块由文件内的相对位置(即文件块号)来标识,或者磁盘分区内的位置(即磁盘逻辑块号)来标识。为了从文件内的偏移量导出相应数据块的磁盘逻辑块号,需要从偏移量导出文件块号,即在偏移量处的字符所在的块索引,再将文件块号转换为相应的磁盘逻辑块号。
因此,文件系统必须提供一种方法,建立每个文件块号与相应逻辑块号之间的关系。现有技术中采用分级索引映射,如图1所示,索引节点的i_block数组将文件块号的0-11进行直接映射,文件块号大于11的采取分级映射。
使用分级索引映射操作简单,应用于小文件时性能优异,但映射间接块所占的磁盘空间较大,对于大文件及稀疏文件性能较差。
因此,如何减少文件块号与磁盘逻辑块号映射所占的磁盘空间是本领域技术人员需要解决的问题。
发明内容
本申请的目的在于提供一种文件数据块寻址方法、系统及设备和一种计算机可读存储介质,减少了文件块号与磁盘逻辑块号映射所占的磁盘空间。
为实现上述目的,本申请提供了一种文件数据块寻址方法,包括:
获取待操作文件的文件块号,并判断所述文件块号是否在预设范围内;
若是,则根据所述文件块号对应的指针通过直接寻址的方式确定所述待操作文件对应的磁盘逻辑块号;
若否,则获取目标指针,并根据所述目标指针指向的基树和所述文件块号确定所述待操作文件对应的磁盘逻辑块号;
其中,所述基树为存储文件的磁盘逻辑块号的基树。
其中,获取待操作文件的文件块号,包括:
获取文件操作请求;其中,所述文件操作请求至少包括所述待操作文件的文件块号;
相应的,所述确定所述待操作文件对应的磁盘逻辑块号之后,还包括:
根据所述文件操作请求对所述磁盘逻辑块号对应的数据块执行相应的操作,并返回操作结果。
其中,根据所述文件操作请求对所述磁盘逻辑块号对应的数据块执行相应的操作,并返回操作结果之后,还包括:
根据所述操作结果更新所述基树。
其中,所述基树的根节点的数据结构至少包括所述基树的当前深度和根节点指针,所述根节点指针指向所述基树的第一层节点。
其中,所述基树除所述根节点外的节点的数据结构至少包括指针数组和所述指针数组中非空指针的计数变量。
其中,根据所述目标指针指向的基树和所述文件块号确定所述待操作文件对应的磁盘逻辑块号,包括:
根据所述指针数组中的指针数量将所述文件块号划分为N个文件块号子部分;所述文件块号中由低位至高位的第N个所述文件块号子部分对应所述基树由底层至高层的第N层;其中,N为正整数;
根据所述N个文件块号子部分从所述基树的根节点向孩子节点方向确定所述待操作文件对应的磁盘逻辑块号。
其中,若所述指针数组中的指针数量为64,则根据所述指针数组中的指针数量将所述文件块号划分为N个文件块号子部分,包括:
将所述文件块号由低位至高位每6位划分为一个所述文件块号子部分。
为实现上述目的,本申请提供了一种文件数据块寻址系统,包括:
获取模块,用于获取待操作文件的文件块号,并判断所述文件块号是否在预设范围内;若是,则启动第一确定模块的工作流程;若否,则启动第二确定模块的工作流程;
所述第一确定模块,用于根据所述文件块号对应的指针通过直接寻址的方式确定所述待操作文件对应的磁盘逻辑块号;
所述第二确定模块,用于获取目标指针,并根据所述目标指针指向的基树和所述文件块号确定所述待操作文件对应的磁盘逻辑块号;其中,所述基树为存储文件的磁盘逻辑块号的基树。
为实现上述目的,本申请提供了一种文件数据块寻址设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述文件数据块寻址方法的步骤。
为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述文件数据块寻址方法的步骤。
通过以上方案可知,本申请提供的一种文件数据块寻址方法,包括:获取待操作文件的文件块号,并判断所述文件块号是否在预设范围内;若是,则根据所述文件块号对应的指针通过直接寻址的方式确定所述待操作文件对应的磁盘逻辑块号;若否,则获取目标指针,并根据所述目标指针指向的基树和所述文件块号确定所述待操作文件对应的磁盘逻辑块号;其中,所述基树为存储文件的磁盘逻辑块号的基树。
本申请提供的文件数据块寻址方法,当文件块号在预设范围内时采用直接映射方式,当文件块号大于预设范围时采用基树映射,即采用直接映射加基树映射,将文件块号映射到磁盘逻辑块号。通过文件块号预设范围的直接索引,小文件通过两次访问磁盘就能完成磁盘请求,对稀疏文件及大文件采用基树映射,由于基树中每个叶子节点都可以存储磁盘逻辑块号的指针,因磁盘逻辑块号随基树的深度的增加以指数的形式增加,与现有技术中分级索引的方式相比,在存储相同数量的磁盘逻辑块号时有效降低了索引块的磁盘占用。寻址时逐层寻址,与b+树等的区间映射的方式相比,降低了复杂性,减少了磁盘操作次数。本申请还公开了一种文件数据块寻址系统及设备和一种计算机可读存储介质,同样能实现上述技术效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中索引映射的结构图;
图2为本申请实施例公开的一种文件数据块寻址方法的流程图;
图3为本申请实施例公开的另一种文件数据块寻址方法的流程图;
图4为本申请实施例公开的一种映射关系的结构图;
图5为本申请实施例公开的一种文件数据块寻址系统的结构图;
图6为本申请实施例公开的一种文件数据块寻址设备的结构图;
图7为本申请实施例公开的另一种文件数据块寻址设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例公开了一种文件数据块寻址方法,减少了文件块号与磁盘逻辑块号映射所占的磁盘空间。
参见图2,本申请实施例公开的一种文件数据块寻址方法的流程图,如图2所示,包括:
S201:获取待操作文件的文件块号,并判断所述文件块号是否在预设范围内;若是,则进入S202;若否,则进入S203;
在具体实施中,在客户端请求文件操作时,首先要读取磁盘获取文件的元数据索引节点及i_block数据块指针。具体的,获取文件操作请求,该文件操作请求至少包括待操作文件的文件块号,并判断文件操作请求中的文件块号是否在预设范围内;若是,则采用直接寻址的方式;若否,则采用基树寻址的方式。也就是说,当请求操作的文件为小文件时,采用直接寻址的方式,使得通过两次访问磁盘就能完成磁盘请求,当请求操作的文件为稀疏文件及大文件时采用基树寻址的方式。当后续步骤确定了待操作文件对应的磁盘逻辑块号时,根据文件操作请求对磁盘逻辑块号对应的数据块执行相应的操作,并返回操作结果。可以理解的是,当上述操作结果更改了i_block数据块指针时,需要根据该操作节点更新i_block数据块指针。
S202:根据所述文件块号对应的指针通过直接寻址的方式确定所述待操作文件对应的磁盘逻辑块号;
在具体实施中,当文件块号在预设范围内时,采用直接寻址的方式,即与现有技术直接寻址的方式相同,在此不再赘述。
S203:获取目标指针,并根据所述目标指针指向的基树和所述文件块号确定所述待操作文件对应的磁盘逻辑块号;其中,所述基树为存储文件的磁盘逻辑块号的基树。
在具体实施中,当文件块号超过预设范围时,通过获取目标指针获取指向存储文件磁盘逻辑块号的基树,以便根据该基树和文件块号,采用基树寻址的方式确定磁盘逻辑号。
需要说明的是,基树的根节点的数据结构至少包括所述基树的当前深度和根节点指针,当然还可以包括其他信息,在此不进行具体限定。根节点指针指向基树的第一层节点,基树除根节点外的节点的数据结构至少包括指针数组和所述指针数组中非空指针的计数变量,当然还可以包括其他信息,在此不进行具体限定。
基于上述基树结构,本步骤中确定待操作文件对应的磁盘逻辑块号的实施方式具体为:
S1:根据所述指针数组中的指针数量将所述文件块号划分为N个文件块号子部分;所述文件块号中由低位至高位的第N个所述文件块号子部分对应所述基树由底层至高层的第N层;其中,N为正整数;
具体的,若指针数量为64(26),则将文件块号从低位向高位每6位划分为一个文件块号子部分,当然,此处只是一个简单实例,用户可以根据实际的磁盘逻辑块号的数量确定每个指针数组中的指针数量,进而确定文件块号的划分方式,在此不作具体限定。需要说明的是,文件块号中由低位至高位的第N个文件块号子部分对应基树由底层至高层的第N层,在上述例子中,若基树的深度为1,则文件块号的最低6位对应基树的第一层,即根节点指针指向的层,若基树的深度为2,文件块号的最低6位对应基树最底层,第7位至第12位对应基树的最高层,依次类推。
S2:根据所述N个文件块号子部分从所述基树的根节点向孩子节点方向确定所述待操作文件对应的磁盘逻辑块号。
本申请实施例提供的文件数据块寻址方法,当文件块号在预设范围内时采用直接映射方式,当文件块号大于预设范围时采用基树映射,即采用直接映射加基树映射,将文件块号映射到磁盘逻辑块号。通过文件块号预设范围的直接索引,小文件通过两次访问磁盘就能完成磁盘请求,对稀疏文件及大文件采用基树映射,由于基树中每个叶子节点都可以存储磁盘逻辑块号的指针,因磁盘逻辑块号随基树的深度的增加以指数的形式增加,与现有技术中分级索引的方式相比,在存储相同数量的磁盘逻辑块号时有效降低了索引块的磁盘占用。寻址时逐层寻址,与b+树等的区间映射的方式相比,降低了复杂性,减少了磁盘操作次数。
本申请实施例公开了一种文件数据块寻址方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
参见图3,本申请实施例提供的另一种文件数据块寻址方法的流程图,如图2所示,包括:
S301:获取待操作文件的文件块号,并判断所述文件块号是否小于11;若是,则进入S302;若否,则进入S303;
S302:根据所述文件块号对应的指针通过直接寻址的方式确定所述待操作文件对应的磁盘逻辑块号;
S331:获取目标指针指向的基树,所述基树的根节点的数据结构至少包括所述基树的当前深度和根节点指针,所述根节点指针指向所述基树的第一层节点;所述基树除所述根节点外的节点的数据结构至少包括指针数组和所述指针数组中非空指针的计数变量,所述指针数组中的指针数量为64;
S332:将所述文件块号由低位至高位每6位划分为一个文件块号子部分;所述文件块号中由低位至高位的第N个所述文件块号子部分对应所述基树由底层至高层的第N层;其中,N为正整数;
S333:根据所述N个文件块号子部分从所述基树的根节点向孩子节点方向确定所述待操作文件对应的磁盘逻辑块号。
在具体实施中,若所述指针数组中的指针数量为64,则将所述文件块号由低位至高位每6位划分为一个所述文件块号子部分。如图4所示,基树的每个节点可以有多到64个指针指向其他节点或文件块数据。底层节点存放指向文件块数据的指针(即叶子节点)。而上层的节点存放指向其他节点(孩子节点)。每个节点由radix_tree_node数据结构表示,包括两个字段:slots是包括64个指针的数组,count是记录节点中非空指针数量的计数器。基树的根节点由radix_tree_root数据结构表示,包括两个字段:height表示树的当前深度(不包括叶子结点的层数),rnode指向与树中第一层节点相应的数据结构radix_tree_node。
在上述基树中,块索引要考虑的字段的数量依赖于基树的深度。如果基树的深度为1,就只能表示0-63范围的索引,因此块索引的低6位被解释成slots数组的下标,每个下标对应第一层的一个节点。如果基树的深度是2,就可以表示从0-4095范围的索引,块索引的低12位分成两个6位的字段,低位的字段用于表示最低层节点数组的下标,而高位的字段用于表示最高层节点数组的下标。依此类推,如果深度等于6,页索引的最高两位表示第一层节点数组的下标,接下来的6位表示第二层节点数组的下标,这样一直到最低6位,它们表示第六层节点数组的下标。如果基树的最大索引小于相应增加的页的索引,那么相应地增加树的深度;基树的中间节点依赖于页索引的值。图4中标明了当文件块号为12时的具体寻址方式。
下面对本申请实施例提供的一种文件数据块寻址系统进行介绍,下文描述的一种文件数据块寻址系统与上文描述的一种文件数据块寻址方法可以相互参照。
参见图5,本申请实施例提供的一种文件数据块寻址系统的结构图,如图5所示,包括:
获取模块501,用于获取待操作文件的文件块号,并判断所述文件块号是否在预设范围内;若是,则启动第一确定模块的工作流程;若否,则启动第二确定模块的工作流程;
所述第一确定模块502,用于根据所述文件块号对应的指针通过直接寻址的方式确定所述待操作文件对应的磁盘逻辑块号;
所述第二确定模块503,用于获取目标指针,并根据所述目标指针指向的基树和所述文件块号确定所述待操作文件对应的磁盘逻辑块号;其中,所述基树为存储文件的磁盘逻辑块号的基树。
本申请实施例提供的文件数据块寻址系统,当文件块号在预设范围内时采用直接映射方式,当文件块号大于预设范围时采用基树映射,即采用直接映射加基树映射,将文件块号映射到磁盘逻辑块号。通过文件块号预设范围的直接索引,小文件通过两次访问磁盘就能完成磁盘请求,对稀疏文件及大文件采用基树映射,由于基树中每个叶子节点都可以存储磁盘逻辑块号的指针,因磁盘逻辑块号随基树的深度的增加以指数的形式增加,与现有技术中分级索引的方式相比,在存储相同数量的磁盘逻辑块号时有效降低了索引块的磁盘占用。寻址时逐层寻址,与b+树等的区间映射的方式相比,降低了复杂性,减少了磁盘操作次数。
在上述实施例的基础上,作为一种优选实施方式,所述获取模块501包括:
获取单元,用于获取文件操作请求;其中,所述文件操作请求至少包括所述待操作文件的文件块号;
判断单元,用于判断所述文件块号是否在预设范围内;若是,则启动第一确定模块的工作流程;若否,则启动第二确定模块的工作流程;
相应的,还包括:
执行模块,用于根据所述文件操作请求对所述磁盘逻辑块号对应的数据块执行相应的操作,并返回操作结果。
在上述实施例的基础上,作为一种优选实施方式,还包括:
更新模块,用于根据所述操作结果更新所述基树。
在上述实施例的基础上,作为一种优选实施方式,所述基树的根节点的数据结构至少包括所述基树的当前深度和根节点指针,所述根节点指针指向所述基树的第一层节点。
在上述实施例的基础上,作为一种优选实施方式,所述基树除所述根节点外的节点的数据结构至少包括指针数组和所述指针数组中非空指针的计数变量。
在上述实施例的基础上,作为一种优选实施方式,所述第二确定模块503包括:
划分单元,用于获取目标指针,并根据所述目标指针指向的基树的指针数组中的指针数量将所述文件块号划分为N个文件块号子部分;所述文件块号中由低位至高位的第N个所述文件块号子部分对应所述基树由底层至高层的第N层;其中,N为正整数;
确定单元,用于根据所述N个文件块号子部分从所述基树的根节点向孩子节点方向确定所述待操作文件对应的磁盘逻辑块号。
在上述实施例的基础上,作为一种优选实施方式,若所述指针数组中的指针数量为64,则所述划分单元具体为将所述文件块号由低位至高位每6位划分为一个所述文件块号子部分的单元。
本申请还提供了一种文件数据块寻址设备,参见图6,本申请实施例提供的一种文件数据块寻址设备的结构图,如图6所示,包括:
存储器100,用于存储计算机程序;
处理器200,用于执行所述计算机程序时可以实现上述任一实施例所提供文件数据块寻址方法的步骤。
具体的,存储器100包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机可读指令,该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。处理器200为文件数据块寻址设备提供计算和控制能力,执行所述存储器100中保存的计算机程序时,可以实现上述任一实施例所提供文件数据块寻址方法的步骤。
本申请实施例提供的文件数据块寻址设备,当文件块号在预设范围内时采用直接映射方式,当文件块号大于预设范围时采用基树映射,即采用直接映射加基树映射,将文件块号映射到磁盘逻辑块号。通过文件块号预设范围的直接索引,小文件通过两次访问磁盘就能完成磁盘请求,对稀疏文件及大文件采用基树映射,由于基树中每个叶子节点都可以存储磁盘逻辑块号的指针,因磁盘逻辑块号随基树的深度的增加以指数的形式增加,与现有技术中分级索引的方式相比,在存储相同数量的磁盘逻辑块号时有效降低了索引块的磁盘占用。寻址时逐层寻址,与b+树等的区间映射的方式相比,降低了复杂性,减少了磁盘操作次数。
在上述实施例的基础上,作为优选实施方式,参见图7,所述文件数据块寻址设备还包括:
输入接口300,与处理器200相连,用于获取外部导入的计算机程序、参数和指令,经处理器200控制保存至存储器100中。该输入接口300可以与输入装置相连,接收用户手动输入的参数或指令。该输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是键盘、触控板或鼠标等。
显示单元400,与处理器200相连,用于显示处理器200发送的数据。该显示单元400可以为PC机上的显示屏、液晶显示屏或者电子墨水显示屏等。具体的,在本实施例中,可以通过显示单元400显示待操作文件的文件块号和磁盘逻辑块号。
网络端口500,与处理器200相连,用于与外部各终端设备进行通信连接。该通信连接所采用的通信技术可以为有线通信技术或无线通信技术,如移动高清链接技术(MHL)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术等。具体的,在本实施例中,可以通过网络端口500向处理器200导入i_block数据块指针等。
本申请还提供了一种计算机可读存储介质,该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所提供文件数据块寻址方法的步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种文件数据块寻址方法,其特征在于,包括:
获取待操作文件的文件块号,并判断所述文件块号是否在预设范围内;
若是,则根据所述文件块号对应的指针通过直接寻址的方式确定所述待操作文件对应的磁盘逻辑块号;
若否,则获取目标指针,并根据所述目标指针指向的基树和所述文件块号确定所述待操作文件对应的磁盘逻辑块号;
其中,所述基树为存储文件的磁盘逻辑块号的基树。
2.根据权利要求1所述文件数据块寻址方法,其特征在于,获取待操作文件的文件块号,包括:
获取文件操作请求;其中,所述文件操作请求至少包括所述待操作文件的文件块号;
相应的,所述确定所述待操作文件对应的磁盘逻辑块号之后,还包括:
根据所述文件操作请求对所述磁盘逻辑块号对应的数据块执行相应的操作,并返回操作结果。
3.根据权利要求1所述文件数据块寻址方法,其特征在于,根据所述文件操作请求对所述磁盘逻辑块号对应的数据块执行相应的操作,并返回操作结果之后,还包括:
根据所述操作结果更新所述基树。
4.根据权利要求1-3任一项所述文件数据块寻址方法,其特征在于,所述基树的根节点的数据结构至少包括所述基树的当前深度和根节点指针,所述根节点指针指向所述基树的第一层节点。
5.根据权利要求4所述文件数据块寻址方法,其特征在于,所述基树除所述根节点外的节点的数据结构至少包括指针数组和所述指针数组中非空指针的计数变量。
6.根据权利要求5所述文件数据块寻址方法,其特征在于,根据所述目标指针指向的基树和所述文件块号确定所述待操作文件对应的磁盘逻辑块号,包括:
根据所述指针数组中的指针数量将所述文件块号划分为N个文件块号子部分;所述文件块号中由低位至高位的第N个所述文件块号子部分对应所述基树由底层至高层的第N层;其中,N为正整数;
根据所述N个文件块号子部分从所述基树的根节点向孩子节点方向确定所述待操作文件对应的磁盘逻辑块号。
7.根据权利要求6所述文件数据块寻址方法,其特征在于,若所述指针数组中的指针数量为64,则根据所述指针数组中的指针数量将所述文件块号划分为N个文件块号子部分,包括:
将所述文件块号由低位至高位每6位划分为一个所述文件块号子部分。
8.一种文件数据块寻址系统,其特征在于,包括:
获取模块,用于获取待操作文件的文件块号,并判断所述文件块号是否在预设范围内;若是,则启动第一确定模块的工作流程;若否,则启动第二确定模块的工作流程;
所述第一确定模块,用于根据所述文件块号对应的指针通过直接寻址的方式确定所述待操作文件对应的磁盘逻辑块号;
所述第二确定模块,用于获取目标指针,并根据所述目标指针指向的基树和所述文件块号确定所述待操作文件对应的磁盘逻辑块号;其中,所述基树为存储文件的磁盘逻辑块号的基树。
9.一种文件数据块寻址设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述文件数据块寻址方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述文件数据块寻址方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810697847.8A CN108897698B (zh) | 2018-06-29 | 2018-06-29 | 一种文件数据块寻址方法、系统及设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810697847.8A CN108897698B (zh) | 2018-06-29 | 2018-06-29 | 一种文件数据块寻址方法、系统及设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108897698A true CN108897698A (zh) | 2018-11-27 |
CN108897698B CN108897698B (zh) | 2021-10-29 |
Family
ID=64347180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810697847.8A Active CN108897698B (zh) | 2018-06-29 | 2018-06-29 | 一种文件数据块寻址方法、系统及设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108897698B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625198A (zh) * | 2020-05-28 | 2020-09-04 | 深圳佰维存储科技股份有限公司 | 一种元数据缓存方法和元数据缓存装置 |
CN112241238A (zh) * | 2019-07-18 | 2021-01-19 | 深圳市茁壮网络股份有限公司 | 一种数据异常处理方法、装置、存储介质和计算机设备 |
CN114996046A (zh) * | 2022-08-05 | 2022-09-02 | 北京网藤科技有限公司 | 一种用于windows系统的磁盘扫描加速方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101526965A (zh) * | 2009-04-29 | 2009-09-09 | 成都市华为赛门铁克科技有限公司 | 一种磁盘文件的索引节点定位方法和装置 |
US20140101363A1 (en) * | 2012-10-08 | 2014-04-10 | International Business Machines Corporation | Selectable address translation mechanisms within a partition |
CN103995855A (zh) * | 2014-05-14 | 2014-08-20 | 华为技术有限公司 | 存储数据的方法和装置 |
CN104750433A (zh) * | 2015-03-26 | 2015-07-01 | 浪潮集团有限公司 | 一种基于scst的缓存设计方法 |
CN105094695A (zh) * | 2015-06-29 | 2015-11-25 | 浪潮(北京)电子信息产业有限公司 | 一种存储方法和系统 |
CN106649135A (zh) * | 2016-12-30 | 2017-05-10 | 郑州云海信息技术有限公司 | 一种单控存储的缓存管理方法及装置 |
-
2018
- 2018-06-29 CN CN201810697847.8A patent/CN108897698B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101526965A (zh) * | 2009-04-29 | 2009-09-09 | 成都市华为赛门铁克科技有限公司 | 一种磁盘文件的索引节点定位方法和装置 |
US20140101363A1 (en) * | 2012-10-08 | 2014-04-10 | International Business Machines Corporation | Selectable address translation mechanisms within a partition |
CN103995855A (zh) * | 2014-05-14 | 2014-08-20 | 华为技术有限公司 | 存储数据的方法和装置 |
CN104750433A (zh) * | 2015-03-26 | 2015-07-01 | 浪潮集团有限公司 | 一种基于scst的缓存设计方法 |
CN105094695A (zh) * | 2015-06-29 | 2015-11-25 | 浪潮(北京)电子信息产业有限公司 | 一种存储方法和系统 |
CN106649135A (zh) * | 2016-12-30 | 2017-05-10 | 郑州云海信息技术有限公司 | 一种单控存储的缓存管理方法及装置 |
Non-Patent Citations (2)
Title |
---|
VIKTOR LEIS 等: "The adaptive radix tree: ARTful indexing for main-memory databases", 《2013 IEEE 29TH INTERNATIONAL CONFERENCE ON DATA ENGINEERING (ICDE)》 * |
徐炜: "基数树原理及在Linux内核中的应用分析", 《电脑编程技巧与维护》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112241238A (zh) * | 2019-07-18 | 2021-01-19 | 深圳市茁壮网络股份有限公司 | 一种数据异常处理方法、装置、存储介质和计算机设备 |
CN112241238B (zh) * | 2019-07-18 | 2023-12-05 | 深圳市茁壮网络股份有限公司 | 一种数据异常处理方法、装置、存储介质和计算机设备 |
CN111625198A (zh) * | 2020-05-28 | 2020-09-04 | 深圳佰维存储科技股份有限公司 | 一种元数据缓存方法和元数据缓存装置 |
CN114996046A (zh) * | 2022-08-05 | 2022-09-02 | 北京网藤科技有限公司 | 一种用于windows系统的磁盘扫描加速方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108897698B (zh) | 2021-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104516894B (zh) | 用于管理时间序列数据库的方法和装置 | |
US9489409B2 (en) | Rollover strategies in a N-bit dictionary compressed column store | |
CN105830059A (zh) | 文件访问方法、装置及存储设备 | |
CN103345469B (zh) | 号码集合的存储、查询方法及其装置 | |
CN108897698A (zh) | 一种文件数据块寻址方法、系统及设备和存储介质 | |
CN108205577B (zh) | 一种数组构建、数组查询的方法、装置及电子设备 | |
CN105830022B (zh) | 访问文件的方法和装置 | |
CN103440208B (zh) | 一种数据存储的方法及装置 | |
CN109446362A (zh) | 基于外存的图数据库结构、图数据存储方法、装置 | |
CN106095698B (zh) | 面向对象的缓存写入、读取方法及装置 | |
WO2014101420A1 (zh) | 一种元数据的构建系统及其方法 | |
CN111666330A (zh) | 数据的读写方法和装置 | |
CN111666344B (zh) | 异构数据同步方法及装置 | |
CN107291539A (zh) | 基于资源重要程度的集群程序调度方法 | |
CN102833110B (zh) | 大数据量下网管软件中拓扑数据关系的管理方法 | |
CN108920613A (zh) | 一种元数据管理方法、系统及设备和存储介质 | |
CN109947669A (zh) | Kv存储设备的地址转换方法与系统 | |
CN105930354A (zh) | 存储模型转换方法和装置 | |
CN112486988A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN110209453A (zh) | 基于驱动器的多对象自动刷新及显示方法及相关产品 | |
CN109492005A (zh) | 一种b+树读缓存方法及相关装置 | |
CN110059091A (zh) | 索引构建的方法、装置、客户端、服务器及系统 | |
CN110069452A (zh) | 数据存储方法、装置和计算机可读存储介质 | |
CN105630702A (zh) | 一种逻辑卷创建方法与系统 | |
CN111104435B (zh) | 一种元数据组织方法、装置、设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |