CN101669118A - 文件管理方法 - Google Patents

文件管理方法 Download PDF

Info

Publication number
CN101669118A
CN101669118A CN200880010343A CN200880010343A CN101669118A CN 101669118 A CN101669118 A CN 101669118A CN 200880010343 A CN200880010343 A CN 200880010343A CN 200880010343 A CN200880010343 A CN 200880010343A CN 101669118 A CN101669118 A CN 101669118A
Authority
CN
China
Prior art keywords
file
lock
data
function
task
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.)
Pending
Application number
CN200880010343A
Other languages
English (en)
Inventor
亚历克西斯·塔马斯
阿莫里·格兰贝尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STG Interactive
Original Assignee
STG Interactive
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by STG Interactive filed Critical STG Interactive
Publication of CN101669118A publication Critical patent/CN101669118A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • G06F16/1767Concurrency control, e.g. optimistic or pessimistic approaches
    • G06F16/1774Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明涉及一种文件管理方法,包括组织数据文件库的第一步骤,该第一步骤包括创建M层目录的树形图,每个目录包含N个目录,M是大于1的整数,该方法还包括记录数据文件的记录步骤,该记录步骤包括:对待记录的数据文件Fi的识别码应用哈希函数,根据前一步骤的结果在树形图中确定目标多层目录Rdi的路径,在由所述哈希函数确定的所述目录Rdi中在由数据文件的识别码决定的位置记录数据文件,该方法还包括读取数据文件的读取步骤,该读取步骤包括:对待读取的数据文件Fj的识别码应用同一哈希函数,根据前一步骤的结果在树形图中确定目标目录Rcj的路径,在由所述哈希函数确定的所述目录Rcj中在由数据文件的识别码决定的位置读取数据文件。

Description

文件管理方法
本发明涉及数字文件管理领域,尤其涉及在记录介质上对数字文件的记录、读取和修改。更确切地,本发明涉及与电脑操作系统(operatingsystem)所专有的文件系统(file system)相互作用的数据文件管理方法和系统。
通常,根据存储器空间的可用性,将新的数据文件记录在存储器(例如硬盘)的位置中。在用硬盘进行记录的情况下,硬盘在格式化时被组织成初始化的块。这些块在格式化时被分配到存储器的物理扇区上。
计算机上的数据文件管理是通过计算机操作系统的文件系统来实现的。
操作系统的文件系统使用记录介质上的一个或多个分区。分区包括用于记录任意数据文件的存储空间,以及记录存储空间的特征、尤其是文件在存储空间中的地址的索引空间。
某些文件构成目录,将与数据文件和属于同一分区的目录相关的特征的列表集中在一起。
对于存储容量较大(例如几千兆字节)的记录介质,当要被记录、读取或修改的数据文件的数量在同一目录中变得较大时,文件系统的索引系统的性能恶化。实际上,目录类文件的组织包括含有大量待处理事件的列表,这在数据文件的数量达到数万时会以造成严重阻碍的方式增加存取文件的时间。在数据文件必须重命名或删除时引起的目录类文件的碎片化现象加剧了所述性能恶化。
通过Linux EXT3文件系统已知的另一组织方式,提出了一种目录类文件的组织,包括B-树类型的内部索引系统,以及针对每个数据文件,基于哈希函数(fonction de hachage)的结果来计算数据文件名的摘要,以便在含有大量数据文件的目录中加速搜索。该解决方案允许在同一目录中操作十多万数据文件。然而,超过某一阈值,哈希函数的极限使得不再能够避免引起为不同名字的两个数据文件分配相同摘要的冲突。对于EXT3文件系统,对于Linux 2.6内核版本,一旦同一目录中的数据文件的数量达到约500000,该极限出现。
在现有技术中已知专利US5742817,描述了一种文件服务器,提出了目的在于简化寻址处理的文件查询方法。该文献提出通过由文件管理系统自动分配的INODE识别处理来加速存取文件。该处理包括从该识别码中提取文件系统中的子目录所对应的三组十六进制数据。
美国专利申请US2004/0236761描述了将文件记录在一系列目录和子目录中的系统。在树形图的最后一层,可进行包括以下步骤的处理:根据文件名计算摘要以确定记录了所述文件的“HASH SLOT(哈希时隙)”子目录。
换言之,以传统的树形图形式组织存储器空间,在树形图的最后一层,一个处理在单一层次的集合中确定子目录。
该方案限制了可以被记录的文件的数量。文件管理系统的寻址方式限制了子目录的数量,例如对于UNIX类型的管理系统为65536。
此外,上述各子目录内部的文件的数量也由同样的界限所限制。
总之,容量受到限制,为了充分使用容量,必须使子目录的数量最大化。而在单一“耙形”层子目录中,子目录数量限制了文件管理系统的性能。
本发明的目的在于通过提出一种稳定耐用而快速的文件管理方法来克服该缺点,从而允许操作的数据文件的数量仅受可用的存储空间限制,而不受由文件系统对数据文件名称执行的处理的限制。因此根据本发明的方案不限制使用大容量存储器的能力,这是由于唯一的限制是这些存储器的物理容量,而不再是文件系统要求的操作模式。对于例如文件服务器应用,该方案允许管理很大数量的数据文件。
根据最广泛的含义,本发明涉及一种文件管理方法,包括组织数据文件库的第一步骤,该第一步骤包括创建M层目录的树形图,每个目录包含N个目录,M是大于1的整数,该方法还包括记录数据文件的记录步骤,该记录步骤包括:
-对待记录的数据文件Fi的识别码应用哈希函数,
-根据前一步骤的结果,在具有多个层的树形图中,确定目标目录Rdi的路径,
-在由所述哈希函数确定的所述目录Rdi中,在由数据文件的识别码决定的位置,记录数据文件,
该方法还包括读取数据文件的读取步骤,该读取步骤包括:
-对待读取的数据文件Fj的识别码应用同一哈希函数,
-根据前一步骤的结果,在树形图中确定目标目录Rcj的路径,
-在由所述哈希函数确定的所述目录Rcj中,在由数据文件的识别码决定的位置,读取数据文件。
为了并行使用存储单元并改进性能(存取速度和/或存储器容量),根据一个具体实施方式,本发明涉及根据上述权利要求所述的一种文件管理方法,其特征在于,数据文件分布在Q个存储单元中,每个存储单元对应于P层目录,每个目录包含N个目录。
与专利申请US2004/0236761的教导相反,该方案导致缩减了树形图的各层的目录的数量,这允许改进性能(尤其是在二维树形图中存取数据文件的速度)并使得可被记录的数据文件的数量能够几乎不受限制。该限制不再取决于文件管理系统的限制,而仅受存储装置的物理容量限制。
与现有技术的方案相反,本发明通过应用哈希函数,不再在给定的目录中分配地址,而是在具有多个层的树形图中分配路径。在最后一层的子目录中的位置不再由哈希函数分配,而是由与数据文件的识别码相关联的名称分配。
优选地,N等于16,哈希函数是SHA1函数。
文件管理的一个补充问题涉及在两个应用同时存取同一数据文件的情况下保护数据的完整性。
在大多数操作系统中,已知在文件系统层次上锁定数据文件,从而允许在写入或读取过程中暂时禁止存取数据文件。这些方案由文件系统通常基于驻留在存储器中的锁定表来管理。这些方案的缺点在于,在通过网络存取文件的情况下,从多个远程计算机存取同一文件时,可能产生干扰或错误。
专利US6850969提出允许避免使用锁定的一种特别方案。该专利提出经验性监控一个应用在打开的数据文件中记录修改的可能性,并保证在称为原子操作的所述操作期间,没有任何其他应用介入同一数据文件。在本专利的意义上,原子操作是指以连续方式执行的不可分割的任务集,在称为原子操作的全部任务结束之前,没有被中断和受第三方操作干扰的可能。
该方案令人不满意,因为当多个应用同时对公共文件集进行处理时,该方案阻止某些操作完成。尽管该方案允许避免改变现有的数据文件,但会有损于并发的安全的存取。实际上,该方案要求每个处理都在上一处理完成之后介入。因此该方案确实不适于对包含例如XML格式的数据的文件进行处理,所述文件可能在任何时间被不同的并发应用所使用。
为此,本发明还涉及一种文件管理方法,其特征在于,每个数据文件包括头部和主体。头部包括数据文件在文件管理系统中的状态参数。主体包括文件的可修改内容。该方法包括存取目标数据文件的步骤,使所述状态参数更改为禁止新的存取的状态。
对所述数据文件的管理独立于计算机操作系统的文件系统。
通过阅读下面与非限定性实施例相对应的描述,并参照附图,可更好地理解本发明,在附图中:
-图1示出根据本发明的文件管理方法实施的树形图的示意图,
-图2至图8示出文件管理的功能示意图,
-图9示出与客户-服务器模式相对应的、通过网络使用文件管理系统的示意图。
图1示出根据本发明的文件管理方法实施的树形图的示意图。
在所描述的示例中,按照细分为M=5层(1至5)的结构来组织数据文件。除最后一层5之外,每层(1至4)的每个目录都包含N=16个目录(10至12)、(20至25)、(30至35)、(40至45)。16个目录中每一个的名称对应于0和f之间的十六进制数字。结构中包含的目录的总数为16+162+163+……+16M
在所描述的示例中,树形图包括:
-层1到4的69904个目录,不包含数据文件,而仅包含上层的目录;
-层5的1048576个目录(50至55);每个目录包含允许存储数据文件的文件。
最后一层5的各目录(50至55)可以包含数量L受限的数据文件,L被选为较小,例如约为1000,以便允许快速的存取时间,无论何种计算机操作系统的文件系统都可适用。
为数据文件分配存储器位置
当创建由字符串形成的独特使用名称所表示的新数据文件时,本方法包括对代表了使用名称的该字符串应用哈希函数Hi,该步骤的结果由以十六进制形式表示的值构成。对于哈希函数SHA1,十六进制形式的结果包括40个0和f之间的十六进制数字。
本方法包括,在前面限定的目录的树形图的情况下,基于来自哈希函数的所述结果来在所述树形图中确定目录的路径。
来自哈希函数的结果的起始M个数字的每个数字的值(rang)对应于目录树形图的层次。
如果以使用名称“myfile”为例,则应用SHA1函数返回值“b3580ab45cb088ba47ff070aa81c2dae1be56ca2”。
层1的目录是带有名称“b”的目录,对应于SHA1值的第一个字符,层2的目录是“3”,对应于第二个字符,对于5个层(1至5)以此类推。在最后一层目录5中的位置由构成使用名称的各个字符的八位字节的具有两个数字的十六进制表示构成。对于名称“myfile”,文件的位置和名称是“6d7966696c65”,“6d”对应于字符“m”的具有两个数字的十六进制表示,“79”对应于字符“y”的具有两个数字的十六进制表示,“66”对应于字符“f”的具有两个数字的十六进制表示,以此类推。
对于需要用多个八位字节来编码的字符,八位字节的整体将依次以这种形式表示。
由于数据文件的使用名称的独特性,文件的表示必然是独特的,这是因为该表示产生于基于哈希函数计算出的位置与以独特的方式基于使用名称计算出的数据文件名称的组合。
该方案允许以等概率的方式并且以最大离散度将数据文件分配到目录树形图的层M的目录中。只有层M包含数据文件,中间层不包含数据文件并仅用于将文件分配到层M的目录中。
在层M的各目录内部,数据文件的数量是适当的,例如约为1000,这导致了快速的存取时间。可以在层M的树形图中创建的数据文件的最大数量等于1000×16M。例如,对于M=5,可以在层M的目录树形图中创建、写入或读取约十亿个数据文件。
数据文件的创建、写入、读取和删除
第一步骤包括,通过应用前面提到的哈希函数以及基于使用名称计算文件名称,来基于文件的使用名称确定文件在树形图中的存取路径及其相关的文件名称。该步骤允许确定文件被记录在层M的哪一目录中及文件在该目录中的位置。
对同一数据文件的并发存取
为了允许安全地管理对数据文件的存取,数据文件中每一个都包括头部和主体。主体包括文件的可以以直接存取的方式或以压缩或加密的方式修改的内容。该主体前面置有头部,该头部包含文件在文件管理系统中的状态参数。
系统性地,为了进行一系列任意操作(写入、读取、修改或删除),由处理对文件的存取表现为第一获取步骤,该第一获取步骤包括由另一个处理将头部的所述状态参数修改为禁止新的存取的状态。
当然,当文件处于由一个处理进行存取或使用过程中时,另一个处理在执行该初始获取步骤时将遇到禁止或等待提示。
另一个处理反复执行该初始获取步骤,直到目标文件重新处于允许存取的状态,或直到预定的期限引起存取尝试的中断。
一旦由处理完成了一系列操作,最后一个释放步骤将头部中的经修改的参数恢复为初始状态,从而允许另一个处理对数据文件进行存取。
图2至图8示出由本发明实施的功能结构。
获取现有数据文件的功能
图2示出用于获取现有数据文件所需的任务序列。
该功能采用如上所述基于使用名称而计算出的文件名称作为输入150。
第一任务100包括尝试在操作系统的文件系统层次上同时打开和锁定文件,通过要求打开和锁定文件阻止后面的处理打开和锁定该文件,直到关闭和解锁该文件。
该功能随后进行测试101以验证文件的打开和锁定:如果文件未被打开和锁定,则测试101的结果是否定的并且该功能进行第二测试102,第二测试102验证在进行尝试100时文件是否存在。在否定的回答的情况下,该功能送回错误103,错误103指示文件不存在。
在肯定的回答的情况下,测试104验证尝试100的次数是否超过阈值,或是否超过了时间期限,在否定的回答的情况下,在延时149之后进行新的尝试100;否则,该功能发回系统错误105。
如果测试101的结果是肯定的,则该功能在任务106中在文件头部的状态参数中读取文件的可用性状态。
该功能随后根据状态参数的值来进行文件可用性的测试107。
如果测试107的结果是否定的,这对应于不可用状态,则该功能执行在操作系统的文件系统层次上同时关闭和解锁文件的任务108。
该功能随后进行测试109,测试109验证尝试100的次数是否超过阈值,或是否超过了时间期限,在否定的回答的情况下,在延时149之后进行新的尝试100;否则,该功能发回错误110,错误110指示文件仍由当前处理占用。
如果测试107的结果是肯定的,则该功能执行将文件的不可用状态写入文件的头部的状态参数中的任务111,然后,执行计算文件获取识别码的任务112,将该识别码写入文件的头部的状态参数中的任务113,以及读取文件主体的任务114。任务115对应于对文件的主体的处理,以便提取文件的可修改内容。该处理根据文件的头部的状态参数来执行。该处理例如对应于对文件的可修改内容的解压或解密。最后的任务116包括在操作系统的文件系统层次上同时关闭和解锁文件。
该功能在结束151时作为输出送回对数据文件获取的确认、文件获取识别码以及文件的可修改内容。
获取新的数据文件的功能
图3示出用于获取新的数据文件所需的任务序列。
该功能采用如上所述基于使用名称而计算出的文件名称作为输入250。
第一任务200包括尝试在操作系统的文件系统层次上同时创建、打开和锁定新的文件,通过要求创建、打开和锁定文件阻止后面的处理打开和锁定该文件,直到关闭和解锁该文件。
该功能随后进行测试201以验证文件的创建、打开和锁定:如果文件未被创建、打开和锁定,则测试201的结果是否定的并且该功能进行第二测试202,第二测试202验证在尝试200时文件是否存在。
在肯定的回答的情况下,该功能发回错误204,指示文件已经存在。
在否定的回答的情况下,该功能发回指示系统错误的错误203。
如果测试201的结果是肯定的,则该功能执行创建和写入具有空文件主体的文件的头部的任务205,然后执行在文件的头部的状态参数中写入文件的不可用状态的任务206,然后执行计算文件获取识别码的任务207,将该识别码写入文件的头部的状态参数中的任务208。最后的任务209包括在操作系统的文件系统层次上同时关闭和解锁文件。
该功能在结束251时,作为输出送回对数据文件获取的确认和文件获取识别码。
获取现有数据文件(如果所述数据文件不存在则创建数据文件)的功
图4示出用于获取现有数据文件(如果不存在则创建数据文件)所需的任务序列。
该功能采用如上所述基于使用名称而计算出的文件名称作为输入350。
第一任务300包括尝试在操作系统的文件系统层次上同时打开和锁定文件,如果文件不存在则创建文件,通过要求打开和锁定文件阻止后面的处理打开和锁定该文件,直到关闭和解锁该文件。
该功能随后进行测试301以验证文件的打开和锁定:如果文件未被打开和锁定,则测试301的结果是否定的并且该功能进行第二测试302,第二测试302验证在尝试300时文件是否存在。在否定的回答的情况下,该功能发回系统错误303。
在肯定的回答的情况下,测试304验证尝试300的次数是否超过阈值,或是否超过了时间期限,在否定的回答的情况下,在延时349之后进行新的尝试300;否则,该功能发回系统错误305。
如果测试301的结果是肯定的,则该功能随后进行测试306以验证在尝试300中是否创建了文件:如果未创造文件,则测试306的结果是否定的并且该功能在执行任务307时在文件的头部的状态参数中读取文件的可用性状态。
该功能随后根据状态参数的值来进行文件可用性的测试308。
如果测试308的结果是否定的,这对应于不可用状态,则该功能执行在操作系统的文件系统层次上同时关闭和解锁文件的任务309。
该功能随后进行测试310,测试310验证尝试300的次数是否超过阈值,或是否超过了时间期限,在否定的回答的情况下,在延时349之后进行新的尝试300;否则,该功能发回错误311,错误311指示文件仍由当前处理占用。
如果测试308的结果是肯定的,则该功能执行将文件的不可用状态写入文件的头部的状态参数中的任务312,然后执行计算文件获取识别码的任务313,将该识别码写入文件的头部的状态参数中的任务314,以及读取文件主体的任务315。任务316对应于对文件主体的处理,以便提取文件的可修改内容。该处理根据文件的头部的状态参数来进行。该处理例如对应于对文件的可修改内容的解压或解密。任务317包括在操作系统的文件系统层次上同时关闭和解锁文件。
该功能在结束351时,作为输出送回对数据文件获取的确认、表示未创建文件的通知、文件获取识别码以及文件的可修改内容。
如果测试306的结果是肯定的,则该功能执行创建和写入具有空文件主体的文件的头部的任务318,然后执行将文件的不可用状态写入文件的头部的状态参数中的任务319,然后执行计算文件获取识别码的任务320,将该识别码写入文件的头部的状态参数中的任务321。最后的任务322包括在操作系统的文件系统层次上同时关闭和解锁文件。
该功能在结束352时作为输出送回对数据文件获取的确认、表示创建了文件的通知以及文件获取的识别码。
在不修改数据的情况下释放获取的数据文件的功能
图5示出用于在不改变数据的情况下释放获取的数据文件所需的任务序列。
该功能采用如上所述基于使用名称而计算出的文件名称以及在前述获取数据文件时送回的获取识别码作为输入450。
第一任务400包括尝试在操作系统的文件系统层次上同时打开和锁定文件,通过要求打开和锁定文件阻止后面的处理打开和锁定该文件,直到关闭和解锁该文件。
该功能随后进行测试401以验证文件的打开和锁定:如果文件未被打开和锁定,则测试401的结果是否定的并且该功能进行第二测试402,第二测试402验证在尝试400时文件是否存在。在否定的回答的情况下,该功能送回错误403,错误403指示文件不存在。
在肯定的回答的情况下,测试404验证尝试400的次数是否超过阈值,或是否超过了时间期限,在否定的回答的情况下,在延时449之后进行新的尝试400;否则,该功能送回系统错误405。
如果测试401的结果是肯定的,则该功能在执行任务406时在文件的头部的状态参数中读取文件的可用性状态。
该功能随后根据状态参数的值来进行文件可用性的测试407。
如果测试407的结果是肯定的,则该功能执行在操作系统的文件系统层次上同时关闭和解锁文件的任务408,并送回错误409,错误409表示未获取文件。
如果测试407的结果是否定的,这对应于不可用状态,则该功能在执行任务410时,读取文件的头部中的获取识别码。
该功能随后进行测试411,测试411检查该识别码是否不同于作为输入提交的识别码。在肯定的回答的情况下,该功能执行在操作系统的文件系统层次上同时关闭和解锁文件的任务412,并且送回错误413,错误413表示作为输入提交的获取识别码无效。
在否定的回答的情况下,该功能执行删除文件的头部的状态参数中的获取识别码的任务414,然后执行将可用性状态写入文件的头部中的任务415。最后的任务416包括在操作系统的文件系统层次上同时关闭和解锁文件。
该功能在结束451时作为输出送回对数据文件释放的确认。
在修改数据的情况下释放获取的数据文件的功能
图6示出用于在修改数据的情况下释放获取的数据文件所需的任务序列。
该功能采用如上所述基于使用名称而计算出的文件名称、在前述获取数据文件时送回的获取识别码以及文件的可修改内容作为输入550。
第一任务500包括尝试在操作系统的文件系统层次上同时打开和锁定文件,通过要求打开和锁定文件阻止后面的处理打开和锁定该文件,直到关闭和解锁该文件。
该功能随后进行测试501以验证文件的打开和锁定:如果文件未被打开和锁定,则测试501的结果是否定的并且该功能进行第二测试502,第二测试502验证在尝试500时文件是否存在。在否定的回答的情况下,该功能送回错误503,错误503指示文件不存在。
在肯定的回答的情况下,测试504验证尝试500的次数是否超过阈值,或是否超过了时间期限,在否定的回答的情况下,在延时549之后进行新的尝试500;否则,该功能送回系统错误505。
如果测试501的结果是肯定的,则该功能在执行任务506时在文件的头部的状态参数中读取文件的可用性状态。
该功能随后根据状态参数的值来进行文件可用性的测试507。
如果测试507的结果是肯定的,则该功能执行在操作系统的文件系统层次上同时关闭和解锁文件的任务508,并且送回错误509,错误509指示未获取文件。
如果测试507的结果是否定的,这对应于不可用状态,则该功能在执行任务510时,读取文件的头部中的获取识别码。
该功能随后进行测试511,测试511检查该识别码是否不同于作为输入提交的识别码。在肯定的回答的情况下,该功能执行在操作系统的文件系统层次上同时关闭和解锁文件的任务512,并且送回错误513,错误513表示作为输入提交的获取识别码无效。
在否定的回答的情况下,该功能执行删除文件的头部的状态参数中的获取识别码的任务514,然后执行将可用性状态写入文件的头部中的任务515,然后执行与对文件主体的处理相对应的任务516,以便将文件的可修改内容插入到文件主体中。该处理是根据文件的头部的状态参数来进行的并且对应于例如对文件的可修改内容的压缩或加密。该功能随后进行写入文件主体的任务517,最后的任务518包括在操作系统的文件系统层次上同时关闭和解锁文件。
该功能在结束551时作为输出送回对数据文件的释放的确认以及对文件内容的修改的确认。
在删除获取的数据文件的情况下释放所述数据文件的功能
图7示出用于在删除获取的数据文件的情况下释放所述数据文件所需的任务序列。
该功能采用如上所述基于使用名称而计算出的文件名称以及在前述获取数据文件时送回的获取识别码作为输入650。
第一任务600包括尝试在操作系统的文件系统层次上同时打开和锁定文件,通过要求打开和锁定文件阻止后面的处理打开和锁定该文件,直到关闭和解锁该文件。
该功能随后进行测试601以验证文件的打开和锁定:如果文件未被打开和锁定,则测试601的结果是否定的并且该功能进行第二测试602,第二测试602验证在尝试600时文件是否存在。在否定的回答的情况下,该功能送回错误603,错误603指示文件不存在。
在肯定的回答的情况下,测试604验证尝试600的次数是否超过阈值,或是否超过了时间期限,在否定的回答的情况下,在延时649之后进行新的尝试600;否则,该功能送回系统错误605。
如果测试601的结果是肯定的,则该功能在执行任务606时在文件的头部的状态参数中读取文件的可用性状态。
该功能随后根据状态参数的值来进行文件可用性的测试607。
如果测试607的结果是肯定的,则该功能执行在操作系统的文件系统层次上同时关闭和解锁文件的任务608,并且送回错误609,错误609指示未获取文件。
如果测试607的结果是否定的,这对应于不可用状态,则该功能在执行任务610时读取文件的头部中的获取识别码。
该功能随后进行测试611,测试611检查该识别码是否不同于作为输入提交的识别码。在肯定的回答的情况下,该功能执行在操作系统的文件系统层次上同时关闭和解锁文件的任务612,并且送回错误613,错误613表示在输入处提交的获取识别码无效。
在否定的回答的情况下,该功能执行删除文件的头部的状态参数中的获取识别码的任务614,然后执行将可用性状态写入文件的头部中的任务615。最后的任务616包括在操作系统的文件系统层次上同时关闭、解锁和删除文件。
该功能在结束651时作为输出送回对数据文件释放的确认以及对数据文件删除的确认。
在不获取现有数据文件的情况下简单读取现有数据文件的功能
图8示出用于在不获取现有数据文件的情况下简单读取现有数据文件所需的任务序列。
该功能采用如上所述基于使用名称而计算出的文件名称作为输入750。
第一任务700包括尝试在操作系统的文件系统层次上同时打开和锁定文件,通过要求打开和锁定文件阻止后面的处理打开和锁定该文件,直到关闭和解锁该文件。
该功能随后进行测试701以验证文件的打开和锁定:如果文件未被打开和锁定,则测试701的结果是否定的并且该功能进行第二测试702,第二测试702验证在尝试700时文件是否存在。在否定的回答的情况下,该功能送回错误703,错误703指示文件不存在。
在肯定的回答的情况下,测试704验证尝试700的次数是否超过阈值,或是否超过了时间期限,在否定的回答的情况下,在延时749之后进行新的尝试700;否则,该功能送回系统错误705。
如果测试701的结果是肯定的,则该功能在执行任务706时在文件的头部的状态参数中读取文件的可用性状态。
该功能随后根据状态参数的值来进行文件可用性的测试707。
如果测试707的结果是否定的,这对应于不可用状态,则该功能执行在操作系统的文件系统层次上同时关闭和解锁文件的任务708。
该功能随后进行测试709,测试709验证尝试700的次数是否超过阈值,或是否超过了时间期限,在否定的回答的情况下,在延时749之后进行新的尝试700;否则,该功能送回错误710,错误710指示文件仍由当前处理占用。
如果测试707的结果是肯定的,则该功能执行读取文件主体的任务711,随后执行处理文件主体的任务712,以便提取文件的可修改内容。该处理是根据文件的头部的状态参数来进行的。该处理对应于例如对文件的可修改内容的解压或解密。最后的任务713包括在操作系统的文件系统层次上同时关闭和解锁文件。
该功能在结束751时作为输出送回对数据文件的简单读取的确认以及文件的可修改内容。
其它的功能允许便于管理树形图,尤其是:
-读取数据文件的头部的状态参数,包括文件的可用性状态,
-强制释放未由处理释放的数据文件,
-通过树形图的子集列出树形图中包含的数据文件。
客户服务器模式
图9涉及一种特别的和优选的应用场合。图9示出用于通过网络使用根据本发明的文件管理系统(该模式对应于客户服务器模式)所需的任务序列。
在该场合中,文件管理系统安装在包括服务器软件801的服务器计算机800上。服务器计算机可由多个客户计算机802至804访问,所述客户计算机每个都包括客户软件805至807。客户软件和服务器软件之间的交互使用已知类型的网络传输协议,例如HTTP或优选为HTTPS类型的安全协议。
在该场合中,本发明使用应用协议808,应用协议808允许通过“文件获取”或“文件释放”类型的指令来调用符合本发明的文件管理系统的功能。文件以多个子集809至811的形式分布在服务器计算机上,每个子集对应于根据本发明的称为“表”的树形图。数据文件的使用名称在协议中表示为“键”。
通过客户端软件在客户计算机中的一台上执行第一任务812。第一任务812包括调用针对表和键的获取、释放或简单读取的功能。
通过服务器软件在服务器计算机上执行第二任务813。第二任务813包括执行由客户软件所请求的功能。
通过服务器软件在服务器计算机上执行第三任务814。第三任务包括向客户软件发回所请求的功能的结果。
可选地,系统包括多个服务器,从而允许分配数据的存储负荷和容量。在该场合中,客户软件805至807包括根据表和键来选择服务器的规则。
服务器软件801还可以包括对执行过的操作的日志功能,以便允许在备份服务器上增量重构服务器计算机的树形图,而无需在备份服务器上对树形图进行完整的复制。

Claims (12)

1.一种文件管理方法,包括组织数据文件库的第一步骤,所述第一步骤包括创建M层目录的树形图,每个目录包含N个目录,M是大于1的整数,该方法还包括记录所述数据文件的记录步骤,所述记录步骤包括:
-对待记录的数据文件Fi的识别码应用哈希函数,
-根据前一步骤的结果,在具有多个层的所述树形图中,确定目标目录Rdi的路径,
-在由所述哈希函数确定的所述目录Rdi中,在由所述数据文件的识别码决定的位置,记录所述数据文件,
该方法还包括读取数据文件的读取步骤,所述读取步骤包括:
-对待读取的数据文件Fj的识别码应用同一哈希函数,
-根据前一步骤的结果,在所述树形图中确定目标目录Rcj的路径,
-在由所述哈希函数确定的所述目录Rcj中,在由所述数据文件的识别码决定的位置,读取所述数据文件。
2.根据前述权利要求所述的文件管理方法,其特征在于,所述数据文件分布在Q个存储单元中,每个存储单元对应于P层目录,每个目录包含N个目录。
3.根据前述权利要求中任一项所述的文件管理方法,其特征在于,N等于16,以及所述哈希函数是SHA1函数。
4.根据前述权利要求中任一项所述的文件管理方法,其特征在于,每个数据文件都包括头部和主体,所述主体包括文件的可修改内容,所述主体前面置有头部,该头部包括所述文件在文件管理系统中的状态参数,所述方法包括通过对一系列操作的处理来获取目标文件的预先获取步骤,该获取引起所述头部的参数中至少一个的状态改变,所述状态改变阻止另一处理进行获取,直到释放目标文件。
5.根据前述权利要求中任一项所述的文件管理方法,其特征在于,所述获取、读取和释放操作由客户软件控制,相应的步骤由服务器软件执行。
6.根据前述权利要求中任一项所述的文件管理方法,其特征在于,包括获取现有数据文件的步骤,该步骤采用基于使用名称而计算出的文件名称作为输入(150),所述步骤包括第一任务(100),所述第一任务(100)包括尝试在操作系统的文件系统层次上同时打开和锁定所述文件,通过要求打开和锁定所述文件阻止后面的处理打开和锁定所述文件,直到关闭和解锁所述文件。
7.根据前述权利要求中任一项所述的文件管理方法,其特征在于,包括获取新的数据文件的步骤,该步骤采用基于使用名称而计算出的文件名称作为输入(250),所述第一任务(200)包括尝试在操作系统的文件系统层次上同时创建、打开和锁定新的文件,通过要求创建、打开和锁定所述文件阻止后面的处理打开和锁定所述文件,直到关闭和解锁所述文件。
8.根据前述权利要求中任一项所述的文件管理方法,其特征在于,包括获取现有数据文件,若所述文件不存在则创建所述文件的步骤,所述功能采用基于使用名称而计算出的文件名称作为输入(350),所述第一任务(300)包括尝试在操作系统的文件系统层次上同时打开和锁定文件,如果所述文件不存在则创建所述文件,通过要求打开和锁定文件阻止后面的处理打开和锁定所述文件,直到关闭和解锁所述文件。
9.根据前述权利要求中任一项所述的文件管理方法,其特征在于,包括在不修改数据的情况下释放获取到的数据文件的步骤,所述功能采用如前所述基于使用名称而计算出的文件名称以及在前面获取数据文件时送回的获取识别码作为输入(450),所述第一任务(400)包括尝试在操作系统的文件系统层次上同时打开和锁定所述文件,通过要求打开和锁定文件阻止后面的处理打开和锁定所述文件,直到关闭和解锁所述文件。
10.根据前述权利要求中任一项所述的文件管理方法,其特征在于,包括在修改数据的情况下释放获取到的数据文件的步骤,所述功能采用如前所述基于使用名称而计算出的文件名称、在前面获取数据文件时送回的获取识别码以及所述文件的可修改内容作为输入(550),所述第一任务(500)包括尝试在操作系统的文件系统层次上同时打开和锁定所述文件,通过要求打开和锁定所述文件阻止后面的处理打开和锁定所述文件,直到关闭和解锁所述文件。
11.根据前述权利要求中任一项所述的文件管理方法,其特征在于,包括在删除获取到的数据文件的情况下释放所述数据文件的步骤,所述功能采用如前所述基于使用名称而计算出的文件名称以及在前面获取数据文件时送回的获取识别码作为输入(650),所述第一任务(600)包括尝试在操作系统的文件系统层次上同时打开和锁定所述文件,通过要求打开和锁定所述文件阻止后面的处理打开和锁定所述文件,直到关闭和解锁所述文件。
12.根据前述权利要求中任一项所述的文件管理方法,其特征在于,包括在不获取现有数据文件的情况下简单读取所述文件的步骤,所述功能采用如前所述基于使用名称而计算出的文件名称作为输入(750),所述第一任务(700)包括尝试在操作系统的文件系统层次上同时打开和锁定所述文件,通过要求打开和锁定所述文件阻止后面的处理打开和锁定所述文件,直到关闭和解锁所述文件。
CN200880010343A 2007-02-13 2008-02-12 文件管理方法 Pending CN101669118A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0753222A FR2912520B1 (fr) 2007-02-13 2007-02-13 Procede de gestion de fichiers.
FR0753222 2007-02-13

Publications (1)

Publication Number Publication Date
CN101669118A true CN101669118A (zh) 2010-03-10

Family

ID=38740236

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200880010343A Pending CN101669118A (zh) 2007-02-13 2008-02-12 文件管理方法

Country Status (9)

Country Link
US (1) US8504541B2 (zh)
EP (1) EP2130147A2 (zh)
JP (1) JP5123318B2 (zh)
KR (2) KR101471055B1 (zh)
CN (1) CN101669118A (zh)
CA (1) CA2678186A1 (zh)
FR (1) FR2912520B1 (zh)
IL (1) IL200252A0 (zh)
WO (1) WO2008113921A2 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102012896A (zh) * 2010-12-29 2011-04-13 深圳市五巨科技有限公司 一种实现文件内容批量修改的方法和装置
CN103890734A (zh) * 2011-10-23 2014-06-25 微软公司 遥测文件散列和冲突检测
CN107506395A (zh) * 2017-07-31 2017-12-22 合肥龙图腾信息技术有限公司 一种对打开状态文件重命名的方法及系统
CN111054082A (zh) * 2019-11-29 2020-04-24 珠海金山网络游戏科技有限公司 Unity资源数据集编码的方法
CN111295650A (zh) * 2019-12-05 2020-06-16 支付宝(杭州)信息技术有限公司 在基于区块链的系统中执行映射迭代

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102446221A (zh) * 2011-12-22 2012-05-09 南京联创科技集团股份有限公司 Bs结构软件中的动态树型结构目录检索方法
EP2775410A1 (en) * 2013-03-04 2014-09-10 My Virtual Reality Software AS Method for providing and receiving information representing physical features of a portion of a three-dimensional surface
US9323771B2 (en) * 2013-04-24 2016-04-26 Dell Products, Lp Efficient rename in a lock-coupled traversal of B+tree
US10453071B2 (en) * 2013-09-09 2019-10-22 UnitedLex Corp. Interactive case management system
CN105743721B (zh) * 2014-12-09 2019-02-15 博雅网络游戏开发(深圳)有限公司 数据上报方法、对上报数据进行处理的方法和装置
US10108624B1 (en) * 2015-02-04 2018-10-23 Amazon Technologies, Inc. Concurrent directory move operations using ranking rules
CN108197302A (zh) * 2018-01-29 2018-06-22 维沃移动通信有限公司 一种文件夹创建方法及移动终端
BE1027121B1 (fr) * 2019-03-15 2020-10-14 Christophe Dutordoir Système de vote électronique sur internet
CN111159109A (zh) * 2019-11-26 2020-05-15 陶壮壮 一种磁盘空间占用文件的检测方法及系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0463874A2 (en) * 1990-06-29 1992-01-02 Digital Equipment Corporation Cache arrangement for file system in digital data processing system
US5555388A (en) * 1992-08-20 1996-09-10 Borland International, Inc. Multi-user system and methods providing improved file management by reading
US5742817A (en) * 1995-12-08 1998-04-21 Emc Corporation Method and apparatus for file server addressing
US5864852A (en) * 1996-04-26 1999-01-26 Netscape Communications Corporation Proxy server caching mechanism that provides a file directory structure and a mapping mechanism within the file directory structure
US5893086A (en) * 1997-07-11 1999-04-06 International Business Machines Corporation Parallel file system and method with extensible hashing
JP2000357115A (ja) * 1999-06-15 2000-12-26 Nec Corp ファイル検索装置及びファイル検索方法
US6470345B1 (en) * 2000-01-04 2002-10-22 International Business Machines Corporation Replacement of substrings in file/directory pathnames with numeric tokens
US6687716B1 (en) 2000-09-13 2004-02-03 Radiant Data Corporation File consistency protocols and methods for carrying out the protocols
US6625591B1 (en) * 2000-09-29 2003-09-23 Emc Corporation Very efficient in-memory representation of large file system directories
US6965893B1 (en) * 2000-12-20 2005-11-15 Oracle International Corporation Techniques for granting shared locks more efficiently
US7062490B2 (en) * 2001-03-26 2006-06-13 Microsoft Corporation Serverless distributed file system
US6912645B2 (en) * 2001-07-19 2005-06-28 Lucent Technologies Inc. Method and apparatus for archival data storage
JP4154893B2 (ja) * 2002-01-23 2008-09-24 株式会社日立製作所 ネットワークストレージ仮想化方法
US8706760B2 (en) * 2003-02-28 2014-04-22 Microsoft Corporation Method to delay locking of server files on edit
US7412449B2 (en) * 2003-05-23 2008-08-12 Sap Aktiengesellschaft File object storage and retrieval using hashing techniques
JP2006185232A (ja) * 2004-12-28 2006-07-13 Hitachi Ltd 複数のプログラムの実行方法、プログラム変換方法及びこれを用いたコンパイラプログラム
US7434057B2 (en) 2005-01-27 2008-10-07 Hitachi, Ltd. System and method for watermarking in accessed data in a storage system

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102012896A (zh) * 2010-12-29 2011-04-13 深圳市五巨科技有限公司 一种实现文件内容批量修改的方法和装置
CN102012896B (zh) * 2010-12-29 2012-11-21 深圳市五巨科技有限公司 一种实现文件内容批量修改的方法和装置
CN103890734A (zh) * 2011-10-23 2014-06-25 微软公司 遥测文件散列和冲突检测
US9934229B2 (en) 2011-10-23 2018-04-03 Microsoft Technology Licensing, Llc Telemetry file hash and conflict detection
CN107506395A (zh) * 2017-07-31 2017-12-22 合肥龙图腾信息技术有限公司 一种对打开状态文件重命名的方法及系统
CN111054082A (zh) * 2019-11-29 2020-04-24 珠海金山网络游戏科技有限公司 Unity资源数据集编码的方法
CN111054082B (zh) * 2019-11-29 2023-10-13 珠海金山数字网络科技有限公司 Unity资源数据集编码的方法
CN111295650A (zh) * 2019-12-05 2020-06-16 支付宝(杭州)信息技术有限公司 在基于区块链的系统中执行映射迭代
CN111295650B (zh) * 2019-12-05 2023-05-16 支付宝(杭州)信息技术有限公司 在基于区块链的系统中执行映射迭代

Also Published As

Publication number Publication date
JP2010518501A (ja) 2010-05-27
KR101365861B1 (ko) 2014-02-20
KR20130130876A (ko) 2013-12-02
EP2130147A2 (fr) 2009-12-09
CA2678186A1 (en) 2008-09-25
FR2912520A1 (fr) 2008-08-15
WO2008113921A2 (fr) 2008-09-25
JP5123318B2 (ja) 2013-01-23
KR101471055B1 (ko) 2014-12-09
IL200252A0 (en) 2010-04-29
FR2912520B1 (fr) 2009-05-15
US8504541B2 (en) 2013-08-06
US20100106696A1 (en) 2010-04-29
KR20090116743A (ko) 2009-11-11
WO2008113921A3 (fr) 2009-09-24

Similar Documents

Publication Publication Date Title
CN101669118A (zh) 文件管理方法
EP3552343B1 (en) Method and apparatus for creating a finite blockchain
CN102629247B (zh) 一种数据处理方法、装置和系统
JP4685038B2 (ja) 隠蔽領域管理装置および方法
US10013312B2 (en) Method and system for a safe archiving of data
EP2363815B1 (en) System for permanent file deletion
US20200250327A1 (en) Method and system for secure storage of digital data
Wani et al. File system anti-forensics–types, techniques and tools
US20080282355A1 (en) Document container data structure and methods thereof
US20130311520A1 (en) Storage-service-provision apparatus,system, service-provision method, and service-provision program
US11494403B2 (en) Method and apparatus for storing off-chain data
CN114707043B (zh) 基于元宇宙区块链技术的档案管理方法与系统
WO2012063755A1 (ja) 分散アーカイブシステム並びにデータアーカイブ装置及びデータ復元装置
CN111382126B (zh) 删除文件及阻碍文件恢复的系统和方法
Vaidya et al. Commit signatures for centralized version control systems
CN101763318B (zh) 一种实现数据转储的方法和装置
CN111435286A (zh) 一种数据存储方法、装置和系统
CN110598467A (zh) 一种内存数据块完整性检验方法
CN116069729B (zh) 一种文档智能打包方法、系统及介质
US6684226B1 (en) Method for storing data in one or more files so that both previous and new versions of the data are separately accessible
US7685186B2 (en) Optimized and robust in-place data transformation
US7412450B1 (en) Method and apparatus for identifying tampering of data in a file system
EP4002143A1 (en) Storage of file system items related to a versioned snapshot of a directory-based file system onto a key-object storage system
KR102598227B1 (ko) 변경 불가 기능을 제공하는 분산 스토리지와 블록체인을 이용하여 대용량 콘텐츠의 무결성을 보장하는 데이터 관리 방법
KR102412979B1 (ko) 영상 데이터의 실시간 저장 시스템에서 데이터의 위변조를 방지하는 데이터 관리 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20100310