用于处理顺序文件的方法和装置的制作方法

文档序号:6608881阅读:154来源:国知局
专利名称:用于处理顺序文件的方法和装置的制作方法
技术领域
本发明涉及用于处理块型存储设备中储存的顺序文件的方法。本发明还涉及用于处理块型存储设备中储存的顺序文件的装置。
背景技术
顺序文件是指这样的文件其通过文件末尾附加的添加部分而更新。顺序文件例如是日记或日志文件,在其末尾有按时间顺序添加的事件注释。在文件系统中,文件包括元数据,其指的是与文件所包含的数据(下面称为有效载荷数据)相关联的事件。例如,元数据可以表示其中可以找到有效载荷数据的存储设备中的地址空间,与错误检测和/或其他错误指示相关联的检验和、文件最后更新时间、允许有效载荷被读取和/或改变的条件、以及文件大小和/或有关文件的其他结构信息。
块型存储设备的典型特点是其中储存的数据或应该在其中储存的数据的处理是一个存储块接着一个存储块地执行的。在块型存储设备中,单个存储块表示所述存储设备中地址空间的给定共享的存储容量。块型存储设备例如是闪存型微电路存储器和磁盘。存储块中重复的写操作耗损了块型存储设备。存储设备中单一存储块只耐受有限数量的写操作。换句话说,当写操作十分频繁地被重复时,存储块被耗损。即使在存储设备中只有一个存储块被耗损掉的情况下,通常整个存储设备,诸如闪存型微电路存储器或磁盘,必须被替换。此外,例如与闪存型微电路存储器或磁盘相联系的经常重复的写操作降低了可用存储块的数量。在闪存型微电路中,存储设备中任何字节都可以被写和读,而不用管所述存储块的其他字节。当设置字节或比特时,其直到整个存储块被清空才能被改变。清空存储块是比从存储块读取数据慢得多的操作。在需要改变给定存储块中包含的数据的情况下,所述存储块必须首先被清空,然后才能写入改变的数据。可以解决导致的速度问题,使得在另一个已经清空的存储块中写入改变的数据,在此情况中,较早使用的存储块只需要在文件更新后被清空。但是,重复清空和写操作导致正在被清空或等待被清空的存储块数量在任何给定时刻都很巨大,这就会降低可用存储块的数量。
现有技术在现有技术的文件控制系统中,与顺序文件相关联的元数据位于完全或部分地为所述元数据而保留的存储块中。结果,当新的有效载荷数据添加到顺序文件中,例如将新的日记条目添加到日记文件中时,向存储设备的写操作必须被引导到两个不同的存储块中-包含较早写入的有效载荷数据的结束位置的存储块,以及-包含元数据的存储块。
在本申请文件中,有效载荷数据的结束位置意味着在所述有效载荷中最后添加的数据。
结果,现有技术的问题是一个顺序文件更新操作需要进行在两个存储块中的写操作。如在本文的前面已经提到的,写操作导致存储设备的耗损以及可用存储块的减少。

发明内容
本发明涉及一种用于处理储存在块型存储设备中的顺序文件的方法,通过该方法可以消除或克服同现有技术相关联的限制和不足。本发明还涉及一种用于处理储存在块型存储设备中顺序文件的装置,通过该装置可以消除或克服同现有技术相关联的限制和不足。本发明还涉及一种设计用于处理储存在块型存储设备中顺序文件的计算机程序,通过该程序可以消除或克服同现有技术相关联的限制和不足。
在本发明中,惊喜地发现,通过放置与包含有效载荷数据的结束位置的块型存储设备的存储块中的顺序文件相关联的元数据,与更新所述顺序文件相关联的写操作在几乎所有情形中都只需要被导引至存储设备的一个存储块中,所述存储块是包含有效载荷数据的结束位置的存储块。执行更新,使得新有效载荷数据顺序添加到更新之前有效载荷数据的结束位置,新的元数据顺序添加在添加的有效载荷数据之后。
只有在罕见场合下,添加的有效载荷数据在更新之前不适合包含有效载荷数据的结束位置的存储块的可用自由空间,写操作才必须引导至两个存储块。在上述描述中,假定元数据的字节量关于更新是不发生改变的。为了举例,让我们假定,存储块的大小是4千字节,要添加的有效载荷数据平均为100字节。现在写操作必须被引导至两个存储块的情形的可能性大约是2.5%。
利用本发明可获得以下的优点-扩展块型存储设备的工作寿命,因为引导至存储块的写操作的数量与现有技术相比实际上削减到了一半,-磁盘存储器中使用的读写头(writer head)的耗损低于现有技术,因为读写头转换的次数与现有技术相比实际上削减到了一半,以及-闪存型存储设备中可用存储块的数量高于现有技术,因为在给定观察时刻,正在被清空或者等待被清空的存储块的数量小于根据现有技术的配置。
根据本发明的用于处理储存在块型存储设备中的顺序文件的方法,其特征在于,在所述块型存储设备的存储块中写入与所述顺序文件相关联的元数据,该存储块包含所述顺序文件中包含的有效载荷数据的结束位置。
根据本发明的用于处理储存在块型存储设备中的顺序文件的装置,其特征在于,该装置包括用于储存所述顺序文件的块型存储设备以及安排用于将与所述顺序文件相关联的元数据写入块型存储设备的存储块中的处理器,该存储块包含在所述顺序文件中包含的有效载荷数据的结束位置。
根据本发明的用于处理储存在块型存储设备中的顺序文件的计算机程序,其特征在于,该计算机程序包括用于指令可编程处理器将与所述顺序文件相关联的元数据写入所述块型存储设备的存储块中的软件工具,其中该存储块包括所述顺序文件中包含的有效载荷数据的结束位置。
本发明的各种实施例的特征如从属权利要求中所述。


下面结合优选实施例,更加详细地描述本发明,这些优选实施例是通过举例并结合附图来图示说明的,在附图中图1图示说明了根据本发明的方法中块型存储设备的存储空间中元数据的位置的示例情况,图2a和2b图示说明了根据本发明实施例的方法中块型存储设备中储存的顺序文件的更新的原理图,图3a和3b图示说明了根据本发明实施例的方法中块型存储设备中储存的顺序文件的更新的原理图,图4a和4b图示说明了根据本发明实施例的方法中块型存储设备中储存的顺序文件的更新的原理图,以及图5图示说明了用于处理顺序文件的本发明的实施例的装置。
具体实施例方式
图1图示说明了根据本发明的方法中块型存储设备的存储空间中的元数据的位置的示例情况。箭头107指示存储地址增长的方向。标号101和102表示存储块。存储块102包含所述顺序文件中所包括的有效载荷数据(图中“数据”)103的结束位置104。有效载荷数据103只表示包含在存储块102中的顺序文件的有效载荷数据的共享。其他存储块也可包含有效载荷数据,没有在图1中示出。结束位置104之后是元数据(M)106。存储空间108的区域可以是自由的。
在根据本发明实施例的方法中,元数据106包含文件标记(EOF)105的结束。由于文件标记的结束,可以通过线性搜索来搜索有效载荷数据104的结束位置,而不是精确的结束位置地址数据。所述结束位置可以在更新的顺序文件中找到,如果已知与顺序文件相关联的地址,线性搜索可从该地址开始,例如原始顺序文件中各个结束位置的地址,或者顺序文件的文件位置的起始的地址。线性结束位置搜索可以在例如开启装置时执行,此后找到的结束位置地址可以例如储存在处理器的工作或临时存储器中。在该情况下,更新中发生改变的新的结束位置地址不需要储存在例如观察中的块型存储设备中,由此,所述改变的结束位置地址应该在启动装置时直接可读。
图2a和2b图示说明了根据本发明实施例的方法中块型存储设备中储存的顺序文件的更新的原理图。图2a图示说明了更新之前的情况。箭头207指示存储地址的增长的方向。存储块202包含所述顺序文件中有效载荷数据(D0)203的结束位置204。结束位置204之后是元数据(M0)206,对应于更新前的情况。存储空间208的区域可以是自由的。
图2b图示说明了更新后的情况。通过在存储块202中紧接着先前的有效载荷数据203写入要添加到顺序文件中的有效载荷数据(D1)209,以及紧接着要添加的有效载荷数据209添加与更新后的顺序文件相关联的元数据(M1)211,从而更新顺序文件。存储空间212的区域可以是自由的。在图2b所图示说明的情况中,有效载荷数据的结束是在位置213。
当存储空间208的自由区域不足以添加有效载荷数据209时,必须保留至少一个存储块以便保存更新后的顺序文件。
图3a和3b图示说明了根据本发明实施例的方法中块型存储设备中储存的顺序文件的更新的原理图。图3a和3b中图示说明的实施例特别适用于闪存型微电路存储器,其中可以读和写给定存储块的单个字节,而不用管所述存储块中包含的其他字节。当设置字节或比特时,其直到整个存储块被清空才会改变。存储块的清空是比从存储块读取数据慢得多的操作。在这个实施例中,导致的速度问题得到了解决,使得改变的数据写入了另一个已经清空的存储块中,在此情况下,较早使用存储块只需要在文件更新之后和/或作为文件更新的后台操作被清空。
图3a图示说明了更新之前的情况。存储块301包含所述顺序文件的有效载荷数据(D0)302的结束位置303。结束位置303之后是元数据(M0)305,对应于更新之前的情况。存储空间306的区域可以是自由的。存储块307是清空的存储块,位于地址空间中与存储块301不同的地点。存储块301和307可以邻近或者有一段距离,使得在存储块301和307之间,有一个或几个存储块。
图3b图示说明了更新之后的情况。通过在存储块307中写入以下数据来更新顺序文件-有效载荷数据302(D0),包含在存储块301中;-要添加在顺序文件中的有效载荷数据(D1)308,在有效载荷数据302之后,以及-与更新后的顺序文件相关联的元数据(M1)310,紧接着要添加的有效载荷数据的结束位置311。
命令存储块301清空。有利的是,清空被执行为后台操作,与上述更新操作无关。
图4a和4b图示说明了根据本发明实施例的方法中块型存储设备中储存的顺序文件的保存的原理图。在图4a所示的情况中,包含所述顺序文件的存储块紧接着位于块型存储设备的地址空间之后。一个方形表示一存储块,例如标号401所指示的方形。加黑的区域402表示包含所述顺序文件的存储块。在图4b所示的情况中,包含所述顺序文件的存储块,如图4b中加黑所示,分布在块型存储设备的地址空间中。图4a和4b图示说明了块型存储器的存储空间中的仅仅一个顺序文件的原理位置。在实际系统中,一个块型存储设备包含若干个储存的顺序文件。
在本发明实施例中,可以通过分层索引结构到达各文件。根级索引包含下一级索引以及逻辑地址的列表,其中可以找到每一索引。如果索引中包括的名称不表示索引的话,所述名称表示的是文件,并且链接的逻辑地址指的是所述文件的元数据。如果元数据在更新过程中传送到不同的存储块,指示所述元数据的逻辑地址也会在系统的工作存储器中得到更新。
图5图示说明了根据本发明实施例用于处理顺序文件的装置。该装置包括用于保存所述顺序文件的块型存储设备501和安排用于在包含所述顺序文件的有效载荷数据的结束位置的所述块型存储设备的存储块中写入与所述顺序文件相关联的元数据的处理器502。在处理器502和存储设备之间,安排有总线503,处理器和存储设备通过该总线进行通信。
在根据本发明实施例的装置中,所述块型存储设备501是闪存型微电路存储器。
在根据本发明实施例的装置中,所述块型存储设备501是磁盘。
在根据本发明实施例的装置中,所述处理器502被安排为通过在包含所述顺序文件的有效载荷数据的结束位置的所述块型存储设备的存储块中写入要在顺序文件中添加的有效载荷数据以及与顺序文件相关联的元数据,来更新所述顺序文件。
在根据本发明实施例的装置中,所述处理器502被安排为通过命令包含所述顺序文件在更新之前的有效载荷数据的结束位置的所述存储设备中的存储块清空,并且在所述块型存储设备的另一存储块中写入所述存储块中包含的有效载荷数据、要在顺序文件中添加的有效载荷数据以及与更新后的顺序文件相关联的元数据,来更新所述顺序文件。
在根据本发明实施例的装置中,所述处理器502被安排为选择包含所述顺序文件的存储块,其位于紧接着所述块型存储设备的地址空间之后。
在根据本发明实施例的装置中,所述处理器502被安排为选择包含所述顺序文件的存储块,其分布在所述块型存储设备的地址空间中。
在根据本发明实施例的装置中,所述处理器502是可编程处理器,装置提供有存储设备504,用于储存控制该处理器的计算机程序。在根据本发明替换实施例的装置中,所述处理器502具有内部存储器,用于储存控制该处理器的计算机程序。在根据本发明另一替换实施例的装置中,所述处理器502是基于一个或若干个ASIC电路(专用集成电路)和/或FPGA部件(现场可编程门阵列)的设备,设备的操作控制基于逻辑门之间的连接,在此情况下不需要计算机程序。
根据本发明实施例的计算机程序包括软件工具,诸如子程序和函数,用于控制处理器502,以便在包含顺序文件中包含的有效载荷数据的结束位置的块型存储设备的存储块中写入与顺序文件相关联的元数据。
对于本领域技术人员来说,本发明及其各种实施例显然不限于上述的示例实施例,实际上,本发明及其实施例可以在独立权利要求的范围内进行变化。
权利要求
1.一种用于处理储存在块型存储设备中的顺序文件的方法,其特征在于,在所述块型存储设备的存储块中写入与所述顺序文件相关联的元数据(106),该存储块包含所述顺序文件中包含的有效载荷数据(103)的结束位置(104)。
2.根据权利要求1所述的方法,其特征在于,通过以下步骤来更新所述顺序文件将要添加到顺序文件中的有效载荷数据(209)和与更新后的顺序文件相关联的元数据(211)写入到所述块型存储设备的存储块(202)中,其中所述存储块(202)包含在更新前顺序文件中包含的有效载荷数据的结束位置(204)。
3.根据权利要求1所述的方法,其特征在于,通过以下步骤来更新所述顺序文件命令包含在更新前所述顺序文件中包含的有效载荷数据的结束位置(303)的所述存储设备的存储块(301)清空,并且将所述存储块中包含的有效载荷数据(302)、要添加在顺序文件中的有效载荷数据(308)以及与更新后的顺序文件相关联的元数据(310)写入到所述块型存储设备的另一存储块(307)中。
4.根据权利要求1所述的方法,其特征在于,包含所述顺序文件的存储块紧接着位于所述块型存储设备的地址空间之后。
5.根据权利要求1所述的方法,其特征在于,包含所述顺序文件的存储块以分布的方式位于所述块型存储设备的地址空间中。
6.一种用于处理顺序文件的装置,其特征在于,该装置包括用于储存所述顺序文件的块型存储设备(501)以及被安排用于将与所述顺序文件相关联的元数据写入块型存储设备的存储块中的处理器(502),该存储块包含在所述顺序文件中包含的有效载荷数据的结束位置。
7.根据权利要求6所述的装置,其特征在于,所述块型存储设备是闪存型微电路存储器。
8.根据权利要求6所述的装置,其特征在于,所述块型存储设备是磁盘。
9.根据权利要求6所述的装置,其特征在于,所述处理器被安排用于更新所述顺序文件,包括将要添加到顺序文件中的有效载荷数据以及与更新后的顺序文件相关联的元数据写入到块型存储设备的存储块中,所述存储块包含在更新前顺序文件中包含的有效载荷数据的结束位置。
10.根据权利要求6所述的装置,其特征在于,所述处理器被安排用于更新所述顺序文件,包括命令包含在更新前所述顺序文件中包含的有效载荷数据的结束位置的存储设备的存储块清空,并且将所述存储块中包含的有效载荷数据、要添加到顺序文件中的有效载荷数据以及与更新后的顺序文件相关联的元数据写入到所述块型存储设备的另一存储块中。
11.根据权利要求6所述的装置,其特征在于,所述处理器被安排用于选择包含所述顺序文件的存储块紧接着位于所述块型存储设备的地址空间之后。
12.根据权利要求6所述的装置,其特征在于,所述处理器被安排用于选择包含所述顺序文件的存储块以分布的方式位于所述块型存储设备的地址空间中。
13.根据权利要求6所述的装置,其特征在于,所述处理器是可编程处理器,并且所述装置包括用于储存用来控制所述处理器的计算机程序的存储设备。
14.一种用于处理储存在块型存储设备中的顺序文件的计算机程序,其特征在于,该计算机程序包括用于指令可编程处理器将与所述顺序文件相关联的元数据写入所述块型存储设备的存储块中的软件工具,其中该存储块包含所述顺序文件中包含的有效载荷数据的结束位置。
全文摘要
本发明涉及用于处理储存在块型存储设备中的顺序文件的方法和装置。在本发明中,惊喜地发现,通过将与所述顺序文件相关联的元数据(106)储存在包含有效载荷数据(103)的结束位置(104)的所述块型存储设备的存储块中,与所述顺序文件相关联的写操作几乎在所有情形下只需要被引导至存储设备的一个存储块,所述存储块是包含有效载荷数据的结束位置的存储块。
文档编号G06F17/30GK101067821SQ20071010095
公开日2007年11月7日 申请日期2007年4月28日 优先权日2006年5月3日
发明者马蒂·哈利沃里 申请人:特拉博斯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1