CN102982151A - 多个物理文件合并为一个逻辑文件的方法 - Google Patents
多个物理文件合并为一个逻辑文件的方法 Download PDFInfo
- Publication number
- CN102982151A CN102982151A CN2012104933691A CN201210493369A CN102982151A CN 102982151 A CN102982151 A CN 102982151A CN 2012104933691 A CN2012104933691 A CN 2012104933691A CN 201210493369 A CN201210493369 A CN 201210493369A CN 102982151 A CN102982151 A CN 102982151A
- Authority
- CN
- China
- Prior art keywords
- file
- physical
- logical
- logical file
- write
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种将多个物理文件合并为一个逻辑文件的方法,属于计算机领域。将多个存储设备上的多个物理文件合并为一个逻辑文件的方法包括:建立逻辑文件时,在物理文件***上建立逻辑文件及逻辑文件的主配置文件,并在逻辑文件中指明主配置文件信息;删除逻辑文件时,在物理文件***上删除逻辑文件、主配置文件、相关物理文件及配置文件;当读写逻辑文件时,将对逻辑文件访问请求的偏移量和长度转化为对应的物理文件实际偏移量和长度,写操作需要新建立物理文件时,同时建立相对应的配置文件。本发明能够有效地将逻辑文件分散在多个存储设备上多个文件***的多个目录中从而实现个性化存储,并提高逻辑文件的访问速度。
Description
技术领域
本发明属于计算机领域,主要关注增强文件的个性化存储和提高文件访问效率。
背景技术
很多应用中需要建立非常大尺寸的文件,例如TB级别的文件,但是往往单个物理存储介质本身就没有这么大的容量或者不允许单个文件具有这么大的尺寸(例如fat32文件***最大支持的单个文件为2GB),因此需要将若干个物理存储介质上的物理文件数据合并为一个逻辑文件。另外,通过将一个大的文件分解为若干个部分存储在不同的存储介质上还有利于并行化访问文件的不同部分,提高计算机以及应用***的性能。
已有的解决方案包括RAID技术、逻辑卷技术、LVM技术等,这些技术在数据块级别给出解决方案,实现一个逻辑文件分散在多个物理存储介质中的多个数据块中。
而本发明的原理不同于上述基于数据块级别技术,本发明基于已有的若干个文件***基础上进一步建立逻辑文件,即基于文件***级别,而不是数据块级别。
目前将一个文件分散为多个物理文件存储尚未有通用的解决方案,例如,一些数据库***自己利用多个物理文件映射为一个数据库逻辑(或者表空间)文件。一般多依赖于具体的应用程序本身。
本发明基于文件***给出一个将多个物理文件合并为一个逻辑文件的通用方法。
发明内容
本发明目的是为了增强文件的个性化存储和提高访问效率。本发明基于文件***给出一个将多个物理文件合并为一个逻辑文件的方法,该方法具有通用性和广泛的适用性。
本发明给出的逻辑文件创建和管理方法,超越了单个存储设备的容量限制,也超越了单个物理文件***的容量限制和单个物理文件的容量限制,并且可跨越本地存储设备的限制,通过网络实现将逻辑文件存储在网络环境下的多个存储设备中,从而构建足够大的逻辑文件,从而极大地方便地为上层应用程序提供构建大文件的统一方法,并可大大提高访问的并发效率。
1.多个物理文件合并为一个逻辑文件的方法,所述方法包括:
第1、当创建逻辑文件时,需在物理文件***上建立逻辑文件以及“逻辑文件的主配置文件”,简称“主配置文件”。逻辑文件中指明逻辑文件类型和主配置文件信息。一个逻辑文件对应有一个“逻辑文件的主配置文件”,逻辑文件的主配置文件中记录逻辑文件的全局信息以及逻辑文件对应的多个物理文件在物理文件***中具体目录信息;
第2、当打开逻辑文件时,获知逻辑文件中存储的主配置文件信息,然后读取主配置文件,以及进一步读取在主配置文件中列出的所有物理文件目录中所有物理文件的配置文件,简称“配置文件”。进一步在内存中建立“逻辑文件全局控制块”,“逻辑文件全局控制块”中包含一个“逻辑文件数据存储分布表”,“逻辑文件数据存储分布表”中记录逻辑文件的大小以及各离散数据段所对应的物理文件;
第3、当对逻辑文件写数据时,根据写访问请求的偏移量和长度,在内存中此逻辑文件的“逻辑文件数据存储分布表”中查找对应的一个或者多个物理文件实际偏移量和长度。
第3.1、若找到对应的一个或多个物理文件实际偏移量和长度,则将相应长度的数据依次写入一个或多个物理文件相应的偏移量所标明位置。若上述操作成功,写操作成功返回;否则写操作失败返回;
第3.2、若未找到对应的一个或多个物理文件实际偏移量和长度,则根据内存中此逻辑文件的“逻辑文件全局控制块”中给定的写目录集合和写策略,选择其中的物理文件***目录,在此目录中建立一个新的物理文件以及新物理文件对应的配置文件,将待写入的数据写入新的物理文件中,并更新此物理文件对应的配置文件信息。若上述操作成功,则进一步更新内存中此逻辑文件的“逻辑文件全局控制块”信息,写操作成功返回;否则写操作失败返回;
第3.3、若写操作的部分数据找到对应的一个或多个物理文件实际偏移量和长度,写操作的另外一部分数据未找到对应的一个或多个物理文件实际偏移量和长度,则将此写操作分成若干个子的写操作。对于找到对应的一个或多个物理文件实际偏移量和长度的写操作数据,调用第3.1过程;对于未找到对应的一个或多个物理文件实际偏移量和长度的写操作数据,调用第3.2过程。若所有子的写操作都成功,则写操作成功返回;否则写操作失败返回;
第4、当读取逻辑文件时;根据读访问请求的偏移量和长度,在内存中此逻辑文件的“逻辑文件数据存储分布表”中查找对应的一个或多个物理文件实际偏移量和长度,若未查找到,则返回读失败;若查找到对应的一个或多个物理文件实际偏移量和长度,进一步读取“物理文件目录表”中对应的物理文件目录的“优先级”信息,然后按优先级依次读取一个或多个物理文件相应的偏移量和长度所标明的数据,并成功返回;
第5、关闭逻辑文件时,将内存中此逻辑文件的“逻辑文件全局控制块”信息更新到逻辑文件的主配置文件以及逻辑文件对应的多个物理文件的配置文件中;
第6、当删除逻辑文件时;需先读取逻辑文件,获知主配置文件信息,然后读取主配置文件,以及进一步读取在主配置文件中列出的所有物理文件目录中所有物理文件的配置文件。根据这些信息在物理文件***中依次删除关物理文件及物理文件所对应的配置文件,进一步删除“逻辑文件的主配置文件”,最后删除逻辑文件。
2.按照本发明提供的建立方法,其特征在于,逻辑文件的主配置文件主要包括如下信息:逻辑文件大小、物理文件名前缀、单个物理文件大小最大值、主物理文件目录集合、主物理文件目录集合、物理文件目录集合、写策略。其中,物理文件名前缀为逻辑文件所包含的所有物理文件的文件名前缀;单个物理文件大小最大值限制单个物理文件最大容量;主物理文件目录集合为对逻辑文件可写操作的物理文件目录集合;物理文件目录集合为逻辑文件所包含的所有物理文件所对应的物理文件目录集合。
3.按照本发明提供的建立方法,所述的,针对逻辑文件所包含的所有物理文件,每个物理文件有一个对应的配置文件,主要包括如下信息:物理文件大小、有效起始位置、逻辑文件偏移量、长度。其中,“有效起始位置”指逻辑文件在此物理文件中第一个字节有效数据的位置相对于物理文件起始的长度;“逻辑文件偏移量”指辑文件在此物理文件中第一个字节有效数据相对于逻辑文件起始的长度;“长度”指逻辑文件在此物理文件中第一个字节有效数据开始连续有效数据的最大长度。
4.按照本发明提供的建立方法,所述的,逻辑文件的主配置文件中的写策略指明对逻辑文件写操作过程中具体在主物理文件目录集合中的哪些目录中可涉及新建物理文件及配置文件,写策略包括随机选择写目录、依次轮换选择写目录、指定写目录、冗余写目录等,并可进一步扩充策略。
5.按照本发明提供的建立方法,所述的,每个已打开的逻辑文件在内存中有一个唯一对应的“逻辑文件全局控制块”,“逻辑文件全局控制块”包括如下信息:逻辑文件inode号、逻辑文件名、逻辑文件大小、物理文件名前缀、单个物理文件大小最大值、主物理文件目录表指针、物理文件目录表指针、数据存储分布表指针、写策略。其中,逻辑文件inode号为此逻辑文件的唯一索引号;主物理文件目录表指针指向“主物理文件目录表”,表明可写入的物理文件目录集合;物理文件目录表指针指向“物理文件目录表”,表明所有物理文件目录集合;数据存储分布表指针指向“逻辑文件数据存储分布表”。“主物理文件目录表”和“物理文件目录表”中的每一个物理文件目录对应一个“优先级”“优先级”表明读操作的优先顺序,不同的物理文件目录可以有相同的“优先级”。
6.按照本发明提供的建立方法,所述的,“逻辑文件数据存储分布表”存放当前逻辑文件数据在多个物理文件中存储的实际情况,“逻辑文件数据存储分布表”包括如下信息:物理文件目录、物理文件名、物理文件大小、有效起始位置、逻辑文件偏移量、长度。“逻辑文件数据存储分布表”的数据与逻辑文件所包含的所有物理文件的配置文件的数据一致,含义一致。
7.按照本发明提供的建立方法,所述的,逻辑文件所包含多个物理文件可以分散存储到多个不同的文件***目录下,也可以存储到网络上的文件***和存储空间中。本发明支持采用单独的计算装置对外提供逻辑文件服务,计算装置与各种物理存储装置直接线缆连接或者网络连接。
8.按照本发明提供的建立方法,所述的,逻辑文件支持任意的黑洞文件,即逻辑文件中部分偏移量及长度所指的数据无需存在。逻辑文件支持由高层应用程序将其由一个不带黑洞的文件转变为带黑洞的文件,也支持由带黑洞的文件转变为不带黑洞的文件。
9.按照本发明提供的建立方法,所述的,对逻辑文件的写操作可支持事务型写操作。具体方法如下:
第9.1、建立一个新的事务;
第9.2、根据写访问请求的偏移量和长度,并根据写策略,直接建立新的物理文件以及对应的配置文件,并写入实际数据;
第9.3、若第9.2操作失败,则回滚新事务,写操作失败返回;否则执行第9.4;
第9.4、在“逻辑文件数据存储分布表”中查找对应偏移量和长度的已存在的一个或多个物理文件,若不存在相应物理文件,则执行第9.6;
第9.5、若物理文件所包含的有效数据完全在中原始写访问请求的偏移量和长度范围内,则删除该物理文件及配置文件,并在“逻辑文件数据存储分布表”中删除对应信息;若物理文件所包含的有效数据部分在写访问请求的偏移量和长度范围内,则在“逻辑文件数据存储分布表”中将此物理文件的偏移量和长度信息中去除原始写访问请求的偏移量和长度范围;若操作失败,则回滚新事务,写操作失败返回;否则执行第9.6;
第9.6、将新的物理文件以及配置文件中相关信息添加到内存中此逻辑文件的“逻辑文件数据存储分布表”中;若操作失败,则回滚新事务,写操作失败返回;否则执行第9.7;
第9.7、新事务成功提交,写操作成功返回。
10.按照本发明提供的建立方法,所述的,逻辑文件可支持多个物理文件的冗余存储,即多个物理文件包含逻辑文件中相同的数据,这一特征由写策略的“冗余写目录”来标识。此时写操作将向符合条件的多个物理文件中写入相同的数据,而读操作时按照多个物理文件所在物理目录的优先级来按序读取。
本发明的优点和积极效果:
本发明能够实现文件的个性化存储和提高文件访问效率。
目前将一个文件分散为多个物理文件存储尚未有通用的解决方案,一般取决于具体的应用程序本身。本发明则基于已有的文件***实现将多个物理文件合并成一个统一的逻辑文件的方法,且独立于应用程序,因此更具有广泛应用价值。
附图说明
图1是本发明中多个物理文件合并为一个逻辑文件的示意图。
图2是本发明中多个物理文件合并为一个逻辑文件的物理存储拓扑示意图。
图3是本发明中多个物理文件合并为一个逻辑文件的技术架构示意图。
图4是本发明中逻辑文件在内存中的“逻辑文件数据存储分布表”示意图。
图5是本发明中多个物理文件合并为逻辑文件Myfile的实例1。
图6是本发明中实例1的主配置文件Myfile.uf.conf。
图7是本发明中实例1的物理文件1的配置文件:Myfile.uf.01.conf。
图8是本发明中实例1的物理文件1的配置文件:Myfile.uf.02.conf。
图9是本发明中实例1的物理文件1的配置文件:Myfile.uf.03.conf。
具体实施方式
本发明提供了一种多个物理文件合并为一个逻辑文件的方法。
为能进一步了解本发明的技术内容、特点及功效,兹列举以下应用实例,并配合附图详细说明。
如图1所示一个逻辑文件由主配置文件、多个物理文件以及配置文件组成。一个逻辑文件可以分为若干个物理文件以及对应配置文件,这些物理文件以及配置文件可以分散到多个存储设备中,如图2,若干个物理文件以及对应配置文件存储在存储介质1中的多个目录中,若干个物理文件以及对应配置文件存储在存储介质N中的多个目录中,甚至若干个物理文件以及对应配置文件存储在网络存储介质X中的多个目录中。
如图5所示,逻辑文件Myfile当前由本地文件***之目录b下的Myfile.uf.01、本地文件***之目录c下Myfile.uf.02、网络文件***nfs之目录d下的Myfile.uf03等三个物理文件组成。上述三个物理文件相应的配置文件分别为Myfile.uf.01.conf、Myfile.uf.02.conf、和Myfile.uf.03.conf。而逻辑文件Myfile的主配置文件为Myfile.uf.conf。
从图1、2可以看出本发明给出的逻辑文件创建和管理方法,超越了单个存储设备的容量限制,也超越了单个物理文件***的容量限制和单个物理文件的容量限制,并且可跨越本地存储设备的限制,通过网络实现将逻辑文件存储在网络环境下的多个存储设备中,从而构建足够大的逻辑文件。
“逻辑文件”指从应用程序角度看该对象为文件***中的一个文件对象。具体可以采用三种成熟框架来支持“逻辑文件”的实现,如图3。第一种方法,在操作***用户态下在fuse框架基础上为上层应用程序提供文件***以及文件服务;第二种方法,在操作***内核态下在虚拟文件***VFS框架基础上为上层应用程序提供文件***以及文件服务;第三种方法,在操作***内核态下更底册的wrapFS框架基础上为上层应用程序提供文件***以及文件服务。本发明支持上述三种框架下提供文件***以及文件服务基础上的多个物理文件合并为一个逻辑文件的方法。
本发明可以采用单独的计算装置对外提供逻辑文件服务,计算装置与各种物理存储装置直接线缆连接或者网络连接。
结合图5-9所示,逻辑文件Myfile访问的具体实例如下。
1.基于上述三种技术框架实现“多个物理文件合并为一个逻辑文件”,具体方法:
第1、当创建逻辑文件Myfile时,需在物理文件***上建立逻辑文件Myfile以及“逻辑文件的主配置文件Myfile.uf.conf”,简称“主配置文件”。逻辑文件中指明逻辑文件类型和主配置文件信息。一个逻辑文件对应有一个“逻辑文件的主配置文件”,逻辑文件的主配置文件中记录逻辑文件的全局信息以及逻辑文件对应的多个物理文件在物理文件***中具体目录信息,Myfile.uf.conf的具体内容如图6;
第2、当打开逻辑文件Myfile时,获知逻辑文件中存储的主配置文件(Myfile.uf.conf)信息,然后读取主配置文件Myfile.uf.conf,以及进一步读取在主配置文件中列出的所有物理文件目录中所有物理文件的配置文件(包括Myfile.uf.01.conf,Myfile.uf.02.conf,Myfile.uf.03.conf),简称“配置文件”。进一步在内存中建立“逻辑文件全局控制块”,“逻辑文件全局控制块”中包含一个“逻辑文件数据存储分布表”,“逻辑文件数据存储分布表”中记录逻辑文件的大小以及各离散数据段所对应的物理文件,如图4;
第3、当对逻辑文件Myfile写数据时,根据写访问请求的偏移量和长度(由上层的用户应用程序来提供),在内存中此逻辑文件的“逻辑文件数据存储分布表”中查找对应的一个或者多个物理文件实际偏移量和长度(如图4的“逻辑文件数据存储分布表”所示)。
第3.1、若找到对应的一个或多个物理文件实际偏移量和长度,则将相应长度的数据依次写入一个或多个物理文件相应的偏移量所标明位置。若上述操作成功,写操作成功返回;否则写操作失败返回;
第3.2、若未找到对应的一个或多个物理文件实际偏移量和长度,则根据内存中此逻辑文件的“逻辑文件全局控制块”中给定的写目录集合和写策略(如图4中主物理文件目录表),选择其中的物理文件***目录,在此目录中建立一个新的物理文件以及新物理文件对应的配置文件,将待写入的数据写入新的物理文件中,并更新此物理文件对应的配置文件信息。若上述操作成功,则进一步更新内存中此逻辑文件的“逻辑文件全局控制块”信息,写操作成功返回;否则写操作失败返回;
第3.3、若写操作的部分数据找到对应的一个或多个物理文件实际偏移量和长度,写操作的另外一部分数据未找到对应的一个或多个物理文件实际偏移量和长度,则将此写操作分成若干个子的写操作。对于找到对应的一个或多个物理文件实际偏移量和长度的写操作数据,调用第3.1过程;对于未找到对应的一个或多个物理文件实际偏移量和长度的写操作数据,调用第3.2过程。若所有子的写操作都成功,则写操作成功返回;否则写操作失败返回;
第4、当读取逻辑文件Myfile时;根据读访问请求的偏移量和长度,在内存中此逻辑文件的“逻辑文件数据存储分布表”(如图4)中查找对应的一个或多个物理文件实际偏移量和长度,若未查找到,则返回读失败;若查找到对应的一个或多个物理文件实际偏移量和长度,进一步读取“物理文件目录表”中对应的物理文件目录的“优先级”信息,然后按优先级依次读取一个或多个物理文件相应的偏移量和长度所标明的数据,并成功返回;
第5、关闭逻辑文件Myfile时,将内存中此逻辑文件的“逻辑文件全局控制块”(如图4)信息更新到逻辑文件的主配置文件Myfile.uf.conf以及逻辑文件对应的多个物理文件的配置文件(Myfile.uf.01.conf,Myfile.uf.02.conf,Myfile.uf.03.conf)中;
第6、当删除逻辑文件Myfile时;需先读取逻辑文件Myfile,获知主配置文件信息,然后读取主配置文件Myfile.uf.conf,以及进一步读取在主配置文件中列出的所有物理文件目录中所有物理文件的配置文件(Myfile.uf.01.conf,Myfile.uf.02.conf,Myfile.uf.03.conf)。根据这些信息在物理文件***中依次删除关物理文件(Myfile.uf.01,Myfile.uf.02,Myfile.uf.03)及物理文件所对应的配置文件(Myfile.uf.01.conf,Myfile.uf.02.conf,Myfile.uf.03.conf),进一步删除“逻辑文件的主配置文件”Myfile.ufconf,最后删除逻辑文件Myfile。
2.按照本发明提供的建立方法,所述的,逻辑文件的主配置文件Myfile.uf.conf主要包括如下信息(如图6):逻辑文件大小、物理文件名前缀、单个物理文件大小最大值、主物理文件目录集合、主物理文件目录集合、物理文件目录集合、写策略。其中,物理文件名前缀为逻辑文件所包含的所有物理文件的文件名前缀;单个物理文件大小最大值限制单个物理文件最大容量;主物理文件目录集合为对逻辑文件可写操作的物理文件目录集合;物理文件目录集合为逻辑文件所包含的所有物理文件所对应的物理文件目录集合。
在本实例中,逻辑文件Myfile中主物理目录集合为{(本地文件***目录a,优先级1),(本地文件***目录c,优先级1)},写策略为“随机”,因此每次写操作创建新的物理文件时可以随机选择“本地文件***目录a”和“本地文件***目录c”中的一个目录来创建新的物理文件。
3.按照本发明提供的建立方法,所述的,针对逻辑文件所包含的所有物理文件(Myfile.uf.01,Myfile.uf.02,Myfile.uf.03),每个物理文件有一个对应的配置文件(Myfile.uf.01.conf,Myfile.uf02.conf,Myfile.uf.03.conf),配置文件主要包括如下信息(如图7、8、9所示):物理文件大小、有效起始位置、逻辑文件偏移量、长度。其中,“有效起始位置”指逻辑文件在此物理文件中第一个字节有效数据的位置相对于物理文件起始的长度;“逻辑文件偏移量”指辑文件在此物理文件中第一个字节有效数据相对于逻辑文件起始的长度;“长度”指逻辑文件在此物理文件中第一个字节有效数据开始连续有效数据的最大长度。
4.按照本发明提供的建立方法,所述的,逻辑文件的主配置文件中的写策略指明对逻辑文件写操作过程中具体在主物理文件目录集合中的哪些目录中可涉及新建物理文件及配置文件,写策略包括随机选择写目录、依次轮换选择写目录、指定写目录、冗余写目录等,并可进一步扩充策略。
在本实例中,如图6所示(逻辑文件的主配置文件),逻辑文件Myfile中主物理目录集合为{(本地文件***目录a,优先级1),(本地文件***目录c,优先级1)},写策略为“随机”,因此每次写操作创建新的物理文件时可以随机选择“本地文件***目录a”和“本地文件***目录c”中的一个目录来创建新的物理文件。
5.按照本发明提供的建立方法,所述的,每个已打开的逻辑文件在内存中有一个唯一对应的“逻辑文件全局控制块”,“逻辑文件全局控制块”包括如下信息:逻辑文件inode号、逻辑文件名、逻辑文件大小、物理文件名前缀、单个物理文件大小最大值、主物理文件目录表指针、物理文件目录表指针、数据存储分布表指针、写策略。其中,逻辑文件inode号为此逻辑文件的唯一索引号;主物理文件目录表指针指向“主物理文件目录表”,表明可写入的物理文件目录集合;物理文件目录表指针指向“物理文件目录表”,表明所有物理文件目录集合;数据存储分布表指针指向“逻辑文件数据存储分布表”。“主物理文件目录表”和“物理文件目录表”中的每一个物理文件目录对应一个“优先级”“优先级”表明读操作、写操作的优先顺序,不同的物理文件目录可以有相同的“优先级”。“逻辑文件全局控制块”如图4所示。
6.按照本发明提供的建立方法,所述的,“逻辑文件数据存储分布表”存放当前逻辑文件数据在多个物理文件中存储的实际情况,“逻辑文件数据存储分布表”包括如下信息:物理文件目录、物理文件名、物理文件大小、有效起始位置、逻辑文件偏移量、长度。“逻辑文件数据存储分布表”的数据与逻辑文件所包含的所有物理文件的配置文件的数据一致,含义一致。“逻辑文件数据存储分布表”如图4所示。
7.按照本发明提供的建立方法,所述的,逻辑文件所包含多个物理文件可以分散存储到多个不同的文件***目录下,也可以存储到网络上的文件***和存储空间中。本发明支持采用单独的计算装置对外提供逻辑文件服务,计算装置与各种物理存储装置直接线缆连接或者网络连接。在本实例中,如图5所示,逻辑文件Myfile的部分数据存储在“网络文件***nfs之目录d”下的Myfile.uf03中,其对应的配置文件为Myfile.uf03.conf。本发明支持将一个逻辑文件的数据分散存储在任意物理文件***甚至网络中。
8.按照本发明提供的建立方法,所述的,逻辑文件支持任意的黑洞文件,即逻辑文件中部分偏移量及长度所指的数据无需存在。逻辑文件支持由高层应用程序将其由一个不带黑洞的文件转变为带黑洞的文件,也支持由带黑洞的文件转变为不带黑洞的文件。
在本实例中,如图6、7、8、9所示,逻辑文件Myfile的大小为10M,物理文件Myfile.uf.01的有效数据为2M(逻辑文件的偏移量为0),物理文件Myfile.uf.01的有效数据为4M(逻辑文件的偏移量为3M),物理文件Myfile.uf.01的有效数据为3M(逻辑文件的偏移量为7M)。由此可以看出逻辑文件Myfile中偏移量为2M长度为1M尚未有任何数据,因此此逻辑文件Myfile为带洞的文件,即黑洞文件。
9.按照本发明提供的建立方法,所述的,对逻辑文件的写操作可支持事务型写操作。具体方法如下:
第9.1、建立一个新的事务;
第9.2、根据写访问请求的偏移量和长度,并根据写策略,直接建立新的物理文件以及对应的配置文件,并写入实际数据;
第9.3、若第9.2操作失败,则回滚新事务,写操作失败返回;否则执行第9.4;
第9.4、在“逻辑文件数据存储分布表”中查找对应偏移量和长度的已存在的一个或多个物理文件,若不存在相应物理文件,则执行第9.6;
第9.5、若物理文件所包含的有效数据完全在中原始写访问请求的偏移量和长度范围内,则删除该物理文件及配置文件,并在“逻辑文件数据存储分布表”中删除对应信息;若物理文件所包含的有效数据部分在写访问请求的偏移量和长度范围内,则在“逻辑文件数据存储分布表”中将此物理文件的偏移量和长度信息中去除原始写访问请求的偏移量和长度范围;若操作失败,则回滚新事务,写操作失败返回;否则执行第9.6;
第9.6、将新的物理文件以及配置文件中相关信息添加到内存中此逻辑文件的“逻辑文件数据存储分布表”中;若操作失败,则回滚新事务,写操作失败返回;否则执行第9.7;
第9.7、新事务成功提交,写操作成功返回。在本实例中,当对逻辑文件Myfile进行写操作,覆盖偏移量0~(2M-1)的数据时,可以不覆盖本地文件***之目录b下的物理文件Myfile.uf.01,而是先建立一个新的物理文件Myfile.uf.04存储新的2M数据以及对应的配置文件Myfile.uf.04.conf,具体在哪个目录下建立新的物理文件Myfile.uf.04和Myfile.uf.04.conf,根据图6(主配置文件Myfile.uf.conf)、图4(逻辑文件全局控制块)中主物理目录集合为{(本地文件***目录a,优先级1),(本地文件***目录c,优先级1)},写策略为“随机”,因此每次写操作创建新的物理文件时可以随机选择“本地文件***目录a”和“本地文件***目录c”中的一个目录来创建新的物理文件Myfile.uf.04和Myfile.uf.04.conf;然后在图4(逻辑文件全局控制块)中的逻辑文件数据存储分布表中增加Myfile.uf.04和Myfile.uf.04.conf;并进一步查询偏移量0~(2M-1)的已有数据所在的旧的物理文件(即Myfile.uf.01和Myfile.uf.01.conf),然后删除旧的物理文件(即Myfile.uf.01和Myfile.uf.01.conf)以及去除在图4(逻辑文件全局控制块)中的逻辑文件数据存储分布表的记录,完成写操作。当创建和写新的物理文件Myfile.uf.04和Myfile.uf.04.conf失败时,不会影响逻辑文件Myfile已有的完整数据(包括偏移量0~(2M-1)的数据),从而保证文件操作的可靠性,有效支持事务性特征。
10.按照本发明提供的建立方法,所述的,逻辑文件可支持多个物理文件的冗余存储,即多个物理文件包含逻辑文件中相同的数据,这一特征由写策略的“冗余写目录”来标识。此时写操作将向符合条件的多个物理文件中写入相同的数据,而读操作时按照多个物理文件所在物理目录的优先级来按序读取。
在本实例中,接前述第9特征中实例,当写策略的“冗余写目录”时,对逻辑文件Myfile进行写操作,覆盖偏移量0~(2M-1)的数据操作成功完成,即新数据写入到新的物理文件Myfile.uf.04中,同时也会进一步向覆盖偏移量0~(2M-1)的旧数据所存储的物理文件Myfile.uf.01写入,此时Myfile.uf.01和Myfile.uf.04具有相同的覆盖偏移量0~(2M-1)的最新数据。此后,若有对偏移量0~(2M-1)中部分或全部的读操作时,可以并行地从这两个物理文件中按优先级读取(或同时读取当优先级相同时),从而提高文件访问效率。
考虑到在此公开的对本发明的描述和特例的实施例,本发明的其他实施例对于本领域的技术人员来说是显而意见的。这些说明和实施例仅作为例子来考虑,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.多个物理文件合并为一个逻辑文件的方法,其特征在于,所述方法包括:
第1、当创建逻辑文件时,需在物理文件***上建立逻辑文件以及“逻辑文件的主配置文件”,简称“主配置文件”;逻辑文件中指明逻辑文件类型和主配置文件信息;一个逻辑文件对应有一个“逻辑文件的主配置文件”,逻辑文件的主配置文件中记录逻辑文件的全局信息以及逻辑文件对应的多个物理文件在物理文件***中具体目录信息;
第2、当打开逻辑文件时,获知逻辑文件中存储的主配置文件信息,然后读取主配置文件,以及进一步读取在主配置文件中列出的所有物理文件目录中所有物理文件的配置文件,简称“配置文件”;进一步在内存中建立“逻辑文件全局控制块”,“逻辑文件全局控制块”中包含一个“逻辑文件数据存储分布表”,“逻辑文件数据存储分布表”中记录逻辑文件的大小以及各离散数据段所对应的物理文件;
第3、当对逻辑文件写数据时,根据写访问请求的偏移量和长度,在内存中此逻辑文件的“逻辑文件数据存储分布表”中查找对应的一个或者多个物理文件实际偏移量和长度;
第3.1、若找到对应的一个或多个物理文件实际偏移量和长度,则将相应长度的数据依次写入一个或多个物理文件相应的偏移量所标明位置。若上述操作成功,写操作成功返回;否则写操作失败返回;
第3.2、若未找到对应的一个或多个物理文件实际偏移量和长度,则根据内存中此逻辑文件的“逻辑文件全局控制块”中给定的写目录集合和写策略,选择其中的物理文件***目录,在此目录中建立一个新的物理文件以及新物理文件对应的配置文件,将待写入的数据写入新的物理文件中,并更新此物理文件对应的配置文件信息;若上述操作成功,则进一步更新内存中此逻辑文件的“逻辑文件全局控制块”信息,写操作成功返回;否则写操作失败返回;
第3.3、若写操作的部分数据找到对应的一个或多个物理文件实际偏移量和长度,写操作的另外一部分数据未找到对应的一个或多个物理文件实际偏移量和长度,则将此写操作分成若干个子的写操作;对于找到对应的一个或多个物理文件实际偏移量和长度的写操作数据,调用第3.1过程;对于未找到对应的一个或多个物理文件实际偏移量和长度的写操作数据,调用第3.2过程;若所有子的写操作都成功,则写操作成功返回;否则写操作失败返回;
第4、当读取逻辑文件时;根据读访问请求的偏移量和长度,在内存中此逻辑文件的“逻辑文件数据存储分布表”中查找对应的一个或多个物理文件实际偏移量和长度,若未查找到,则返回读失败;若查找到对应的一个或多个物理文件实际偏移量和长度,进一步读取“物理文件目录表”中对应的物理文件目录的“优先级”信息,然后按优先级依次读取一个或多个物理文件相应的偏移量和长度所标明的数据,并成功返回;
第5、关闭逻辑文件时,将内存中此逻辑文件的“逻辑文件全局控制块”信息更新到逻辑文件的主配置文件以及逻辑文件对应的多个物理文件的配置文件中;
第6、当删除逻辑文件时;需先读取逻辑文件,获知主配置文件信息,然后读取主配置文件,以及进一步读取在主配置文件中列出的所有物理文件目录中所有物理文件的配置文件。根据这些信息在物理文件***中依次删除关物理文件及物理文件所对应的配置文件,进一步删除“逻辑文件的主配置文件”,最后删除逻辑文件。
2.根据权利要求1所述的方法,其特征在于,逻辑文件的主配置文件主要包括如下信息:逻辑文件大小、物理文件名前缀、单个物理文件大小最大值、主物理文件目录集合、主物理文件目录集合、物理文件目录集合、写策略;其中,物理文件名前缀为逻辑文件所包含的所有物理文件的文件名前缀;单个物理文件大小最大值限制单个物理文件最大容量;主物理文件目录集合为对逻辑文件可写操作的物理文件目录集合;物理文件目录集合为逻辑文件所包含的所有物理文件所对应的物理文件目录集合。
3.根据权利要求1所述的方法,其特征在于,针对逻辑文件所包含的所有物理文件,每个物理文件有一个对应的配置文件,主要包括如下信息:物理文件大小、有效起始位置、逻辑文件偏移量、长度;其中,“有效起始位置”指逻辑文件在此物理文件中第一个字节有效数据的位置相对于物理文件起始的长度;“逻辑文件偏移量”指辑文件在此物理文件中第一个字节有效数据相对于逻辑文件起始的长度;“长度”指逻辑文件在此物理文件中第一个字节有效数据开始连续有效数据的最大长度。
4.根据权利要求1、2所述的方法,其特征在于,逻辑文件的主配置文件中的写策略指明对逻辑文件写操作过程中具体在主物理文件目录集合中的哪些目录中可涉及新建物理文件及配置文件,写策略包括随机选择写目录、依次轮换选择写目录、指定写目录、冗余写目录等,并可进一步扩充策略。
5.根据权利要求1所述的方法,其特征在于,每个已打开的逻辑文件在内存中有一个唯一对应的“逻辑文件全局控制块”,“逻辑文件全局控制块”包括如下信息:逻辑文件inode号、逻辑文件名、逻辑文件大小、物理文件名前缀、单个物理文件大小最大值、主物理文件目录表指针、物理文件目录表指针、数据存储分布表指针、写策略;其中,逻辑文件inode号为此逻辑文件的唯一索引号;主物理文件目录表指针指向“主物理文件目录表”,表明可写入的物理文件目录集合;物理文件目录表指针指向“物理文件目录表”,表明所有物理文件目录集合;数据存储分布表指针指向“逻辑文件数据存储分布表”;“主物理文件目录表”和“物理文件目录表”中的每一个物理文件目录对应一个“优先级”“优先级”表明读操作的优先顺序,不同的物理文件目录可以有相同的“优先级”。
6.根据权利要求1,5所述的方法,其特征在于,“逻辑文件数据存储分布表”存放当前逻辑文件数据在多个物理文件中存储的实际情况,“逻辑文件数据存储分布表”包括如下信息:物理文件目录、物理文件名、物理文件大小、有效起始位置、逻辑文件偏移量、长度;“逻辑文件数据存储分布表”的数据与逻辑文件所包含的所有物理文件的配置文件的数据一致,含义一致。
7.根据权利要求1,3所述的方法,其特征在于,逻辑文件所包含多个物理文件可以分散存储到多个不同的文件***目录下,也可以存储到网络上的文件***和存储空间中;本发明支持采用单独的计算装置对外提供逻辑文件服务,计算装置与各种物理存储装置直接线缆连接或者网络连接。
8.根据权利要求1所述的方法,其特征在于,逻辑文件支持任意的黑洞文件,即逻辑文件中部分偏移量及长度所指的数据无需存在;逻辑文件支持由高层应用程序将其由一个不带黑洞的文件转变为带黑洞的文件,也支持由带黑洞的文件转变为不带黑洞的文件。
9.根据权利要求1所述的方法,其特征在于,对逻辑文件的写操作可支持事务型写操作;
具体方法如下:
第9.1、建立一个新的事务;
第9.2、根据写访问请求的偏移量和长度,并根据写策略,直接建立新的物理文件以及对应的配置文件,并写入实际数据;
第9.3、若第9.2操作失败,则回滚新事务,写操作失败返回;否则执行第9.4;
第9.4、在“逻辑文件数据存储分布表”中查找对应偏移量和长度的已存在的一个或多个物理文件,若不存在相应物理文件,则执行第9.6;
第9.5、若物理文件所包含的有效数据完全在中原始写访问请求的偏移量和长度范围内,则删除该物理文件及配置文件,并在“逻辑文件数据存储分布表”中删除对应信息;若物理文件所包含的有效数据部分在写访问请求的偏移量和长度范围内,则在“逻辑文件数据存储分布表”中将此物理文件的偏移量和长度信息中去除原始写访问请求的偏移量和长度范围;若操作失败,则回滚新事务,写操作失败返回;否则执行第9.6;
第9.6、将新的物理文件以及配置文件中相关信息添加到内存中此逻辑文件的“逻辑文件数据存储分布表”中;若操作失败,则回滚新事务,写操作失败返回;否则执行第9.7;
第9.7、新事务成功提交,写操作成功返回。10.根据权利要求1所述的方法,其特征在于,逻辑文件可支持多个物理文件的冗余存储,即多个物理文件包含逻辑文件中相同的数据,这一特征由写策略的冗余写目录来标识;此时写操作将向符合条件的多个物理文件中写入相同的数据,而读操作时按照多个物理文件所在物理目录的优先级来按序读取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210493369.1A CN102982151B (zh) | 2012-11-27 | 2012-11-27 | 多个物理文件合并为一个逻辑文件的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210493369.1A CN102982151B (zh) | 2012-11-27 | 2012-11-27 | 多个物理文件合并为一个逻辑文件的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102982151A true CN102982151A (zh) | 2013-03-20 |
CN102982151B CN102982151B (zh) | 2015-04-01 |
Family
ID=47856168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210493369.1A Expired - Fee Related CN102982151B (zh) | 2012-11-27 | 2012-11-27 | 多个物理文件合并为一个逻辑文件的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102982151B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150402A (zh) * | 2013-03-27 | 2013-06-12 | 网宿科技股份有限公司 | 基于索引编码的虚拟文件***及建立方法、访问方法 |
CN103310158A (zh) * | 2013-06-14 | 2013-09-18 | 大唐移动通信设备有限公司 | 文件处理方法及装置 |
CN104077409A (zh) * | 2014-07-14 | 2014-10-01 | 北京龙存科技有限责任公司 | 一种基于重组文件元数据实现快速文件切割和合并的方法 |
CN106528571A (zh) * | 2015-09-14 | 2017-03-22 | 北京中质信维科技有限公司 | 一种用于移动终端的文件管理方法及*** |
CN106528763A (zh) * | 2016-10-28 | 2017-03-22 | 北京海誉动想科技股份有限公司 | 两路及多路文件块合并的方法 |
CN107643892A (zh) * | 2017-08-18 | 2018-01-30 | 北京趣拿软件科技有限公司 | 接口处理方法、装置、存储介质和处理器 |
CN108228673A (zh) * | 2016-12-22 | 2018-06-29 | 上海凯翔信息科技有限公司 | 一种文件快速合并的方法和*** |
CN108920106A (zh) * | 2015-01-28 | 2018-11-30 | 北京知投家知识产权运营有限公司 | 一种闪存存储阵列的实现方法 |
CN115421649A (zh) * | 2022-08-02 | 2022-12-02 | 佳源科技股份有限公司 | 一种可索引、可扩展的参数文件分片存储***及方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107329808B (zh) * | 2017-06-29 | 2020-12-18 | 联想(北京)有限公司 | 一种信息处理方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1545047A (zh) * | 2003-11-24 | 2004-11-10 | 华中科技大学 | 一种存储虚拟化***的元数据层次管理方法及其*** |
CN101013397A (zh) * | 2007-02-08 | 2007-08-08 | 深圳万利达电子工业有限公司 | 一种nandflash文件***实现方法 |
US7461098B2 (en) * | 2001-04-03 | 2008-12-02 | Qnx Software Systems Gmbh & Co. Kg | Computer file management system |
CN101729529A (zh) * | 2009-11-10 | 2010-06-09 | 中兴通讯股份有限公司 | 一种实时流文件存储装置及方法 |
CN102523301A (zh) * | 2011-12-26 | 2012-06-27 | 深圳市创新科信息技术有限公司 | 一种云存储中在客户端缓存数据的方法 |
-
2012
- 2012-11-27 CN CN201210493369.1A patent/CN102982151B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7461098B2 (en) * | 2001-04-03 | 2008-12-02 | Qnx Software Systems Gmbh & Co. Kg | Computer file management system |
CN1545047A (zh) * | 2003-11-24 | 2004-11-10 | 华中科技大学 | 一种存储虚拟化***的元数据层次管理方法及其*** |
CN101013397A (zh) * | 2007-02-08 | 2007-08-08 | 深圳万利达电子工业有限公司 | 一种nandflash文件***实现方法 |
CN101729529A (zh) * | 2009-11-10 | 2010-06-09 | 中兴通讯股份有限公司 | 一种实时流文件存储装置及方法 |
CN102523301A (zh) * | 2011-12-26 | 2012-06-27 | 深圳市创新科信息技术有限公司 | 一种云存储中在客户端缓存数据的方法 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150402B (zh) * | 2013-03-27 | 2016-09-21 | 网宿科技股份有限公司 | 基于索引编码的虚拟文件***及建立方法、访问方法 |
CN103150402A (zh) * | 2013-03-27 | 2013-06-12 | 网宿科技股份有限公司 | 基于索引编码的虚拟文件***及建立方法、访问方法 |
CN103310158A (zh) * | 2013-06-14 | 2013-09-18 | 大唐移动通信设备有限公司 | 文件处理方法及装置 |
CN103310158B (zh) * | 2013-06-14 | 2016-03-09 | 大唐移动通信设备有限公司 | 文件处理方法及装置 |
CN104077409A (zh) * | 2014-07-14 | 2014-10-01 | 北京龙存科技有限责任公司 | 一种基于重组文件元数据实现快速文件切割和合并的方法 |
CN104077409B (zh) * | 2014-07-14 | 2017-12-12 | 北京龙存科技有限责任公司 | 一种基于重组文件元数据实现快速文件切割和合并的方法 |
CN108920106A (zh) * | 2015-01-28 | 2018-11-30 | 北京知投家知识产权运营有限公司 | 一种闪存存储阵列的实现方法 |
CN106528571A (zh) * | 2015-09-14 | 2017-03-22 | 北京中质信维科技有限公司 | 一种用于移动终端的文件管理方法及*** |
CN106528763A (zh) * | 2016-10-28 | 2017-03-22 | 北京海誉动想科技股份有限公司 | 两路及多路文件块合并的方法 |
CN106528763B (zh) * | 2016-10-28 | 2019-11-01 | 北京海誉动想科技股份有限公司 | 两路及多路文件块合并的方法 |
CN108228673A (zh) * | 2016-12-22 | 2018-06-29 | 上海凯翔信息科技有限公司 | 一种文件快速合并的方法和*** |
CN108228673B (zh) * | 2016-12-22 | 2021-09-03 | 上海凯翔信息科技有限公司 | 一种文件快速合并的方法和*** |
CN107643892A (zh) * | 2017-08-18 | 2018-01-30 | 北京趣拿软件科技有限公司 | 接口处理方法、装置、存储介质和处理器 |
CN115421649A (zh) * | 2022-08-02 | 2022-12-02 | 佳源科技股份有限公司 | 一种可索引、可扩展的参数文件分片存储***及方法 |
CN115421649B (zh) * | 2022-08-02 | 2023-10-20 | 佳源科技股份有限公司 | 一种可索引、可扩展的参数文件分片存储***及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102982151B (zh) | 2015-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102982151B (zh) | 多个物理文件合并为一个逻辑文件的方法 | |
CN107180092B (zh) | 一种文件***的控制方法、装置及终端 | |
CN104395904B (zh) | 高效的数据对象存储和检索 | |
CN103229173B (zh) | 元数据管理方法及*** | |
CN103020315B (zh) | 一种基于主从分布式文件***的海量小文件存储方法 | |
CN100504854C (zh) | 文件管理方法 | |
CN101916299B (zh) | 一种基于文件***的三维空间数据存储管理方法 | |
CN103106286B (zh) | 元数据的管理方法和装置 | |
US20130262758A1 (en) | Systems and Methods for Tracking Block Ownership | |
CN101796514B (zh) | 对象存储***的管理方法 | |
CN100424699C (zh) | 一种属性可扩展的对象文件*** | |
CN103502926A (zh) | 基于扩展区的存储架构 | |
CN106682110B (zh) | 一种基于哈希格网索引的影像文件存储和管理***及方法 | |
CN105493043A (zh) | 用于虚拟机转换的***和方法 | |
CN101916290B (zh) | 内存数据库的管理方法和装置 | |
CN102693286B (zh) | 一种对文件内容与元数据进行组织管理的方法 | |
CN103282899A (zh) | 文件***中数据的存储方法、访问方法及装置 | |
CN105760113A (zh) | 基于nand闪存的高速存储设备及文件管理方法 | |
CN103279487A (zh) | 一种地图瓦片缓存的组织和管理方法 | |
CN101488153A (zh) | 嵌入式Linux下大容量闪存文件***的实现方法 | |
CN107463447A (zh) | 一种基于远程直接非易失内存访问的b+树管理方法 | |
CN102915340A (zh) | 一种扩展的基于b+树对象文件*** | |
CN101986649A (zh) | 应用于电信行业计费***的共享数据中心 | |
CN105981013B (zh) | 一种基于稀疏文件的数据库存储模型的***和方法 | |
CN103473258A (zh) | 云存储文件*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150401 Termination date: 20181127 |