专利名称:处理对象的方法和系统的制作方法
技术领域:
本发明涉及用于逻辑分组和管理存储系统中的冗余对象的方法、系统和制品。
背景技术:
可以在存储管理服务器上实现诸如IBM*Tivoli*Storage Manager*(TSM)之类的存储管理应用。存储管理应用可以管理通过网络连接到存储管理服务器的多个客户机节点的存储要求。
存储管理应用可以创建和管理从客户机节点备份、存档、迁移或以其他方式复制到存储管理服务器的数据和程序的库。存储管理服务器可以将数据对象(如文件)存储在一个或多个存储池中,并且可以使用存储在存储管理服务器中的数据库来记录有关已存储的数据对象的信息。
存储管理应用可以执行从客户机节点到存储管理服务器的数据的增量备份、增量存档、迁移或增量复制。例如,如果存储管理应用包括备份应用,则所述备份应用可以执行增量备份操作,在所述增量备份操作中,只有在自先前的周期性完整备份以来已更改了文件时才备份该文件,其中周期性完整备份可以在每周、每月或某些其他周期性的基础上执行。TSM通过使用“渐进增量备份”来扩展增量备份,其中对象被备份一次并且然后永远不会再次被备份,除非在客户机节点上修改了该对象。用于数据的备份、存档或复制等的渐进增量方法可以减少必须从客户机节点复制或移动到存储管理服务器的数据量,并且与数据备份、存档或复制的增量方法相比,可以减小网络流量和存储空间要求。渐进增量备份方法可以使用数据库,该数据库记录了与每个已存储对象和每个对象存储在该处的位置有关的信息。
在某些计算环境中,不同的客户机节点可以将相同的文件存储在存储管理服务器中。例如,客户机节点可以具有相同的操作系统文件或同一项目的不同用户可以将相同的文档本地地存储在不同的客户机节点上。将相同的数据对象存储在不同的客户机节点中可以引起备份操作的冗余,因为可能从不同的客户机节点将相同的文件备份并存储在存储管理服务器上,并且即使在使用渐进增量方法的系统中也可以导致低效率。虽然以下说明参考数据备份描述了实施例,但是可以理解,备选实施例可以用于数据存档、数据迁移等。
存储管理系统中的对象可能相关。存储管理服务器可能希望通过维护相关文件的逻辑组来记录对象之间的关系。根据所述关系,存储管理系统中可以支持各种类型的组。例如,对象可以形成增量-基本组,其中将备份基本对象,并且其后将存储代表对所述基本对象的更改的增量对象。所述增量对象也可以称为子文件,如果删除相应的基本对象,则所述增量对象可能无用。此外,对象可以形成对等组,其中如果任何属于该对等组的对象被删除,则所述对等组将变得无效。
发明内容
本发明提供了一种方法、系统和制品,其中判定必须存储与第一客户机节点对应的对象。还判定是否已由第二客户机节点将所述对象发送到服务器节点,其中所述已发送的对象存储在所述服务器节点中并由第一表项表示,并且其中存储在所述服务器节点中的对象和对象表示形成多个组。所述服务器节点从所述第一客户机节点接收所述对象,以响应判定尚未由所述第二客户机节点将所述对象存储在所述服务器节点中。表示所述对象的第二表项被存储在所述服务器节点处,其中所述第二表项引用所述第一表项,以响应判定已由所述第二客户机节点将所述对象存储在所述服务器节点中。
在某些实施例中,由所述第二客户机节点存储与所述第一客户机节点关联的组中的至少一个对象。
在其他实施例中,保留存储在所述服务器节点中的所述对象之间的组关系,同时减少存储在所述服务器节点中的所述对象之间的冗余。
在其他实施例中,多个由所述第一和第二客户机节点存储的对象形成至少一个对等组,其中如果删除对等组中的一个对象,则所述对等组被无效。
在其他实施例中,多个由所述第一和第二客户机节点存储的对象形成至少一个增量-基本组,并且其中增量-基本组包括基本对象和至少一个指示对所述基本对象的更改的增量对象。
在某些实施例中,维护对应于客户机节点的节点标识符。还维护对应于所述对象的对象标识符。另外,还维护对应于所述多个组的组标识符。此外,维护至少一个对应于所述多个组的组类型。可以根据所述节点标识符、所述对象标识符、所述组标识符以及所述至少一个组类型来处理数据库中的多个组。
现在参考附图,其中相同的标号表示附图中相应的部分图1示出了根据某些实施例的计算环境的方块图;图2示出了根据某些实施例的示例性对等组和示例性增量-基本组;图3示出了根据某些实施例的用于维护对象清单表项的示例性数据库;图4示出了根据某些实施例的记录组关系的示例性元素;图5示出了根据某些实施例的处理对等组的流程图;图6示出了根据某些实施例的示例性处理对等组的示例性数据库表项;图7示出了根据某些实施例的处理增量-基本组的流程图;图8示出了根据某些实施例的逻辑分组和管理存储系统中的冗余对象的流程图;
图9示出了计算机系统的体系结构,其中在某些实施例中,可以根据所述计算机系统的体系结构来实现图1的计算环境的服务器和客户机。
具体实施例方式
在以下说明中,参考了形成本说明书的一部分并示出了若干实施例的附图。应当理解,可以采用其他实施例并且可以做出结构和操作更改。例如,虽然以下说明参考数据备份描述了实施例,但是可以理解,备选实施例可以用于数据存档、数据迁移等。
存储管理系统中的冗余对象在某些计算环境中,其中多个客户机节点连接到存储管理服务器,不同的客户机节点可以存储相同的文件。例如,不同的客户机节点可以包括相同的操作系统文件或在同一项目中工作的不同用户可以在不同的计算机上存储同一文档的本地副本。这可能带来备份操作的冗余,因为可能从多个客户机节点将相同的文件备份并存储在存储管理服务器上,即使在使用渐进增量备份的系统中也会导致时间和空间的低效率。
某些实施例减少了存储管理系统中的冗余对象,同时在存储管理系统中维护对象之间的逻辑组关系。
减少冗余对象同时维护组关系图1示出了根据某些实施例的计算环境100的方块图。至少一个计算平台102(其中在某些实施例中,计算平台102可以包括服务器)通过网络104连接到多个计算平台106a、106b...106n,其中在某些实施例中,多个计算平台106a...106n可以包括客户机节点。在某些实施例中,客户机节点106a、106b...106n可以分别包括本地高速缓存107a、107b...107n。虽然图1指示计算平台102为服务器,计算平台106a...106n为客户机节点,但是在备选实施例中,计算平台102、106a...106n可以包括任何适合的计算平台,包括本领域中公知的计算平台,如个人计算机、工作站、大型机、中型计算机、网络家电、掌上电脑、电话设备、刀片计算机、手提电脑等。服务器102还可以称为服务器节点并且客户机节点106a...106n还可以称为客户机。可以在并非基于客户机-服务器范例的计算环境中实现备选实施例。例如,可以在对等联网环境中实现备选实施例。
服务器102到客户机节点106a...106n的连接可以是直接的,或者可以通过诸如存储区域网络(SAN)、局域网(LAN)、广域网(WAN)、因特网、内联网之类的本领域中公知的任何网络104。
存储管理应用110、存储112以及数据库114可以连接到服务器102。尽管图1示出了存储112在服务器内,但是在某些实施例中,存储112可以在服务器102的外部并且可以包括通过网络连接到服务器的存储单元。为了应用的目的,可以认为服务器102包括存储112,无论存储112在服务器102的内部还是外部。在某些实施例中,服务器102可用于备份处理。在其他实施例中,服务器102可用于数据的存档、迁移或复制。数据库114可以在服务器102的外部或内部。
存储112可以包括称为公共对象116的数据结构,公共对象116表示多个客户机节点106a...106n中的共享对象。此外,存储112还包括分别代表与客户机节点106a、106b...106n对应的特定对象118a、118b...118n的数据结构。
存储管理应用110可以允许将来自多个客户机节点106a...106n的某些或全部对象备份到存储112并存储为多个客户机节点106a...106n的公共对象116。同样,存储管理应用110还可以允许将来自客户机节点106a...106n的某些对象备份到存储112并存储为与客户机节点106a、106b...106n对应的特定对象118a...118n。例如,在某些实施例中,未在公共对象116中找到的来自客户机节点106b的对象被发送到存储112并存储为客户机节点106b的特定对象108b。
数据库114包括与公共对象116和特定对象118a...118n对应的清单表项120。存储管理应用110可以查询数据库114以找到与任何客户机节点106a...106n的一个或多个对象对应的清单信息。数据库114还包括由多个客户机节点106a...106n备份到服务器102的对象间的组关系122。
因此,图1示出了某些实施例,其中存储管理应用110允许多个客户机节点106a...106n共享公共对象116,同时维护由客户机节点106a...106n备份到服务器102的对象间的组关系122。
图2示出了根据某些实施例的包括示例性对等组202以及示例性增量-基本组204的示例性组类型200。可以在计算环境100的服务器102中实现所述示例性组类型200。
在某些实施例中,示例性对等组202包括由多个客户机节点106a...106n中的一个或多个节点备份的多个对象202a、202b...202m。如果删除对象202a...202m中的任何对象,则示例性对等组202将变得无效。示例性对等组202的对象可以对应于由单个客户机节点发送的对象,也可以对应于由多个客户机节点发送的对象。
在某些实施例中,示例性增量-基本组204可以包括基本对象204a,以及一个或多个增量对象204b、204c...204p。增量对象204b...204p在基本对象204a之后存储并表示对基本对象204a的更改。例如,在某些实施例中,增量对象204b可以表示对基本对象204a的第一增量更改,而增量对象204c可以表示对基本对象204a的第二增量更改。如果删除基本对象204a,则增量对象204b...204p可能无用。在某些实施例中,增量-基本组中的基本和增量对象可由单个或多个客户机节点发送。
因此,图2示出了某些环境,其中存储管理应用110维护由一个或多个客户机节点106a...106n备份到服务器102中的对象间的组关系。在某些实施例中,可以在由一个或多个客户机节点106a...106n备份到服务器102的对象间建立除了对等组202和增量-基本组204之外的其他组类型。
图3示出了根据某些实施例的用于维护对象清单表项的示例性数据库300。示例性数据库300可以与在图1的计算环境100中实现的数据库144对应。
示例性数据库300可以包括客户机节点106a...106n的对象的清单表项302a...302n。在图3中,出于示例目的示出了客户机节点106a的对象清单表项302a的数据结构。此外,示例性数据库300可以包括公共对象清单表项304的数据结构,其中公共对象清单表项304用于多个客户机节点106a...106n的公共对象116。公共对象清单表项304可以包括与多个客户机节点106a...106n的公共对象116相对应的对象清单表项306a...306q,其中对象清单表项306a...306q可以包括相应的元数据,如元数据308a...308q。元数据308a...308q可以包括对象的组关系。在某些实施例中,可以使用单个客户机节点而不是公共对象的清单表项来维护组关系。此类实施例可以允许每个节点具有同一公共对象的不同组关系。
客户机节点106a的清单表项302a可以包括与客户机节点106a的对象相对应的多个对象清单表项310a...310t。示例性对象清单表项310a可以包括标识相应对象的对象标识符ObjID 312。示例性对象清单表项310a还可以包括相应对象的元数据314,其中元数据314可以包括相应对象的组关系。在某些实施例中,单个对象可以属于同一节点的多个组。
除了对象标识符312和元数据314,对象清单表项310a还可以包括对公共对象清单表项304中的相应对象清单表项的引用316,如果所述对象在多个客户机节点106a...106n的公共对象116中被备份的话。示例性数据库300通过存储对公共对象116(可由一个或多个客户机节点106a...106n共享)的相应对象清单表项的引用316来减少节点冗余。在备选实施例中,示例性数据库300可以被不同地构造。
图4示出了根据某些实施例的记录计算环境100中的组关系的示例性元素。可以在服务器102的数据库114和存储112中实现记录组关系的示例性元素。
可以通过使用与节点标识符402、对象标识符404、组标识符406和组类型408对应的数据结构来记录对象间的组关系400。节点标识符402可以表示与具有对象标识符404的对象对应的客户机节点。组标识符406可以表示具有对象标识符404的对象所属的组。组类型408可以表示具有对象标识符404的对象所属的组的类型(例如,增量-基本组、对等组等),即,组类型408表示组标识符406所表示的组的类型。在某些实施例中,对象可以属于同一节点的多个组。此外,组可以被嵌套。例如,对等组可以嵌套在父对等组中。作为另一个实例,对等组可以包括增量对象,由此创建嵌套关系,其中对应于增量对象的增量-基本组嵌套在对等组中。
在一个示例性实施例中,节点标识符402可以与客户机节点106a的唯一标识符对应,对象标识符404可以对应于对象202a的唯一标识符,其中对象202a所属的组的标识由组标识符406表示。由组标识符406表示的组的组类型408可以是对等组。在其他实施例中,可以使用不同的数据结构来表示组关系。
图5示出了根据某些实施例的处理对等组的流程图。可以在计算环境100中实现图5的流程图中示出的操作。
控制开始于方块500,在此启动将来自客户机节点的一组对象备份到服务器102的过程,其中所述对象组将在被备份后形成对等组。在某些实施例中,可以从一个或多个客户机节点106a...106n将所述对象组备份到服务器102。
控制进行到方块502,在此存储管理应用110启动处理所述对象组中的第一个对象。例如,所述对象组可以包括对象202a...202m,并且存储管理应用可以首先处理对象202a。
存储管理应用110(在方块504)判定正在处理的对象是否由其他客户机节点存储在公共对象116中。例如,客户机节点106a可以尝试备份对象202a,并且存储管理应用110可以判定是否已由其他客户机节点106a...106n中的任何节点将对象202a中包含的数据存储在公共对象116中。
如果存储管理应用110(在方块504)判定处理中的对象已由其他客户机节点存储在公共对象116中,则存储管理应用110使所述对象(在方块506)引用所述处理中的对象的清单表项中的公共对象。例如,引用316可以用于引用具有对象标识符312的对象的公共对象。控制进行到方块508,在此存储管理应用110判定是否存在任何尚未处理的对象。如果是,则控制返回到方块502来处理下一个对象。如果否,则已经处理了所述对象组中的所有对象,并且客户机节点可以(在方块510)将元数据314发送到服务器102来指示所述对象组的对象间的对等组关系。
如果存储管理应用110(在方块504)判定处理中的对象没有由其他客户机节点存储在公共对象116中,则客户机节点(在方块512)将处理中的对象发送到服务器102。存储管理应用110(在方块514)判定所述对象是否为共享的对象。如果是,则(在方块516)将所述对象存储为公共对象116中的公共对象,并且所述公共对象(在方块518)在对应于客户机节点的对象清单表项中被引用。控制进行到方块508以判定是否有更多的对象要处理。
如果存储管理应用110(在方块514)判定所述对象不是共享对象,则存储管理应用110(在方块502)将所述对象存储在客户机节点的特定对象中。例如,客户机节点106a可以将所述对象存储在特定对象118a中。控制进行到方块508以判定是否有更多的对象要处理。
因此,图5示出了某些实施例,其中客户机节点创建其成员对象可以由所述客户机节点或一个或多个其他客户机节点存储的对等组。如果由其他客户机节点中的一个节点存储了成员对象,则对相应公共对象的引用就以足够并且所述客户机节点不会将包括在成员对象中的数据发送到服务器102。结果,不会将冗余文件存储到服务器中,同时通过将组关系元数据发送到服务器102来维护成员对象间的对等组关系。在某些实施例中,组可以属于客户机节点,并且所述客户机节点可以被视为已备份组内的对象,即使所述对象实际上由其他客户机节点发送和存储。
图6示出了根据某些实施例的用于在计算环境100中示例性处理对等组的示例性数据库表项。可以部分地作为图5中描述的操作的结果来生成图6的数据库表项。
在标有示例性对等组构成600的方块中示出了展现对等组关系的数据库114的表项序列。如果存在两个由节点“1”和节点“2”表示的客户机节点并且“A”、“B”表示对象标识符,则术语B(1)表示具有对象标识符“B”的对象属于节点“1”,不论节点“1”是否实际发送和存储所述对象。术语B(1)→A(2)表示具有对象标识符“B”的对象属于节点“1”,但是由节点“2”存储为对象“A”。方块602、604、606分别示出了在时间T0、T1和T2存储在数据库114中的组关系。
在时间T0,节点“1”备份三个名为“a”、“b”和“c”的文件,所述三个文件将成为对象A(1)、B(1)和C(1)并被指派为具有组标识符“w”602a的对等组的成员。
在时间T1,节点“2”备份文件“a”和“b”(与节点“1”在时间T0所备份的文件相同),并且还备份了对象“d”。由于“a”和“b”已存储在服务器102中,所以不会从节点“2”发送文件“a”和“b”,但是文件“a”和“b”被分别指定为对象D(2)→A(1)和E(2)→B(1)。由于“d”是新的,所以对象“d”会由节点“2”发送到服务器并成为对象F(2)。所有三个对象D(2)→A(1)、E(2)→B(1)以及F(2)都被指派为具有组标识符“x”604b的对等组的成员。另外,在时间T1,组标识符“w”604a已在数据库604中存在。
在时间T2,节点“1”备份与已经使用同样名称备份的文件完全相同的文件“a”、“b”和“d”,并且还备份新文件“e”。文件“a”、“b”和“d”不会被重新发送,但是将被指定为对象A(1)、B(1)和G(1)→F(2)。对象“e”由节点“1”存储并表示为对象H(1)。建立了组关系,所述组关系显示A(1)、B(1)、G(1)→F(2)和H(1)是具有组标识符“y”606c的对等组的成员。另外,在时间T2,组标识符“w”606a和组标识符“x”606b已在数据库中存在。
在一段时间后,节点“1”可能需要恢复在时间T2备份的对等组。在此情况下,存储管理应用110将A(1)、B(1)、F(2)、H(1)发送到节点“1”。
因此,图6示出了在某些实施例中,已由某一节点发送到服务器的对象可以通过来自由其他节点备份的对象的引用来链接,无需重新发送所述对象。所述对象和服务器中的对象表示可以形成组。在将文件恢复到客户机节点期间,所述引用可以用于检索文件中包含的数据。
图7示出了根据某些实施例的用于在计算环境110中处理增量-基本组204的流程图。
控制开始于方块700,在此示例性客户机节点106a在本地高速缓存107a中维护有关基本对象204a的信息,不论基本对象204a实际上是否从客户机节点106a发送或是否发现与先前由其他节点106b...106n存储的基本对象相匹配。在经过时间段701后,将(在方块702)启动将来自客户机节点106a的当前对象备份到服务器102的过程。
客户机节点106a(在方块704)判定所述基本对象是否与客户机节点106a和服务器102上存在的当前对象相对应。例如,所述基本对象可以是文件的原始版本而当前对象可以是文件的更新后的版本。
如果客户机节点106a(在方块704)判定所述基本对象与客户机节点106a和服务器102上存在的当前对象相对应,则客户机节点106a通过计算当前对象与基本对象之间的差异来(在方块706)生成增量对象。在某些实施例中,文件的更新后的版本与文件的原始版本之间的文件更改可以是所述增量对象。
存储管理应用110(在方块708)判定所述增量对象是否在服务器102上存在。如果否,则客户机节点106a(在方块710)将所述增量对象发送到服务器102并且(在方块712)创建基本对象与增量对象间的组关系。控制进行到方块714来处理其他备份请求。
如果在方块708,存储管理应用110判定所述增量对象在服务器102上存在,则存储管理应用110(在方块716)创建对先前存储的增量对象的引用并在服务器102中创建当前节点的组关系。随后,控制进行到方块714来处理其他备份请求。
如果客户机节点106a(在方块714)判定与当前对象对应的基本对象在客户机节点106a和服务器102上不存在,则存储管理应用110(在方块718)判定当前对象是否已由其他客户机节点备份。如果是,则不会将当前对象重新发送到服务器,但是(在方块720)引用先前存储的对象并且(在方块722)更新本地高速缓存107a,使得当前对象是客户机节点106a的基本对象。控制进行到方块714来处理其他备份请求。
如果存储管理应用110(在方块718)判定当前对象没有由其他客户机节点备份,则客户机节点106a(在方块724)将当前对象发送到服务器102以进行存储,即,将当前对象的数据发送到服务器102。客户机节点106a(在方块726)更新本地高速缓存107a,使得当前对象是基本对象。控制进行到方块714来处理其他备份请求。
因此,图7示出了某些实施例,其中客户机节点维护与称为基本对象的已备份对象有关的信息的本地高速缓存,不论基本对象是否从客户机节点发送或是否发现与先前由其他客户机节点存储的对象相匹配。在随后的备份操作期间,如果判定基本文件已更改,则计算当前文件与基本文件之间的差异,如果还未由其他节点在服务器中将此差异存储为增量文件,则将所述差异发送到服务器并为客户机节点进行存储。如果基本文件已由其他客户机节点存储,则清单表项引用存储在公共对象116中的基本对象的清单表项。某些实施例允许不同客户机节点上对象之间存在差异,无需将整个对象从每个客户机节点发送到服务器。另外,保存了对象间的组关系。因此,图7示出了维护增量-基本组关系的某些实施例,其中增量-基本组的成员对象可能已由一个或多个客户机节点存储。例如,增量-基本组可以具有由一个节点存储的基本对象和由各种其他节点存储的多个增量对象。
为了说明图7的操作,提供了以下用于维护增量-基本关系的示例性操作序列。
1.时间T0节点“1”备份指派了对象标识符A的文件project.ppt。节点“1”将project.ppt存储在节点“1”的本地高速缓存中。数据库114包括A(1)的清单表项。节点“1”通过电子邮件将project.ppt发送到节点“2”。
2.时间T1在节点“1”修改并备份文件project.ppt。节点“1”计算project.ppt的当前实例与在时间T0备份的实例之间的差异。所述差异被备份并被存储为对象B(1)。数据库114显示B(1)是基于A(1)的增量对象。
3.时间T2节点“2”将从节点“1”通过电子邮件接收的project.ppt进行备份,其中在电子邮件中接收的project.ppt在时间T0由节点“1”备份。在时间T2备份project.ppt期间,不能找到节点“2”的project.ppt的实例,但是找到节点“1”的project.ppt的两个实例,所述两个实例为A(1)和B(1)。判定节点“2”中的project.ppt的当前版本与A(1)相同。因此,无需将对象从节点“2”发送到服务器。但是,数据库114被更新以显示C(2)→A(1)并且节点“2”将project.ppt存储在本地高速缓存中。
4.时间T3节点“1”以电子附件的形式将project.ppt的最新版本发送到节点“2”,所述附件被分离以替换project.ppt的先前实例。节点“2”执行备份,其判定节点“2”中的project.ppt与B(1)完全相同并且节点“2”具有与B(1)的基本对象对应的高速缓存表项。无需从节点“2”发送project.ppt。创建数据库表项以显示D(2)→B(1)并且D(2)是基于C(2)→A(1)的增量对象。
5.时间T4在节点“2”上修改并随后备份文件project.ppt。系统未找到project.ppt的此实例,所以将新的增量对象创建为E(2)。数据库114显示E(2)是基于C(2)→A(1)的增量对象。
6.时间T5节点“2”以电子邮件的形式将project.ppt发送到节点“1”,节点“1”分离所述文件并随后执行备份。所述备份判定节点“1”上的project.ppt的版本与E(2)完全相同并且节点“1”具有E(2)的基本对象(其为A(1))。无需从节点“1”发送project.ppt。但是,将在数据库114中创建表项以指示F(1)→E(2)并且F(1)是基于A(1)。
7.时间T6节点“2”中的用户查看为节点“2”存储的project.ppt的所有实例,包括D(2),D(2)被选择用于恢复。服务器102检查数据库114以判定D(2)与B(1)对应且基于与A(1)对应的C(2)。系统将A(1)和B(1)发送到节点“2”,节点“2”使用所述对象来重新构建project.ppt的所需版本。
因此,以上示例性操作序列包括两个节点上的六个文件,其中每个文件由一个元数据表项表示。在三个已存储的对象中,一个是基本对象,其他两个是增量对象。在某些实施例中,与一个客户机节点关联的组的至少一个对象由其他客户机节点来存储。
图8示出了根据某些实施例的用于在计算环境100中逻辑分组和管理冗余对象的流程图。
控制开始于方块800,在此判定必须在服务器节点102上存储(即,备份)与第一客户机节点(例如,客户机节点106a...106n中的任何一个节点)对应的对象。判定(在方块802)是否已由第二客户机节点将对象发送到服务器节点102,其中已发送的对象存储在服务器节点102中并由第一表项(例如,公共对象清单表项306a)表示,并且其中存储在服务器102中的对象和对象表示形成多个组。
服务器节点102(在方块804)接收来自第一客户机节点的对象,以响应判定所述对象尚未由第二客户机节点存储在服务器节点102中。服务器节点102(在方块806)存储表示所述对象的第二表项,其中所述第二表项(例如,第一客户机节点的对象的清单表项)引用所述第一表项,以响应判定已由第二客户机节点将所述对象存储在服务器节点102中。图8的说明中对第一和第二客户机节点的引用并非暗示实施例限于具有仅由两个客户机节点存储的对象的组。可以形成具有由任何数量的客户机节点存储的对象的组。
某些实施例允许组包括由多个节点存储的对象。例如,特定节点可以管理对等组,除了由所述特定节点存储的任何对象以外,所述对等组还可以包含由五个其他节点存储的对象。同样,增量-基本组可以具有由一个节点存储的基本对象和由其他不同节点存储的多个增量对象。
在某些实施例中,与第一客户机节点关联的组的至少一个对象由第二客户机节点存储。此外,保留了存储在服务器中的对象间的组关系,同时减少了存储在服务器上的对象间的冗余。
其他实施例的详细信息所述技术可以实现为包括软件、固件、微码、硬件和/或它们的任意组合的方法、装置或制品。在此使用的术语“制品”指在介质中实现的代码或逻辑,其中此类介质可以包括硬件逻辑[例如,集成电路芯片、可编程门阵列(PGA)、专用集成电路(ASIC)等]或计算机可读介质,如磁存储介质(例如,硬盘驱动器、软盘、磁带等)、光存储(CD-ROM、光盘等)、易失性和非易失性存储器设备[例如,电可擦除可编程只读存储器(EEPROM)、只读存储器(ROM)、可编程只读存储器(PROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、固件、可编程逻辑等]。由处理器来存取和执行所述计算机可读介质中的代码。其中编码所述代码或逻辑的介质还可以包括通过空间传播的传输信号或诸如光纤、铜线之类的传输介质。其中编码所述代码或逻辑的传输信号还可以包括无线信号、卫星传输、无线电波、红外线信号、蓝牙等。其中编码所述代码或逻辑的传输信号能够通过发射站发射并且通过接收站接收,其中在传输信号中编码的代码或逻辑可以被解码并存储在硬件或接收和发射站或设备处的计算机可读介质中。此外,“制品”可以包括其中包含、处理和执行代码的硬件和软件组件的组合。当然,本领域的技术人员将认识到,可以做出许多修改而不偏离实施例的范围,并且所述制品可以包括任何信息承载介质。例如,所述制品包括其中存储有指令(当由机器执行时,所述指令将导致操作被执行)的存储介质。
某些实施例可以采取完全硬件实施例、完全软件实施例或包含硬件和软件元素两者的实施例的形式。在一个优选实施例中,本发明以软件实现,所述软件包括但不限于固件、驻留软件、微代码等。
此外,某些实施例可以采取可从计算机可用或计算机可读介质访问的计算机程序产品的形式,所述计算机可用或计算机可读介质提供了可以被计算机或任何指令执行系统使用或与计算机或任何指令执行系统结合的程序代码。出于此描述的目的,计算机可用或计算机可读介质可以是任何能够包含、存储、传送、传播或传输由指令执行系统、装置或设备使用或与所述指令执行系统、装置或设备结合的程序的装置。所述介质可以是电、磁、光、电磁、红外线或半导体系统(或装置或设备)或传播介质。计算机可读介质的实例包括半导体或固态存储器、磁带、可移动计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前实例包括压缩盘-只读存储器(CD-ROM)、压缩盘-读/写(CR-R/W)和DVD。
术语“特定实施例”、“一个实施例”、“实施例”、“多个实施例”、“所述实施例”、“所述多个实施例”、“一个或多个实施例”、“某些实施例”和“某一实施例”指一个或多个(但不是所有)实施例,除非另外明确指出。术语“包含”、“包括”、“具有”及其变型指“包括但不限于”,除非另外明确指出。列举的项目的列表并非暗示任何或所有的项目互相排斥,除非另外明确指出。术语“a”、“an”和“the”指“一个或多个”,除非另外明确指出。
相互通信的设备不必持续地相互通信,除非另外明确指出。此外,相互通信的设备可以通过一个或多个媒介直接或间接地通信。此外,具有若干相互通信的组件的实施例的描述并非暗示所有此类组件都是必需的。相反,描述了多种可选的组件以说明更多可能的实施例。
此外,尽管可以按照连续的顺序来描述处理步骤、方法步骤、算法或类似步骤,但是此类处理、方法和算法可以被配置为以替代顺序工作。换句话说,所描述的步骤的任何序列或顺序并不一定指示要求按此顺序执行步骤。实际可以按任何顺序执行在此描述的处理的步骤。此外,可以同时、并行或并发地执行某些步骤。
当在此描述单个设备或物品时,将显而易见的是,可以使用多个设备/物品(无论它们是否协作)来代替单个设备/物品。同样,当在此描述了多个设备或物品(无论它们是否协作)的情况下,将显而易见的是,可以使用单个设备或物品来代替多个设备或物品。设备的功能和/或特性可以替代地由一个或多个其他未明确描述为具有此类功能/特性的设备来体现。因此,其他实施例不必包括设备本身。
图9示出了示例性计算机系统900,其中在某些实施例中,可以根据计算机系统900的计算机体系结构来实现图1的计算环境100的服务器102和客户机节点106a...106n。计算机系统900还可以称为系统,并且可以包括电路902,在某些实施例中还可以包括处理器904。系统900还可以包括存储器906(例如,易失性存储器设备)和存储908。系统900的某些元素可以或者不能在服务器102和客户机节点106a...106n中找到。存储908可以包括非易失性存储设备(例如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、闪存、固件、可编程逻辑等)、磁盘驱动器、光盘驱动器、磁带驱动器等。存储908可以包括内部存储设备、附加存储设备和/或可通过网络访问的存储设备。系统900可以包括程序逻辑910,程序逻辑910包括可以加载到存储器906中并由处理器904或电路902执行的代码912。在某些实施例中,包括代码912的程序逻辑910可以存储在存储908中。在某些其他实施例中,可以在电路902中实现程序逻辑910。因此,虽然图9示出了程序逻辑910与其他元素分离,但是程序逻辑910可以在存储器906和/或电路902中实现。
某些实施例可以涉及用于由个人或集成计算机可读代码的自动处理将计算指令部署到计算系统中的方法,其中所述代码结合所述计算系统被使能执行所描述的实施例的操作。
至少可以并行以及顺序执行图5、7和8中示出的某些操作。在备选实施例中,可以以不同的顺序执行、修改或删除某些操作。
此外,出于说明的目的在单独的模块中描述了许多软件和硬件组件。此类组件可以集成到更少数量的组件中或者分成更多数量的组件。另外,所描述的由特定组件执行的某些操作可以由其他组件来执行。
图1-9中示出或指出的数据结构和组件被描述为具有特定类型的信息。在备选实施例中,可以不同地构造所述数据结构和组件,并且与图中示出或指出的数据结构和组件相比,可以具有更少的、更多的或不同的字段或不同的功能。因此,出于说明和描述目的提供了以上实施例的描述。其并非旨在是穷举的或将所述实施例限于已披露的精确形式。根据上述教导,可以做出许多修改和变型。
*IBM、Tivoli以及Tivoli Storage Manager是IBM公司的商标或注册商标。
权利要求
1.一种方法,所述方法包括判定必须存储与第一客户机节点对应的对象;判定是否已由第二客户机节点将所述对象发送到服务器节点,其中所述已发送的对象存储在所述服务器节点中并由第一表项表示,并且其中存储在所述服务器节点中的对象和对象表示形成多个组;在所述服务器节点处接收来自所述第一客户机节点的所述对象,以响应判定尚未由所述第二客户机节点将所述对象存储在所述服务器节点中;以及将表示所述对象的第二表项存储在所述服务器节点处,其中所述第二表项引用所述第一表项,以响应判定已由所述第二客户机节点将所述对象存储在所述服务器节点中。
2.根据权利要求1的方法,其中已由所述第二客户机节点存储与所述第一客户机节点关联的组的至少一个对象。
3.根据权利要求1的方法,其中保留了存储在所述服务器上的所述对象间的组关系,同时减少了存储在所述服务器上的所述对象间的冗余。
4.根据权利要求1的方法,其中由所述第一和所述第二客户机节点存储的多个对象形成至少一个对等组,并且其中如果删除对等组的一个对象,则所述对等组被无效。
5.根据权利要求1的方法,其中由所述第一和所述第二客户机节点存储的多个对象形成至少一个增量-基本组,并且其中增量-基本组包括基本对象和至少一个指示对所述基本对象的更改的增量对象。
6.根据权利要求1的方法,还包括维护与客户机节点对应的节点标识符;维护与所述对象对应的对象标识符;维护与所述多个组对应的组标识符;维护与所述多个组对应的至少一个组类型;以及根据所述节点标识符、所述对象标识符、所述组标识符以及所述至少一个组类型在数据库中处理所述多个组。
7.一种系统,其中服务器节点连接到多个客户机节点,所述系统包括存储器;以及连接到所述存储器的处理器,其中所述处理器可执行以下操作(i)判定必须存储与第一客户机节点对应的对象;(ii)判定是否已由第二客户机节点将所述对象发送到所述服务器节点,其中所述已发送的对象存储在所述服务器节点中并由第一表项表示,并且其中存储在所述服务器节点中的对象和对象表示形成多个组;(iii)在所述服务器节点处接收来自所述第一客户机节点的所述对象,以响应判定尚未由所述第二客户机节点将所述对象存储在所述服务器节点中;以及(iv)将表示所述对象的第二表项存储在所述服务器节点处,其中所述第二表项引用所述第一表项,以响应判定已由所述第二客户机节点将所述对象存储在所述服务器节点中。
8.根据权利要求7的系统,其中已由所述第二客户机节点存储与所述第一客户机节点关联的组的至少一个对象。
9.根据权利要求7的系统,其中保留了存储在所述服务器上的所述对象间的组关系,同时减少了存储在所述服务器上的所述对象间的冗余。
10.根据权利要求7的系统,其中由所述第一和所述第二客户机节点存储的多个对象形成至少一个对等组,并且其中如果删除对等组的一个对象,则所述对等组被无效。
11.根据权利要求7的系统,其中由所述第一和所述第二客户机节点存储的多个对象形成至少一个增量-基本组,并且其中增量-基本组包括基本对象和至少一个指示对所述基本对象的更改的增量对象。
12.根据权利要求7的系统,其中所述处理器还可执行以下操作维护与客户机节点对应的节点标识符;维护与所述对象对应的对象标识符;维护与所述多个组对应的组标识符;维护与所述多个组对应的至少一个组类型;以及根据所述节点标识符、所述对象标识符、所述组标识符以及所述至少一个组类型在数据库中处理所述多个组。
13.一件用于控制连接到多个客户机节点的服务器节点的制品,其中所述制品能够导致执行操作,所述操作包括根据上述方法权利要求中的任一方法的步骤。
14.一种用于部署计算基础设施的方法,所述方法包括将计算机可读代码集成到计算系统中,其中所述代码与所述计算系统结合能够执行下列操作判定必须存储与第一客户机节点对应的对象;判定是否已由第二客户机节点将所述对象发送到服务器节点,其中所述已发送的对象存储在所述服务器节点中并由第一表项表示,并且其中存储在所述服务器节点中的对象和对象表示形成多个组;在所述服务器节点处接收来自所述第一客户机节点的所述对象,以响应判定尚未由所述第二客户机节点将所述对象存储在所述服务器节点中;以及将表示所述对象的第二表项存储在所述服务器节点处,其中所述第二表项引用所述第一表项,以响应判定已由所述第二客户机节点将所述对象存储在所述服务器节点中。
15.根据权利要求14的方法,其中已由所述第二客户机节点存储与所述第一客户机节点关联的组的至少一个对象。
16.根据权利要求14的方法,其中保留了存储在所述服务器上的所述对象间的组关系,同时减少了存储在所述服务器上的所述对象间的冗余。
17.一种系统,所述系统包括服务器节点;多个连接到所述服务器节点的客户机节点;用于判定必须存储与第一客户机节点对应的对象的装置;用于判定是否已由第二客户机节点将所述对象发送到所述服务器节点的装置,其中所述已发送的对象存储在所述服务器节点中并由第一表项表示,并且其中存储在所述服务器节点中的对象和对象表示形成多个组;用于在所述服务器节点处接收来自所述第一客户机节点的所述对象,以响应判定尚未由所述第二客户机节点将所述对象存储在所述服务器节点中的装置;以及用于将表示所述对象的第二表项存储在所述服务器节点处的装置,其中所述第二表项引用所述第一表项,以响应判定已由所述第二客户机节点将所述对象存储在所述服务器节点中。
18.根据权利要求17的方法,其中已由所述第二客户机节点存储与所述第一客户机节点关联的组的至少一个对象。
19.根据权利要求18的方法,其中保留了存储在所述服务器上的所述对象间的组关系,同时减少了存储在所述服务器上的所述对象间的冗余。
全文摘要
本发明提供了一种方法、系统和制品,其中判定必须存储与第一客户机节点对应的对象。还判定是否已由第二客户机节点将所述对象发送到服务器节点,其中所述已发送的对象存储在所述服务器节点中并由第一表项表示,并且其中存储在所述服务器节点中的对象和对象表示形成多个组。所述服务器节点从所述第一客户机节点接收所述对象,以响应判定尚未由所述第二客户机节点将所述对象存储在所述服务器节点中。表示所述对象的第二表项被存储在所述服务器节点处,其中所述第二表项引用所述第一表项,以响应判定已由所述第二客户机节点将所述对象存储在所述服务器节点中。
文档编号H04L12/24GK1917449SQ200610110678
公开日2007年2月21日 申请日期2006年8月7日 优先权日2005年8月17日
发明者D·M·坎农, C·S·道森 申请人:国际商业机器公司