当前位置: 首页 > 专利查询>微软公司专利>正文

事务文件系统技术方案

技术编号:2875697 阅读:197 留言:0更新日期:2012-04-11 18:40
一个事务文件系统,其中多重文件系统操作能作为用户级事务的一部分执行。一个应用程序规定,在文件上的操作或对线程的文件系统操作应作为事务的一部分处理,且给予该应用程序与事务范围相关的文件句柄。对于与事务范围相关的文件系统请求,在文件系统中的一个部件管理与事务行为一致的操作。可以是用于分布式事务的资源管理器的部件通过借助跟踪已改变的页面的副本提供文件的多个版本来提供数据隔离,使得事务的读程序在事务的写程序提交该事务且读程序重新打开该文件之前不接收由事务的写程序作出对文件的改变。该部件还处理在多级日志中的名字空间记录操作,以方便记录及恢复。页面数据与主日志分开记录,它带有唯一的记号,使得日志能判定一个页面是否在系统崩溃之前完全被刷新到盘中。在事务提交以前,通过隔离目录提供名字空间的隔离,因而直到提交,事务还看到它自己操作的效果而不是其他事务的操作的效果。在网上的事务也通过重定向器协议得以方便。(*该技术在2021年保护过期,可自由使用*)

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术一般针对计算机和文件系统。
技术介绍
通常的文件系统提供操纵文件层次结构的机制,包括建立新的文件或目录,删除或重命名文件或目录,和对文件内容的操作。某些文件系统提供有关单个低级操作(即原语)的完整性的确定保证。例如,建立新文件的原语或者是成功地完成,或者该建立文件操作的任意部分作用被系统撤消。然而,在用户级的多稳健系统的操作却没有与该文件系统有联系。例如,对于一个文件系统现在没有方法建立四个文件,删除三个其他文件并改名另外的文件,但如果这些操作中的任一个失败,就撤消任何其他操作。因此,要使用如应用程序这样的更高级(用户级)处理来管理这种多操作,即对该文件系统指定哪个动作可应用于哪个文件和/或目录。然而,此解决方法有其本身的缺陷。考虑一个例子,其中一个网站具有20个网页,以给予此网站一致的外观及感觉的方法彼此链接。在更新该网站时,系统失败导致不一致的状态。例如,执行更新的应用程序可以已删除了某些文件但在失败时未删除来自其他文件指向这些文件的链接。一个观看此网站的用户将看到某些网页,而当点击与已删除网页的链接时会收到的错误的消息。为防止引起在不一致状态的可能性,在层次结构中的任何文件被改变之前整个网页的文件层次通常已经进行复制。在发生失败时,被保存的层次结构复制回来。然而,文件的这种复制是慢的,而且相对笨拙,因为复制程序需要事先知道系统哪个部分将要更新,且易于出错,因为如果任何文件被疏忽而未复制,它就不能再恢复。如果文件在使用更高级的处理以更新文件时进行适当改变,则任何在进行中的改变为观看此网站的用户可见。例如,对于上述的网站,在文件(和名字层次结构)由应用程序改变时,任何改变对该系统的现有用户是可见的。因为在所有改变完成以前系统状态通常是不一致的,因此,用户可以看到此不一致性。例如,当出现应用程序已删除一个网页但尚未去除指向该页的链接的情况时,现有的用户可以在网页上看到一个链接(URL),点击它并在已被删除的网页上结束。除了网页更新以外,其他程序在它们一致地保存信息方面的能力中也受到类似的限制。例如,典型的文字处理应用程序或电子表格应用程序通过改名和删除操作执行所有保存,使用临时文件以防止引起后续系统失败的不一致状态。这种应用程序也可以需要在不同数据源之间分配信息。例如,应用程序可能希望在SQL Server中存储表格数据,在文件服务器和/或在因特网服务器中存储文件,例如,这种文件可以包括文字处理文档、演示图表和/或网页。但是,现在并不存在一种机制以协调一致、统一的方式支持这种信息的保存。例如,若在保存这种信息期间系统失败,将保存某些信息,而其他则不保存,再次导致不一致状态。
技术实现思路
简而言之,本专利技术提供一种系统和方法,通过本专利技术多文件系统操作能作为单个用户级事务的部分执行。本专利技术的事务文件系统使用户能可选地控制在文件系统中事务的范围(context)和.持续时间。在文件打开或建立期间,应用程序规定文件打开情况的操作是否应作为事务的一部分处理。此外,系统有能力永久性地标记只能被事务性地操作的文件,而应用程序在打开/建立的时间通过全局唯一的id(GUID)指定该事务。对于新文件建立,其父目录被标记为事务处理的,而应用程序能将一个事务与线程/处理相关联,从而通过这种线程/处理的文件操作在指定的事务的范围内进行事务处理。此外,应用程序可选择(如通过API)指令系统子线程/处理继承事务的上下文关系,使应用程序能利用事务而不必对应用程序源代码作任何明显的修改。一旦事务性地打开文件,系统自动地包括在文件处理上的如读、写、删除或改名操作,作为事务的一部分。因此,应用程序能调用现有的文件系统API,继续查看现有的每次操作的语义,还将操作作为事务的一部分包括起来。一个应用程序能够自由地想用多少事务就用多少,自由地与其他应用程序共享一个事务,具有同样多的线程/处理共享一个事务等。对驻留在不同机器上的文件所做的文件打开指定该事务。本专利技术的其他方面针对记录,使得能从失败的事务恢复。在事务下,如果事务由于包括系统失败和应用程序失败等任何原因而失败,由系统作出的改变撤消,而且如果系统成功地提交代表该应用程序的事务,则由系统对该事务作出的改变保证能经受得住系统失败(如电源断电)。这是借助多级记录机制和另一个机制实现的,所述另一种机制对低级记录操作是否被成功地提交进行判定,从而确定较高级记录操作是否实际上发生。通过将操作事件分隔成一个日志,并且将事务的实际数据写入细节分隔到另一个中,来记录数据的改变。一个机制写入一个签名并随后将其与已记录的日志及数据一起比较以判定已记录的日志是否与其相应的数据页同步,消除了将该日志以相对于数据的特定次序写入盘中的要求。本专利技术的另外方面包括在事务和其他文件系统操作之间提供名字空间和文件数据的隔离。名字空间隔离借助使用隔离目录实现,以跟踪哪个名字属于哪个事务。因此,对给定事务由系统作出的变化对其他事务不可见,而且修改事务仍然有效,且只有在修盖事务成功地提交后成为可见。事务未觉察的文件句柄在变化发生时看到所述改变。因此,在第一事务过程中删除的文件将不再被该第一事务看到或没有事务会看到,但在第一事务完成之前对其他事务仍然可见。为实现这种名字空间隔离,建立隔离目录,它们链接到原始NTFS目录,并将适当的文件名字加到该隔离目录以替代普通的NTFS父目录。例如,对于删除操作,被删除文件的名字在文件从NTFS父目录中除去的同时被加到该隔离目录。在提交以前,随后由不同的事务对此文件的访问使用隔离目录来应付,因此该文件被找到并认为未被删除。类似地,如果一个事务建立一个文件,名字被加到NTFS目录以及链接到父NTFS目录的隔离目录。建立该文件的事务能看到它,但对于其他事务,该名字针对打开此文件和列出父NTFS目录的目的而被滤去。当事务提交或中断时,隔离目录项从该隔离目录中被去除。因此,本专利技术加入事务机制到文件系统中,使得应用程序能容易执行对一个或多个文件的多重事务操作,克服了与外事务机制相关的问题。以这样的方法,在文件系统中多个文件系统的操作以事务方式互相联系,这样,这些操作要么一起提交,要么就撤消任何部分的动作。此外,一个事务的操作和数据改变与另一事务的操作和数据相隔离。从下面结合附图的详细描述中,其它的优点变得显而易见。附图简述附图说明图1是方框图,表示可以加入本专利技术的一个计算机系统;图2是方框图,表示按本专利技术的一个方面实现事务文件系统的通用结构;图3是方框图,表示按本专利技术的一个方面建立/打开一个事务文件的请求;图4是方框图,表示按本专利技术的一个方面在一个打开事务文件上执行一个文件系统操作的请求。图5是方框图,表示按本专利技术的一个方面在一个时间周期上事务文件的隔离;图6是方框图,表示按本专利技术的一个方面跟踪文件版本的数据结构;图7是方框图,表示按本专利技术的一个方面随时间维持多个文件版本;图8是方框图,表示为写入而事务性打开的文件的数据页;图9-10是方框图,表示按本专利技术的一个方面用于支持为在事务中读和写而打开的文件的隔离的数据结构之间的关系;图11是方框图,表示按本专利技术的一个方面的两级记录机制和验证这些日志是否同步的机制;图12是方框图,表示按本专利技术的一个方面所记录的页数据和验证该页数据是否与日志同步本文档来自技高网
...

【技术保护点】
一个具有计算机可执行指令的计算机可读媒体,其特征在于,包括:在文件系统中接收信息,所述信息指出文件与第一事务相关;在文件系统中接收第一请求,以执行对文件的名字空间有关的操作;将有关文件的信息存入隔离目录中;接收针对该文件的第 二请求;和访问隔离目录以判定关于该第二请求是否有文件存在。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:S维尔马TJ米勒RG阿特金森
申请(专利权)人:微软公司
类型:发明
国别省市:US[美国]

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

1