当前位置: 首页 > 专利查询>张宇专利>正文

一种适用于云存储的文件操作方法技术

技术编号:16587484 阅读:72 留言:0更新日期:2017-11-18 15:05
本发明专利技术提供一种适用于云存储的文件操作方法,包括:配置X类容器,向磁盘管理空间申请多个容量均为Q的初始连续存储空间,每一个连续存储空间对应每类容器的初始分配单元;对于任意的容器Ri,将其对应的连续存储空间Wi划分为容量为Ti的若干个连续存储数据块,余数部分用于保留空间;基于容器对文件进行写入和读取操作。优点为:本发明专利技术实现了文件最大程度的连续存储,有效降低了产生的文件碎片数量,从而提高文件读写效率。本发明专利技术在应用于互联网网盘系统中时,其效果尤其明显。

A file operation method suitable for cloud storage

The invention provides a method for cloud storage file operation method, including the configuration of the X container, to apply for multiple disk space management capacity is Q the initial continuous storage space, every continuous storage space corresponds to the initial allocation unit of each type of container; container for any Ri, the continuous storage space the Wi Division for the corresponding capacity for a plurality of Ti continuous data storage block, the remainder part for retaining space; containers on file write and read operations based on. The invention has the advantages of realizing the maximum continuous storage of files, effectively reducing the number of file fragments generated, and improving the efficiency of file reading and writing. The invention is especially effective when applied to the Internet SkyDrive system.

【技术实现步骤摘要】
一种适用于云存储的文件操作方法
本专利技术属于文件读写操作
,具体涉及一种适用于云存储的文件操作方法。
技术介绍
传统的文件系统,其最小分配颗粒通常较小,例如,为512字节、1K、2K、4K、8K、16K和32K等,其中,最常见的为4K,以典型值4K为例,即:将存储硬盘以4K为单元切分为若干个存储块。其存在的主要不足为:经常发生存储的某个文件的文件碎片数量大,由此导致文件读取效率低。为方便理解传统文件系统的不足,举例如下:(1)假设对于硬盘D,初始为空;在初始向硬盘存入数据时,基本原则为:保证文件连续存储,从而提高文件读取效率。因此,假设向硬盘D中存入了100个文件大小均为100K的文件,所以,第1个文件连续占用了第1个存储块到第25个存储块;第2个文件连续占用了第26个存储块到第50个存储块;第3个文件连续占用了第51个存储块到第100个存储块,依此类推,硬盘D的前2500个连续存储块被存入数据。(2)后续过程中,发生文件删除操作,假设第1个文件、第3个文件、第5个文件…第99个文件被删除,此时,硬盘D出现的多个分散布置的空存储块;(3)某一时刻,如果需要向硬盘D中写入大小为1000K的文件时,文件系统只能将1000K的文件切分为10个文件单元,每个文件单元存储到各个空存储块中。可见,1000K的文件由10个文件碎片组成。也就是说,对于传统的文件系统,经常出现大量的文件碎片,一方面,在写入数据时,需要记录每个文件碎片的位置,占用大量的资源;另一方面,在读取文件时,需要分散读取各个文件碎片,明显具有文件读取效率低的不足。因此,如何有效解决传统文件系统所具有的上述不足,提高文件读写效率,是目前迫切的事情。
技术实现思路
针对现有技术存在的缺陷,本专利技术提供一种适用于云存储的文件操作方法,可有效解决上述问题。本专利技术采用的技术方案如下:本专利技术提供一种适用于云存储的文件操作方法,包括以下步骤:步骤1,配置X类容器,分别记为:容器R1、容器R2…容器RX;X为自然数;设T1<T2<…<TX;则:容器R1所存储的每个文件的容量满足以下要求:0<文件容量≤T1;容器R2所存储的每个文件的容量满足以下要求:T1<文件容量≤T2;容器R3所存储的每个文件的容量满足以下要求:T2<文件容量≤T3,依此类推,容器RX所存储的每个文件的容量满足以下要求:TX-1<文件容量≤TX;步骤2,向磁盘管理空间申请多个容量均为Q的初始连续存储空间,每一个连续存储空间对应每类容器的初始分配单元;其中,将容器R1、容器R2…容器RX分别对应的初始连续存储空间记为:连续存储空间W1、连续存储空间W2…连续存储空间WX;每类容器管理的最小空间单位为Q;步骤3,创建容器管理单元,所述容器管理单元用于采用第一分配表的方式记录每个容器与对应的连续存储空间的对应关系;对于任意的容器Ri,i∈(1、2…X),将其对应的连续存储空间Wi划分为容量为Ti的若干个连续存储数据块,余数部分用于保留空间;步骤4,创建容器内空间管理单元,所述空间管理单元用于采用第二分配表的方式记录容器内部存储空间的分配情况,具体的,所述第二分配表记录每类容器内部的可用连续存储数据块数量以及容器内部可用连续存储数据块的位置;步骤5,当接收到文件写入请求时,首先获得文件容量值,假设文件容量值为T0,判断文件容量值T0是否超过TX,如果没有超过,则执行步骤6-步骤8,并结束流程;如果超过,则执行步骤9,并结束流程;步骤6,在X类容器中,获得与文件容量值T0对应的容器Rj;其中,j∈(1、2…X);步骤7,查找所述容器内空间管理单元,判断容器Rj是否还存在可用连续存储数据块,如果存在,根据容器Rj的第二分配表,获得容器Rj的可用连续存储数据块的位置;将容器Rj的某个可用连续存储数据块分配给文件容量值为T0的文件,将文件容量值为T0的文件写入到容器Rj的某个可用连续存储数据块中;由于容器Rj的可用连续存储数据块的容量为Tj,Tj大于等于T0,因此,文件容量值为T0的文件可连续存储在容器Rj的可用连续存储数据块中,实现文件的连续存储;如果不存在,由容器管理单元向磁盘管理空间新申请容量为Q的连续存储空间,更新所述第一分配表;然后,重新执行步骤7;步骤8,更新所述第二分配表;步骤9,计算T0除以TX,假设商数为a,余数为b;以TX为切分单位,将文件容量值为T0的文件自后向前或自前向后切分,因此,共得到a个容量为TX的文件单元,以及文件容量为b的剩余文件部分;对于a个容量为TX的文件单元,将每个文件单元分别写入到容器RX的某个可用连续存储数据块中,并更新第二分配表;计算a个容量为TX的文件单元的索引值,每个文件单元的索引值用于记录该文件单元的存储位置;a个索引值对齐后容量值为c;c+b小于TX,按步骤6-步骤8的方法,将容量值为c+b的索引值和剩余文件部分存储到与其最接近且大于等于c+b的容器中;步骤10,此外,预建立文件目录;所述文件目录用于存储文件名称、文件容量以及文件存储位置的对应关系;因此,在执行完步骤8或步骤9后,更新所述文件目录;其中,对于步骤8,文件存储位置为文件所存储的容器中对应的连续存储数据块的位置;对于步骤9,文件存储位置为:容量值为c+b的索引值和剩余文件部分所存储的容器中对应的连续存储数据块的位置。优选的,步骤1中,T1为1Kb;T2为2Kb;T3为4Kb;T4为8Kb;T5为12Kb;T6为16Kb…TX为1M;其中,在4K~1M之间,每隔4K对应一个容器。优选的,步骤2中,Q值为1G。优选的,还包括文件读取过程,文件读取过程包括:步骤11,当接收到文件读取请求时,所述文件读取请求中携带有文件名称,查找所述文件目录,获得该文件的文件容量以及文件存储位置;步骤12,假设文件容量值为T0,判断文件容量值T0是否超过TX,如果没有超过,则根据所述文件目录中所记录的文件存储位置,可直接获得存储该文件的容器以及在该容器中的具体存储位置;因此,定位到对应容器的对应存储位置,即可读取到该文件;如果超过,解析所述文件目录中所记录的文件存储位置,一方面,获得文件头部内容;另一方面,获得文件所包含的各个文件单元的索引值,再根据索引值,定位到存储每个文件单元的容器以及在该容器中的具体存储位置,从而读取到各个文件单元;将读取到的各个文件单元以及文件头部内容按顺序拼接,即读取到完整的文件。本专利技术提供的一种适用于云存储的文件操作方法具有以下优点:本专利技术实现了文件最大程度的连续存储,有效降低了产生的文件碎片数量,从而提高文件读写效率。本专利技术在应用于互联网网盘系统中时,其效果尤其明显。附图说明图1为本专利技术提供的文件写入流程图;图2为本专利技术提供的文件读取流程图。具体实施方式为了使本专利技术所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。为方便对本专利技术进行理解,首先介绍本专利技术的主要构思:假设共配置258类容器,分别为:1K容器、2K容器、4K容器、8K容器、12K容器…1M容器;每类容器分配的初始连续存储空间均为1G。以8K容器为例,其用于本文档来自技高网
...
一种适用于云存储的文件操作方法

【技术保护点】
一种适用于云存储的文件操作方法,其特征在于,包括以下步骤:步骤1,配置X类容器,分别记为:容器R1、容器R2…容器RX;X为自然数;设T1<T2<…<TX;则:容器R1所存储的每个文件的容量满足以下要求:0<文件容量≤T1;容器R2所存储的每个文件的容量满足以下要求:T1<文件容量≤T2;容器R3所存储的每个文件的容量满足以下要求:T2<文件容量≤T3,依此类推,容器RX所存储的每个文件的容量满足以下要求:TX‑1<文件容量≤TX;步骤2,向磁盘管理空间申请多个容量均为Q的初始连续存储空间,每一个连续存储空间对应每类容器的初始分配单元;其中,将容器R1、容器R2…容器RX分别对应的初始连续存储空间记为:连续存储空间W1、连续存储空间W2…连续存储空间WX;每类容器管理的最小空间单位为Q;步骤3,创建容器管理单元,所述容器管理单元用于采用第一分配表的方式记录每个容器与对应的连续存储空间的对应关系;对于任意的容器Ri,i∈(1、2…X),将其对应的连续存储空间Wi划分为容量为Ti的若干个连续存储数据块,余数部分用于保留空间;步骤4,创建容器内空间管理单元,所述空间管理单元用于采用第二分配表的方式记录容器内部存储空间的分配情况,具体的,所述第二分配表记录每类容器内部的可用连续存储数据块数量以及容器内部可用连续存储数据块的位置;步骤5,当接收到文件写入请求时,首先获得文件容量值,假设文件容量值为T0,判断文件容量值T0是否超过TX,如果没有超过,则执行步骤6‑步骤8,并结束流程;如果超过,则执行步骤9,并结束流程;步骤6,在X类容器中,获得与文件容量值T0对应的容器Rj;其中,j∈(1、2…X);步骤7,查找所述容器内空间管理单元,判断容器Rj是否还存在可用连续存储数据块,如果存在,根据容器Rj的第二分配表,获得容器Rj的可用连续存储数据块的位置;将容器Rj的某个可用连续存储数据块分配给文件容量值为T0的文件,将文件容量值为T0的文件写入到容器Rj的某个可用连续存储数据块中;由于容器Rj的可用连续存储数据块的容量为Tj,Tj大于等于T0,因此,文件容量值为T0的文件可连续存储在容器Rj的可用连续存储数据块中,实现文件的连续存储;如果不存在,由容器管理单元向磁盘管理空间新申请容量为Q的连续存储空间,更新所述第一分配表;然后,重新执行步骤7;步骤8,更新所述第二分配表;步骤9,计算T0除以TX,假设商数为a,余数为b;以TX为切分单位,将文件容量值为T0的文件自后向前或自前向后切分,因此,共得到a个容量为TX的文件单元,以及文件容量为b的剩余文件部分;对于a个容量为TX的文件单元,将每个文件单元分别写入到容器RX的某个可用连续存储数据块中,并更新第二分配表;计算a个容量为TX的文件单元的索引值,每个文件单元的索引值用于记录该文件单元的存储位置;a个索引值对齐后容量值为c;c+b小于TX,按步骤6‑步骤8的方法,将容量值为c+b的索引值和剩余文件部分存储到与其最接近且大于等于c+b的容器中;步骤10,此外,预建立文件目录;所述文件目录用于存储文件名称、文件容量以及文件存储位置的对应关系;因此,在执行完步骤8或步骤9后,更新所述文件目录;其中,对于步骤8,文件存储位置为文件所存储的容器中对应的连续存储数据块的位置;对于步骤9,文件存储位置为:容量值为c+b的索引值和剩余文件部分所存储的容器中对应的连续存储数据块的位置。...

【技术特征摘要】
1.一种适用于云存储的文件操作方法,其特征在于,包括以下步骤:步骤1,配置X类容器,分别记为:容器R1、容器R2…容器RX;X为自然数;设T1<T2<…<TX;则:容器R1所存储的每个文件的容量满足以下要求:0<文件容量≤T1;容器R2所存储的每个文件的容量满足以下要求:T1<文件容量≤T2;容器R3所存储的每个文件的容量满足以下要求:T2<文件容量≤T3,依此类推,容器RX所存储的每个文件的容量满足以下要求:TX-1<文件容量≤TX;步骤2,向磁盘管理空间申请多个容量均为Q的初始连续存储空间,每一个连续存储空间对应每类容器的初始分配单元;其中,将容器R1、容器R2…容器RX分别对应的初始连续存储空间记为:连续存储空间W1、连续存储空间W2…连续存储空间WX;每类容器管理的最小空间单位为Q;步骤3,创建容器管理单元,所述容器管理单元用于采用第一分配表的方式记录每个容器与对应的连续存储空间的对应关系;对于任意的容器Ri,i∈(1、2…X),将其对应的连续存储空间Wi划分为容量为Ti的若干个连续存储数据块,余数部分用于保留空间;步骤4,创建容器内空间管理单元,所述空间管理单元用于采用第二分配表的方式记录容器内部存储空间的分配情况,具体的,所述第二分配表记录每类容器内部的可用连续存储数据块数量以及容器内部可用连续存储数据块的位置;步骤5,当接收到文件写入请求时,首先获得文件容量值,假设文件容量值为T0,判断文件容量值T0是否超过TX,如果没有超过,则执行步骤6-步骤8,并结束流程;如果超过,则执行步骤9,并结束流程;步骤6,在X类容器中,获得与文件容量值T0对应的容器Rj;其中,j∈(1、2…X);步骤7,查找所述容器内空间管理单元,判断容器Rj是否还存在可用连续存储数据块,如果存在,根据容器Rj的第二分配表,获得容器Rj的可用连续存储数据块的位置;将容器Rj的某个可用连续存储数据块分配给文件容量值为T0的文件,将文件容量值为T0的文件写入到容器Rj的某个可用连续存储数据块中;由于容器Rj的可用连续存储数据块的容量为Tj,Tj大于等于T0,因此,文件容量值为T0的文件可连续存储在容器Rj的可用连续存储数据块中,实现文件的连续存储;如果不存在,由容器管理单元向磁盘管理空间新申请容量为Q的连续存储空间,更新所述...

【专利技术属性】
技术研发人员:张宇赵友平
申请(专利权)人:张宇
类型:发明
国别省市:山西,14

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

1