实现缓存一致性的方法和系统的制作方法

文档序号:6649494阅读:172来源:国知局
专利名称:实现缓存一致性的方法和系统的制作方法
技术领域
本发明涉及元数据及同步对元数据的改变。更具体地说,通过当同步操作处于向服务器更新元数据的过程中时允许客户机继续改变数据文件,使用修改的同步操作来支持异步写入操作。
背景技术
图1为一种现有技术的具有共享持久性存储器的分布式系统的框图(10)。该分布式系统包括一具有多个服务器节点(30)和(40)、一管理节点(50)以及多个客户机节点(52)和(54)的存储区域网络(22)。该存储区域网络(22)具有文件数据空间(24)和元数据空间(26)。元数据空间是为服务器(30)和(40)保留的。客户机(52)和(54)中的每一个可访问存储在存储区域网络(22)的文件数据空间(24)的一个或多个对象,但是不可访问元数据空间(26)。在打开存储区域网络(22)中的存储介质中现有的文件对象的内容时,客户机联系服务器以得到元数据和锁。服务器在存储区域网络(22)的元数据空间(26)内为被请求文件执行元数据信息的查找。服务器(30)或(40)之一向发出请求的客户机传送许可的锁信息以及文件元数据,包括组成该文件的所有数据块的位置。一旦客户机持有了一分布式锁并知道了数据块的位置,客户机就可以从附接于存储区域网络的一共享存储设备直接访问该文件的数据。
对于图1所示的系统,元数据提供了有关从一分布式文件系统中的客户机或从一非分布式文件系统中的客户机/服务器节点请求的数据的位置的信息。元数据包含了所使用的块的形式、文件大小,修改时间等的信息。在分布式的文件系统中,元数据由服务器维护。一旦客户机访问文件,则则可能发生对文件的改变。需要将反映这些改变的元数据传送到服务器。写模式有两个大的类别。第一类别称为同步写入模式,其中在到服务器节点的先前元数据事务更新完成之前,阻止相应文件对象的所有写入者或元数据修改者继续对数据文件写入任何其他改变。第二类别称为异步写入模式,该模式支持写入者或元数据修改者改变相应的文件对象并延缓数据和元数据事务到服务器的更新。
图2是说明了现有技术的一种异步写操作的过程的流程图(100)。一旦接收到一写请求,客户机就进行检验,来判定是否可进行对文件中数据的写操作(102)。否定响应将要求客户机在返回步骤(102)以重复该问询之前等待一段时间以改变文件。在一个实施例中,应用线程休眠直至一同步数据与元数据的线程唤醒该应用线程。一旦接收到对在步骤(102)的检验的肯定响应,客户机上更新该文件的应用将数据写入客户机数据缓存(104)。在步骤(104)之后,应用更新客户机缓存中的元数据(106),并且应用返回处理(108)。在异步写入模式下,与向盘写入数据并同步客户机的缓存与服务器的缓存相比,更关心的是即时性能。以异步方式操作的文件系统可使用一同步线程来在客户机元数据和服务器元数据的状态需要一致时,执行一延迟的同步操作。通常,该同步线程将周期地运行,以同步客户机的缓存与持久性存储器。因此,当客户机数据缓存需要被写入持久性存储器并且客户机元数据和服务器元数据需要保持一致时,该现有技术的异步写入模式最终使用了同步线程。
图3是说明一种现有技术的用于同步文件系统缓存的、也称为同步操作的同步线程的流程图(120)。该同步操作通常使用以下两个连续的步骤将数据缓存写入盘,以及更新元数据的改变。在一分布式文件系统中,需要将元数据的改变更新到服务器。在应用改变一数据文件之后,启动客户机数据文件的同步(122)。一旦启动同步操作,就阻止在该客户机上执行的当前应用或其他应用进一步改变该数据文件(124)。此后,将客户机数据缓存写入本地存储介质的持久性存储器中(126),接下来,将客户机元数据改变的事务更新发送到服务器,并且客户机在其等待响应时,进入等待状态(128)。一旦客户机向服务器发送了元数据事务更新,就标记客户机缓存以反映该传出通信,并且在继续允许使用一应用写入文件之前,客户机等待接收来自服务器的响应。在接收到元数据更新(130)之后,服务器发送元数据更新事务到一存储区域网络的持久性存储器(132),接下来将一响应发送到启动该元数据更新的客户机,该响应指示已将元数据改变记录在存储区域网络(134)。类似的,一旦接收到来自服务器的信息(136),客户机将处理该响应(138),以便应用可以继续对该数据文件进行写入(140)。客户机在步骤(136)接收到的信息并不指示由服务器进行的元数据改变的记录。相反地,在步骤(136)接收到的信息将指示元数据更新是否被正确记录在共享的存储介质中。如果元数据更新没有被记录,这就表明发生了错误,并且服务器不能对元数据应用客户机的改变。因此,图3所示的现有技术示例显示了这样一种同步操作,其中,相应文件对象的写入者或元数据改变者被阻止继续向一数据文件写入任何其他的改变,直到进行中的元数据更新已通过到服务器的事务完成。
正如上面说明的,现有技术有一些缺点。例如,对数据文件的所有修改操作在该文件的整个同步过程期间被阻止。这种阻止持续时间在涉及网络事务的分布式文件系统中十分显著。如果一个以上的同步线程在并行运行,这可引起将事务更新流式传输到服务器的应用的错误通信(miscommunication)。所以,需要修改现有技术的同步过程以支持这样的元数据更新事务,该事务不会在元数据更新事务的整个期间阻止修改元数据的写入者或应用。

发明内容
本发明包含一种用于对于文件进行元数据更新事务而同时允许写入者或应用继续对文件进行修改的方法和系统。
在本发明的一个方面中,提供了一种维护缓存一致性的方法。将元数据更新请求从客户机发送到存储介质。当该元数据更新请求待决时,允许对客户机的元数据缓存进行修改。
在本发明的另一个方面中,提供了一种具有元数据的计算机系统。提供了用于向存储介质传送元数据更新请求的请求者。另外,提供了用于当该元数据更新处于待决状态时允许对请求者的元数据缓存进行修改的管理器。
在本发明再一个方面中,提供了一种具有计算机可读的信号承载介质的物品。在该介质中提供了用于将元数据更新请求从客户机发送到存储介质的手段。另外,该介质中提供了用于在元数据更新请求待决时允许对客户机元数据缓存进行修改的手段。
本发明的其他特点和优点将在下面结合附图对本发明当前优选的实施例进行的详细描述得到清楚的体现。


图1是现有技术的分布式文件系统的框图。
图2是现有技术的分布式文件系统中的异步写入模式的流程图。
图3是现有技术的分布式文件系统中的同步操作的流程图。
图4是用于在分布式文件系统中的元数据更新的同步操作中创建近即时的副本的过程的流程图。
图5是根据本发明的优选的实施例在分布式文件系统中的修改的同步操作的流程图,建议将该图印制在所颁发专利的第一页上。
图6是用于使服务器已记录元数据与客户机元数据的当前状态一致的过程的流程图。
具体实施例方式
概述产生数据文件的元数据的一种近即时副本作为同步操作的一部分。元数据的近即时副本记录了元数据的所有改变。为了同步客户机对元数据的改变和与该客户机通信的服务器节点保持的副本,将客户机元数据的近即时版本发送到服务器节点以便记录在存储区域网络中。在记录该元数据改变的过程中,在客户机上执行的应用可将持续向文件写入改变,并且在发送另一个元数据更新到服务器之前,将这些改变记录在客户机元数据的另一个近即时版本中。因此,创建和记录客户机元数据改变的近即时版本的使用支持在允许一应用继续对该文件写入改变时,并行地记录对文件的改变。
技术细节图4是根据本发明的一个实施例用于同步客户机缓存中的数据及元数据的改变与本地存储介质以及服务器元数据的方法的流程图(150)。为了减轻在处理元数据更新事务请求时的网络等待时间及服务器等待时间,创建元数据更新的近即时版本,并将其发送给分布式文件系统中的服务器节点。该近即时版本是客户机缓存状态的一映象。如图所示,一旦接收到使客户机数据及元数据与服务器同步的指令(152),就阻止当前的应用或其他应用对该数据文件进行进一步的改变(154)。此后,将客户机数据缓存写入本地存储介质的持久性存储器中(156),之后创建客户机元数据的一近即时版本以记录客户机元数据的当前状态(158)。在步骤(158)向被创建的近即时版本分配一标识符(160)。一旦该近即时版本完成,就解除在步骤(154)进行的阻止,并且可继续进行对客户机数据文件的新的写入事务(162)。因此,客户机元数据的近即时版本记录了客户机元数据的状态,并且使客户机能够继续在异步写入模式下操作,并在准备元数据缓存的近即时版本以发送到服务器进行处理时对文件写入改变。
图5是示出了在共享存储介质上记录客户机的缓存状态的近即时版本的过程的流程图(200)。在创建了客户机元数据的近即时版本之后,将客户机元数据的近即时版本发送到服务器,并且客户机进入等待状态,此时客户机等待接收来自服务器的表明该近即时版本已经被记录在持久性存储器中的响应(202)。一旦服务器接收到客户机元数据的近即时版本(204),就将元数据缓存中的改变写入共享的持久性存储器(206)。在图1中所示的分布式文件系统中,存储区域网络是记录元数据改变的持久性存储器。在服务器将元数据改变写入持久性存储器后,从服务器向客户机发送一表明接收到元数据更新的近即时版本的响应(208)。一旦客户机接收到服务器的响应(210),就进行检验来判定由服务器进行的元数据更新的近即时版本的记录是否成功(212),即,对元数据缓存的改变被正确的记录在存储区域网络中。对步骤(212)的检验的否定响应将要求客户机丢弃相应的记录失败的元数据更新的近即时版本(214)。将近即时版本发送到服务器以使客户机元数据与服务器同步的过程并不能保证近即时版本所反映的改变将被成功地记录在存储区域网络中。未被记录在存储区域网络中的对客户机数据及元数据的改变仍在客户机中并且被标记为未被记录。一旦创建了客户机元数据的近即时版本,客户机就可支持对数据文件的随后的异步写入操作,其中,与该随后写入操作相关的对客户机数据及元数据的改变以及任何先前未被记录的对客户机数据及元数据的改变被记录到另一个具有不同版本标识符的近即时副本中。因此,缓存状态的近即时版本的创建支持在近即时版本被记录到存储区域网络的过程中,允许对文件的进一步的异步写入操作继续进行。
图6是示出用于使客户机元数据与服务器元数据的当前状态一致的过程的流程图(250)。如果对图5中步骤(212)的响应是否定的,则客户机丢弃相应的元数据的近即时版本。服务器未接受和记录元数据改变的事实不会产生任何正确性问题,因为客户机数据及元数据的改变将被标记为没有记录在存储区域网络中,且可被记录在客户机缓存的一不同的近即时版本中。然而,在对步骤(212)的检验的肯定响应之后,客户机比较与该事务相关的客户机元数据的近即时版本与在此版本之后创建的客户机元数据的任何近即时版本以及客户机的元数据缓存(252)。在步骤(252)的比较之后,进行检验来判定是否需要任何更新以使客户机的元数据视图与服务器的元数据一致(254)。如果步骤(254)的检验是肯定的,则客户机可以将改变记入其元数据缓存(256),之后丢弃服务器已记录在持久性存储器中的、相应的元数据的近即时版本的版本(258)。客户机可允许应用继续对数据文件的异步写操作。然而,如果步骤(254)的比较是否定的,则不需要对客户机元数据的当前状态的任何改变。服务器已记录在持久性存储器中的、相应的元数据的近即时版本的标识符可被丢弃(258)。因此,一旦判定服务器节点已成功地将近即时版本记录在持久性存储器中,则通过将服务器元数据的状态记录在客户机缓存中来使客户机元数据与服务器元数据一致。
如在图5中描述的,与对文件的改变相关的元数据被记录在近即时版本中,该版本是客户机缓存状态的映像。在一个实施例中,近即时版本被存储在计算机可读介质中,因为它包含机器可读格式的数据。可提供一请求者来判定是否需要创建元数据状态的近即时版本,并传送该近即时版本给相关的服务器。也可提供一管理器来控制文件元数据的随后的近即时版本的创建,以及当对元数据先前版本的记录在服务器中待决时,控制对数据文件的进一步改变。该管理器的形式可以是计算机系统中的硬件元素,也可以是计算机可读介质中的软件元素。
相对于现有技术的优点使用用于记录客户机元数据的改变的客户机缓存的近即时版本来对服务器进行更新缓存的同步操作,使得当在服务器上对相应文件的元数据更新待决时,在客户机上运行的应用可以继续写入文件。该操作模仿了与图2中所示的异步写入模式相关的效率,同时消除了与现有技术的异步写入模式相关的缺点。优选实施例的支持异步写入模式的同步操作通过消除在一先前事务已在服务器处完成更新之前阻止应用对文件进行写入的过程,减少了等待时间。因此,使用近即时版本使应用向文件写入数据并支持数据文件的先前版本的并行记录的过程提高了对文件执行顺序写入操作的应用的性能。
其他实施例应当认识到,尽管这里为了说明的目的而描述了本发明的具体实施例,可进行多种改变而不脱离本发明的实质和范围。特别地,所述计算机系统不局限于分布式文件系统。相反的,这里所示的方法和系统可以应用于非分布式文件系统。因此,本发明的保护范围仅由以下权利要求以及它们的等效物所限制。
权利要求
1.一种用于保持缓存一致性的方法,包括将元数据更新请求从客户机发送到存储介质;以及当所述元数据更新请求待决时允许修改所述客户机的元数据缓存。
2.根据权利要求1的方法,还包括同步元数据缓存与所述元数据更新。
3.根据权利要求2的方法,其中所述元数据更新是对所述元数据的改变的近即时版本。
4.根据权利要求3的方法,其中所述同步元数据缓存与所述元数据更新的步骤包括比较所述元数据更新的所述近即时版本与所述元数据的下一个近即时版本,以及如果传送的信息表明所述元数据更新到存储介质的记录失败,则丢弃所述元数据更新的所述近即时版本。
5.根据权利要求3的方法,其中所述同步元数据缓存与所述元数据更新的步骤包括比较所述元数据更新的所述近即时版本与所述元数据的下一个近即时版本,以及响应于所述元数据更新到存储介质的成功记录,用所述元数据更新的所述近即时版本在元数据的当前版本的缓存中标记改变。
6.根据权利要求1的方法,其中所述存储介质是从包括本地存储介质和存储区域网络的组中选出的。
7.根据权利要求1的方法,其中所述元数据更新在客户机中发起,并被传送到分布式文件系统的服务器。
8.一种计算机系统,包括适应于将元数据更新请求发送到存储介质的请求者;以及适应于当所述元数据更新请求处于待决状态时,允许对所述请求者的元数据缓存进行修改的管理器。
9.根据权利要求8的系统,还包括适应于同步元数据缓存与所述元数据更新的缓存管理器。
10.根据权利要求9的系统,其中所述元数据更新是所述元数据的改变的近即时版本。
11.根据权利要求10的系统,其中所述缓存管理器比较所述元数据更新的所述近即时版本与所述元数据的下一个近即时版本,且所述缓存管理器适应于响应于形式为所述元数据更新到存储介质的记录失败的传送的信息丢弃所述元数据更新的所述近即时版本。
12.根据权利要求10的系统,其中所述缓存管理器比较所述元数据更新的所述近即时版本与所述元数据的下一个近即时版本,且所述缓存管理器适应于响应于所述元数据更新到存储介质的成功记录的传送的信息,用所述元数据更新的所述近即时版本在元数据的当前版本的缓存中标记改变。
13.根据权利要求8的系统,其中所述存储介质是从包括本地存储介质和存储区域网络的组中选出的。
14.根据权利要求8的系统,其中所述元数据更新在客户机中发起并被传送到分布式文件系统的服务器。
15.一种物品,包括计算机可读的信号承载介质;该介质中用于将元数据更新请求从客户机发送到存储介质的手段;以及该介质中用于当所述元数据更新请求待决时允许对所述客户机的元数据缓存进行修改的手段。
16.根据权利要求15的物品,其中所述存储介质是从包括可记录的数据存储介质和调制的载波信号的组中选出的。
17.根据权利要求15的物品,还包括所述介质中用于同步元数据缓存与所述元数据更新的手段。
18.根据权利要求17的物品,其中所述元数据更新是所述元数据的改变的近即时版本。
19.根据权利要求18的物品,其中所述用于同步元数据缓存与所述元数据更新的手段包括比较所述元数据更新的所述近即时版本与所述元数据的下一个近即时版本,以及如果传送的信息表明所述元数据更新到存储介质的记录失败,则丢弃所述元数据更新的所述近即时版本。
20.根据权利要求18的物品,其中所述用于同步元数据缓存与所述元数据更新的手段包括比较所述元数据更新的所述近即时版本与所述元数据的下一个近即时版本,以及响应于所述元数据更新到存储介质的成功记录,用所述元数据更新的所述近即时版本在元数据的当前版本的缓存中标记改变。
21.根据权利要求15的物品,其中所述存储介质是从包括本地存储介质和存储区域网络的组中选出的。
22.根据权利要求15的物品,其中所述元数据更新在客户机中发起并被传送到分布式文件系统的服务器。
23.一种计算机系统,包括适应于被传送到存储介质的元数据更新请求;以及当所述元数据更新请求正被处理到所述存储介质时,应用对元数据缓存的修改。
24.一种计算机系统,包括用于将元数据更新请求发送到存储介质的手段;以及用于当所述元数据更新请求处于待决状态时,允许对所述请求者的元数据缓存进行修改的手段。
全文摘要
一种用于当允许应用继续将改变写入数据文件时支持由服务器对数据文件的改变进行并行记录的系统和方法。响应于数据文件的改变,创建该文件的近即时版本。将反映数据文件的改变的元数据与缓存中的文件中的版本同步,并将其记录到持久性存储器中。在记录文件的元数据改变的过程中,可继续进行随后的对数据文件的改变,且可将反映所述改变的元数据记录到该文件的一随后的近即时版本中,也可将该版本与持久性存储器中的元数据的版本同步。
文档编号G06F17/30GK1794207SQ20051010957
公开日2006年6月28日 申请日期2005年10月26日 优先权日2004年12月20日
发明者R·C·拉斐尔, R·K·普拉萨德, V·尤朱里, M·R·奈恩尼, S·拉贾拉姆 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1