数据覆盖图、自组织元数据覆盖和应用级多信道广播的制作方法

文档序号:6632822阅读:161来源:国知局
专利名称:数据覆盖图、自组织元数据覆盖和应用级多信道广播的制作方法
背景技术
本发明涉及一种分布式数据结构以及一种技术,该技术用于利用上述数据结构而与一个对等系统相互作用,该技术还用于应用级多信道广播。
背景对等(P2P)系统使用一个网络,该网络连接具有相等或相近性能和职责的参与者机器。上述系统执行任务时无需传统服务器的协调(或需要服务器最小限度的结构协调)。例如,附

图1所示的P2P系统100的高级描述。系统100包括一个具有相等或相近性能和职责的对等实体(102-112)的集。在一个例子中,对等实体(102-112)相应于单独的个人计算机装置,这些个人计算机装置通过互联网或企业内部互联网连接在一起。对等实体(102-112)可以不需要服务器的帮助而在彼此之间直接传递文件或其它信息(如示例性通信路径114所示)。有关P2P系统的一般性介绍可以在技术报告HPL-2002-57HP实验室2002的D.S.Milojicic,V.Kalogeraki,R.Lukose,K.Nagaraja,J.Pruyne,B.Richard,S.Rollins和Z.Xu的“对等运算”中找到。
P2P系统通常使用分布式哈希表(DHT)来促进对象的存储或检索,该对象来自参与系统的对等实体。如其名字所暗示的,分布式哈希表(DHT)涉及一个分布在多个位置上的哈希表,例如分布在与不同计算机装置联合的多个存储器之上。分布式哈希表指定了具有各自指定ID的多个DHT节点。DHT节点定义了抽象的DHT逻辑空间。通过用一个哈希函数支配一个对象,可以将对象插入DHT逻辑空间,或者从DHT逻辑空间中检索该对象,以产生一个关键字。然后使用该关键字,在将要接收上述对象或可以检索到上述对象的DHT逻辑空间中,定位特定目标节点ID。就是说,每个DHT节点与一定范围内的关键字相关联;一个对象是被添加到特定DHT节点或是从该节点检索一个对象,取决于该对象的关键字是否在与该特定DHT节点相关联的关键字的范围内。与非分布式哈希表的实现不同,DHT节点可以自由地加入或离开DHT逻辑空间(例如,分别相应于计算机装置加入或离开P2P系统),所以必须提供功能性以对这些事件寻址。
已发展了各种各样的策略来管理P2P系统中的对象的存储和检索。附图2示出了内容可寻址网络(CAN)策略,例如在S.Ratnasamy,P.Francis,M.Handley,R.Karp和S.Shenker的“可升级内容可寻址网络”(ACM SigComm 2001,SanDiego,CA,USA,2001.08)中所描述的。该策略将DHT逻辑空间做成D维的笛卡尔空间200模型。该CAN策略将空间200划分成连接DHT空间200的节点。例如,当节点n1加入时,CAN策略将整个空间200分配给该节点。当加入节点n2时,CAN策略将空间200分成两半,并且将每一半分别分配到节点n1和n2。当加入节点n3时,CAN策略将右边的一半划分成上面的四分之一和下面的四分之一,将上面的四分之一分配给节点n2,并且将下面的四分之一分配给节点n3。当加入节点n4时,CAN策略将右下方的四分之一划分成左面的八分之一(其分配给节点n3)和右面的八分之一(其分配给节点n4)。该过程重复足够多的次数,以动态地证明添加或移除了节点。合成的分区将逻辑空间定义为用于向分布式哈希表插入对象,以及从分布式哈希表中检索对象。可以这么说,节点“拥有”映射到其空间的对象。
附图3示出了另一个涉及CHORD的策略(例如,I.Stoica,R.Morris,D.Karger,M.F.Kaashoek和H.Balakrishnan在“Chord用于互联网应用的可升级的对等查找服务”,ACM SigComm 2001,San Diego,CA,USA,2001年8月)。在该策略中,DHT逻辑空间构造成循环空间300。DHT节点是分配的ID,并且基于其所分配的ID,被添加到循环DHT逻辑空间300。例如,附图3所示的示例性DHT节点n1、n2、n3、n4和n5所分配的ID管理它们在循环DHT逻辑空间300上的“布局”。如附图2中的情况,在添加DHT节点时,该节点划分DHT逻辑空间300,确定多个子空间或区域。上述区域确定了每个节点“拥有”的对象。例如,要向附图3所示的由DHT策略所管理的分布式哈希表中插入一个对象,该对象受一个哈希函数控制,而产生一个关键字。该对象随即存储在该DHT节点,该节点具有一个分配给该关键字的区域(例如,在包含一定范围的关键字的DHT节点,其中包括对象的关键字)。在附图2和附图3的情况中,可以使用多个查找策略以快速地在P2P系统中寻找一个特定节点。通常,查找策略包括在DHT逻辑空间中制造一些“网络段”,以在需要的目标DHT节点上收缩。一般提供多种机制来加速该搜索。例如,CHORD策略中的每个DHT节点存储其它DHT节点的一组ID。上述其它的ID可以以指数的方式增长,建立所谓的“指针”,其探查逻辑空间300。这允许该查找程序用很少的网络段快速地定位想要的DHT节点。
附图2和附图3只提供了两个示例性公知DHT路由策略的高级概述。还有很多其它的策略。例如,另一个流行的路由策略是PSATRY路由策略,如A.Rowstron和P.Druschel的“Pastry用于大规模对等系统的可升级的分布式对象定位和路由”中所描述的(关于分布式系统平台(中间设备)的18thFIFP/ACM国际会议,Heidelberg,德国,2001年11月)。
P2P系统为传统的客户端—服务器策略带来了很多好处。例如,P2P系统具有自动并且自由地扩展以及缩小的能力,而无需中心的协调。然而缺乏管理协调也引起了很多问题。例如,会期望P2P系统一致行动以完成某些整体功能。在很多例子中,会希望从P2P系统的参与者中聚集数据。或者会希望向P2P系统中的参与者散发信息。有了客户端—服务器方法,服务器可以简单地查询其客户端以从客户端聚集信息,或向其客户端传播信息以向客户端分散信息。然而在P2P系统中,数据的搜集和散发是有问题的,由于P2P系统是由相互连接的同位体的自由联盟组成的,这些同位体可以来去自由。添加集中化的传统的报告功能性,可以有使P2P系统变复杂的效果,并且因而降低了它的灵活性和实用性。
对于可以和P2P DHT相互作用的有效策略,现有技术中存在相应的示例性需求,其可以允许,例如,从其参与者聚集数据,以及向其参与者散发信息。此外,需要有效地组织该P2P DHT并且在操作中与其相互作用,这将会从其效能中受益,例如在应用级多信道广播操作中。
摘要根据一个示例性实施列,将一个方法描述为一个数据覆盖图。该方法包括提供一个分布式哈希表(DHT),该表管理向一个对等系统插入对象,或从该系统移除对象,其中该分布式哈希表包括一个逻辑空间,该空间包括多个DHT节点,上述节点具有多个相关联的DHT区域。该方法还包括,通过联合数据结构中的对象和DHT节点,以及通过在数据结构中的对象之间建立连接,来构建数据覆盖图,作为分布式哈希表的逻辑空间之上的数据结构。该数据覆盖图具有一个树状拓扑,其中该树具有与单独的DHT节点相关联的树节点。每个树节点具有与其相关闻的树节点区域,其相应于分布式哈希表的逻辑空间的一部分。
机器映射到DHT的逻辑空间。每个机器相应于树节点区域中的一个或更多个。每个机器从与其对应的一个或多个树节点区域中,选择其的一个代表性节点,该树节点相应于最大尺寸的树节点区域。每个代表节点选择具有更大尺寸的邻近树节点区域的代表性节点作为其父节点。
在机器映射到DHT的逻辑空间之后,可以在每台机器上搜集元数据。搜集的元数据可以从每台机器发送到其代表性节点,该代表性节点可以将接收到的元数据发送到它们各自的父节点。在树的最高节点(例如,根节点)接收到的元数据通过各自的父节点和代表性节点可以被处理并发送到每台机器。例如,元数据可以是有关每台机器的操作的信息,处理过的元数据可以是管理每台机器的操作的指令。
下面将描述另外的实施例和特征。
附图简述结合附图参照下面的详细描述时,可以更彻底地理解实施例。其中附图1示出了传统的对等(P2P)系统。
附图2示出了传统的CAN路由策略。
附图3示出了传统CHORD路由策略。
附图4示出了一个传统技术,用于连接在局部机器环境范围中的数据结构的两个对象。
附图5示出了一个示例性技术,用于连接P2P分布式哈希表(DHT)环境中的数据结构的两个对象,其中上述两个对象与P2P DHT环境中的两个其它的节点相关联,并且其中该连接技术形成了位于DHT“顶端”的数据覆盖图的基础。
附图6示出了简单的P2P DHT,其中包括一个环、一个区域和一个基本路由表,其为每个边记录r邻近值,其中散列法将区域指定到DHT节点。
附图7示出了示例性树结构,该结构是使用附图5所示的数据覆盖图的原理而构建,其中该树结构涉及自组织元数据覆盖图(SOMO)。
附图8a-8c示出了自底向上构建SOMO的一个处理的渐进式示意图,其中附图8a示出了作为参考的一个帧的局部树,附图8b示出了寻找各自的虚拟节点,附图8c逻辑树到物理机器的映射。
附图9a-9c示出了用于恢复附图8c中所示的自底向上SOMO的一个自缩放处理的渐进式示意图,其中附图9a示出了附图8c中的自底向上SOMO,附图9b示出了添加一台物理机器,该机器的一个相应代表虚拟节点在逻辑树中可以找到,附图9c示出了修正的逻辑树到所有物理机器的映射。
附图10a示出了用于合并资源的DHT的容量与自底向上SOMO之间的结合,共同地形成一个资源库。
附图10b示出了附图7的SOMO树结构的示例性应用,该应用是有关从P2P系统的参与者聚集信息,以及向P2P系统的参与者散发信息。
附图11a示出了应用级多信道广播的示意性配置,附图11b示出了通过使用资源库中的助手节点,对附图11a所示的配置的改进,其中圆圈代表应用级多信道广播的最初成员,矩形表示具有高度数的可用同位体。
附图12示出了用于排定单个应用级多信道广播对话的SOMO报告结构,其中每个节点发布其网络坐标,并且带宽包括在其发送到SOMO的报告中。
附图13示出了用于实现P2P系统的一个参与者的示例性计算机,其中P2P系统包括建立在其DHT顶端的数据覆盖图。
在公开和附图中间,使用相同的数字指代同样的组件和特征。系列100数字指的是附图1中可以初始地发现的特征,系列200数字指的是附图2中可以原始发现的特征,系列300数字指的是附图3中可以原始发现的特征,等等。
详细描述这里描述的策略是关于构建在分布式哈希表(DHT)的“上面,,的数据结构,该DHT用在对等系统中(P2P)。术语“对等(P2P)系统”可以描述参与者的任何相互连接,例如附图1所示的相互连接网络100。在一个实施例中,P2P系统不需要任何服务器类型实体的协助。参与者可以包括任意类型的实体,包括个人计算机、膝上型电脑、个人数字助理、特定应用计算装置等。参与者可以通过路由基础构造的任意组合而彼此互相通信,例如有线和/或无线通信路由机构、各种各样的路由器、网关等。进一步,参与者可以通过网络协议的任意组合而彼此互相通信,例如TCP/IP(例如,互联网或企业内部互联网提供的)。
更常见的,这里所描述的任何功能可以使用软件、固件(例如,固定逻辑电路)、人工操作或上述工具的组合。这里使用的术语“逻辑”或“模块”一般代表软件、固件或软件和固件的组合。例如,在软件实现的情况下,术语“逻辑”或“模块”代表程序码,当在处理装置或装置(例如,一个CPU或多个CPU)上执行时,上述程序码实现特定的任务。程序码可以存储在一个或多个计算机可读存储装置中。
本公开包括以下部分A部分描述了可以构建在P2P DHT“上面”的通用数据覆盖图结构;B部分描述了自组织元数据覆盖图,或“SOMO”;C部分描述了将SOMO应用于在P2P系统中聚集和散布信息;D部分描述了使用P2PDHT的应用级多信道广播;E部分描述了示例性P2P参与者,该参与者可以在P2P DHT系统的类型中与A-D部分中描述的ALM一起使用。
A.P2P DHT之上的数据覆盖图数据覆盖图是由对象组成的数据结构。数据结构是在分布式哈希表的“上面”实现的。作为背景,DHT提供的技术是用于向P2P系统提供的分布式存储器插入对象、以及从上述存储器中移除对象。其通过在逻辑DHT空间中定义DHT节点的聚集来执行该任务。就是说,DHT技术将每个DHT节点分配到DHT逻辑空间的预定部分,这称为DHT节点的“区域”。例如,在CHORD技术中,一个特定DHT节点的区域可以解释为在环形DHT逻辑空间(例如,如附图3所示)中特定DHT节点和它的邻近节点之间确定的范围。通过散列法存储一个对象以产生一个关键字,随后使用该关键字,使用DHT逻辑空间中的特定节点ID来分配该对象。以相关的方式从DHT逻辑空间中检索该对象。相关联的区域最终映射到真实机器(例如,计算机装置和相关原文件存储系统),然而在节点和机器之间不需要存在一对一关系。
数据覆盖图实现在DHT的“上面”,在某种意义上它的对象与DHT逻辑空间中的节点相关联。进一步,一个应用使用下列P2P DHT的协议和服务,从数据覆盖图的数据结构中的一个对象遍历(或路由)到另一个对象。更具体地,对于参考的帧,考虑单机环境402的附图4的传统情况。在环境402中,数据结构包括两个对象,a404和b402,在由单机提供的存储器中实现。对象大致地表示任何类型信息的任何单元;在传统情况中,例如,一个对象可以对应于数据库记录,例如,一个文档。在附图4的例子中,对象a404包括一个指向对象b406的指针408。
相反,附图5示出了P2P DHT环境502的关联中的数据覆盖图的实现。在该环境502中,由于对象是构建在已由DHT提供的DHT节点构架“之上”,DHT逻辑空间中的单个节点是数据覆盖图中对象的“宿主”。例如,DHT节点x504是对象a506的寄主,DHT节点y508是对象b510的寄主。在上述例子中,对象a506引用对象b510。通常,对象a506可以通过存储用于访问对象b510的关键字来连接到对象b510。当创建对象b510时建立该关键字。然而,在附图5的情况中,引用方案包括两个域。第一域512包括一个从对象a506指向对象b510的硬连线地址。该域被称为a.foo.key。第二域514包括一个软状态引用,其标识作为对象b510的宿主的最后已知DHT节点(例如,节点y508)。该域被称为a.foo.host。因而第二域514作为访问对象b510的路由捷径。
由于数据覆盖图的节点可以分布在多个DHT节点上,该数据覆盖图本身可以看作是分布式数据结构。虽然数据结构是分布式的,仍然希望以一种方式存储它,即其对象不会在地理上过度广泛地分散。这可以通过生成a506和b510的关键字来实现,这样它们彼此接近。这样会更可能地造成,P2P DHT系统会使上述关键字与P2P系统的相同节点关联,或与P2P DHT系统中的紧密相关的节点关联。
数据覆盖图还提供了基元的集合,该基元用于操作其数据结构中的指针和对象。更具体地,上述基元包括一个程序(setref),用于建立从对象a到另一个对象b;一个程序(deref),用于返回由对象a所指向的对象;一个程序,用于删除(delete)由对象a所指向的对象。
由于数据覆盖图是在DHT系统的上面实现的,它的基元是DHT的服务。例如,该基元可以使用DHT_insert服务,用于将一个对象插入到DHT逻辑空间。该基元可以使用DHT_lookup服务,用于使用一个预定的DHT路由程序来基于DHT逻辑空间中它的关键字而寻找寻找一个对象(例如由CHORD使用的指数指针查找结构。并且该基元还可以使用DHT_direct程序,用于如果预先已知存储对象的DHT节点时,访问该对象。换句话说,DHT_direct绕过通常的DHT_lookup路由程序,并且直接搜索节点,该节点作为已经出其关键字的对象的宿主。作为副作用,DHT_lookup和DHT_insert将会返回DHT中当前作为目标对象的宿主的DHT节点。
可以通过调整无论哪种用来创建对象的库存程序,使用数据覆盖图的潜在服务,而实现一个数据覆盖图,以便使上述例行程序还建立如上所述作为对象的属性的指针。还可以调整上述库存程序来适应上述的基元以设置一个引用,通过引用返回一个被指向的对象,以及通过一个引用删除被指向的对象。
在DHT的上面构建数据覆盖图有很多优点。例如,当向DHT逻辑空间添加或删除DHT节点时(分别与真实的机器加入和离开P2P系统有关),DHT设计成自组织的。DHT还设计成响应于DHT节点添加到DHT逻辑空间或从DHT逻辑空间删除(例如重建节点间的连接,在节点间传送对象等),而自动地结束其自身。由于数据覆盖图是在DHT的上面实现的,其还可以采用自组织和自结束的特征。更具体地,数据覆盖图可以配置为以同样的比例自组织和自结束,作为潜在DHT。
进一步,可以输入多种应用程序以在P2P DHT的上面运行,给上述应用程序以无限大存储空间的效应(例如,给出这样的印象,即具有大尺寸包括DHT逻辑空间的节点的资源库)。该存储空间大致地包括参与P2P DHT系统的机器中的大量存储器。宿主路由捷径(例如,a.foo.host)利用数据覆盖图使应用程序的性能与下面的DHT系统无关。
在DHT中,假定一个非常大的逻辑空间(例如,160位)。节点以随机的ID加入该空间,并且因而均匀地分割该空间。例如ID可以是节点的IP地址上的MD5哈希信号。接下来,有规则的设置节点,允许依次严格地确定一个节点的负责的区域。设定p和q分别是节点x的前任和继任。一个节点的区域的确定就只是在其紧接的前任ID(不包括)和其自身的ID之间的空间。换句话说,zone(x)=[ID(p),ID(x)]。
附图6示出了将DHT看作一个逻辑空间的方法,其中每个节点在逻辑空间中占用一个逻辑位置,逻辑空间被分割了。同样地,每个节点需要记得它的一些邻近的邻居,以使该逻辑空间是连贯的。一台新机器选择一个随机ID并加入该DHT。该新机器联系任何一个节点,搜索以寻找一个位置,并且因而为自己分割了逻辑空间,以使树是自组织和自结束的。当一台机器的离开被其邻近的邻居机器监视到时,因此机器与DHT分离,该分离是当分离的机器不再发送“心跳”通信以表示它的存在时发生的,这时会发生自结束的情况。因而可以呈现一台新机器。
附图6还可以看作最基本地示出了相容的散列法如何指定区域到DHT节点,其中使用了一个环、一个区域和一个基本路由表。为了靠着系统物力论加固该环,每个节点记录r个邻居到基本路由表的每个边,这通常称为叶集合。邻居们交换定期的通信以显示它们的存在(例如,“心跳”),以及当一个节点加入/离开或当有事件发生时,升级它们的路由表。在附图6中看到的基本环是一个简单的P2P DHT。如果想象该区域是常见哈希表中的哈希存储桶,那么该环就是一个DHT。给出一个空间中的关键字,通常可以解决正在负责的节点。在该简单环结构中的查找性能是O(N),其中N是系统中节点的数量。
根据上述内容建立的算法以O(logN)或者甚至常数状态(例如,路由表实体)达到O(logN)。代表性系统包括CAN分割方案、CHORD分割方案等。DHT的整个系统是以一个内务操作而自组织的,该内务操作代表性的顺序是O(logN)。并且,一个DHT是虚拟的空间,其中资源和其它实体(例如存储在DHT中的文档)相互依存。
B.SOMO树结构;数据覆盖图的实例上述数据覆盖图提供了一个构架,用于在DHT之上建造一个任意的数据结构。该数据结构包括多个对象,组成了数据结构中的节点。该数据结构可以通过以不同方式将节点连接在一起,来假定任何形式的拓扑。进一步,该数据结构可以根据指定到其各个节点的操作,而实现不同的功能。下面的部分描述了被称为“自组织元数据覆盖图”,或简称为“SOMO”的数据覆盖图的例子。
SOMO数据结构是构建来假设一个树结构的拓扑。SOMO树结构具有根结点。该根节点可以具有一个或更多子节点,该节点依次分别具有其自身的子节点。SOMO树结构的末端节点称为叶节点。该叶节点分别与P2P DHT系统的DHT逻辑空间中各自的DHT节点相关联。
如下面要更详细地描述的,SOMO树结构的一个功能是从DHT节点提取元数据(其最终包括从实现P2P系统的机器提取数据),并且通过SOMO树传递该元数据到SOMO树结构的根节点。一个应用程序可以读取该元数据并且基于该元数据执行一些操作(元数据通常指与P2P系统中执行的操作相关闻的任何类型的信息,例如有关包括P2P系统的机器的性能的信息)。SOMO树结构还可以用于从SOMO树的根节点向下散发信息到P2P系统中的DHT节点以及相关的机器。因而,一般来说,SOMO树结构可以用作数据聚集(例如,集合)和数据广播。
附图7示出了构建在基础的DHT逻辑空间704之上的示例性SOMO树结构702。DHT逻辑空间704分割成很多区域,例如示例性区域706和示例性区域708。每个区域包括一个与其相关联的DHT节点,例如示例性DHT节点710。该DHT可以根据任何技术将DHT逻辑空间704分割成区域,例如由CAN分割方案、CHORD分割方案、PASTRY分割方案或任何类型的DHT分割方案提供的示例性技术。例如,使用CHORD分割方案,DHT逻辑空间704可以确定为一个环,该环具有分散在不同位置环绕它的节点,并且该区域可以相应于在环上分离相邻邻近DHT节点的跨度。
SOMO树结构702包括一个或更多在这里称为“SOMO节点”以将它们与DHT节点分辨开的节点。每个SOMO节点由符号s表示。附图7所示的示例性SOMO树结构702包括SOMO节点s712-726。节点s712-726形成一个反向的树形。也就是说,根节点712分叉成子节点714和子节点716。上述子节点分别具有它们自己的两个子节点;例如,子节点714包括子节点718和子节点720。虽然为了方便解说和讨论,简化了附图7中示例性SOMO树结构702的全部结构,SOMO树结构702最终结束在建立于DHT逻辑空间704中相应的DHT节点上的叶节点(例如,叶节点722、724、726)。通常,SOMO树结构702中SOMO节点之间的连接如附图7中的点线所示,其将SOMO节点连接在一起;该连接可以使用如前面“数据覆盖图”部分所述的引用方案来实现。
每个SOMO节点s具有一个与其相关联的区域。例如,根SOMO节点712包括区域728,其横越了整个DHT逻辑空间704。子节点716包括区域730,其横越了根节点712的区域728的一半。SOMO树结构702中更低的另一个子节点720具有区域732,该区域是根节点712的区域728的四分之一。相应地,添加到SOMO树结构702的体系中的相续节点s导致逐渐地密集分割根节点712的区域728。同样,由于展示密集(denser)分割空间704的DHT逻辑空间704的上述区域,SOMO树结构702的体系长得“更高”。通常,附图7通过横越SOMO节点的各自区域的长度的水平箭头,表现与各个SOMO节点相关联的区域。一个作为特定SOMO节点s的宿主的DHT节点由DHT_host(s)表示。
如上所述,要实现P2P资源库,应当用系统内监视基础结构来增大DHT,这是因为对于一个大型系统来说,依赖外部监视服务是不切实际的。上述基础结构必须满足一些关键特性(1)作为宿主DHT在相同规模上自组织;(2)完全分布式以及自结束;以及(3)对于元数据的聚集和分散,要尽可能地精确。如下面描述的,这里被提议的SOMO是自下至上建造的。
上述监视基础结构可以有很多个拓扑。由于资源库的缘故,最重要的功能之一是聚集。因此,SOMO是一个k级的树,其叶子是种植在每个DHT节点。从末端聚集信息,并且向根部传播。因而,可以将SOMO看作从叶到根的“会聚记录”,并且随后(随意地)再次从根到叶返回传播。聚集和分散状态是由O(logkN)限制的,其中N是对象的总数。SOMO中的每个操作包括不多于k+1个相互作用,这使其充分地分布。通过使用软状态的原理,可以在O(logkN)时间生成数据。SOMO树在同样的时间范围内自组织和自结束。在某种程度上,SOMO可以看作响应的“新闻传播”,其结构和处理被所有节点共享。该实时全球“新闻”创造了资源库的效应。
B.1构建SOMOSOMO的核心思想是,取代与多个单独机器中的每个共同工作并且将它们配置成一个体系,首先在一个逻辑空间中“绘制”一个树,随后制造从逻辑树到实际机器的映射。
如上所述,数据覆盖图可以生成和缩减,作为在基础DHT中制造的动态及无人管理调整的一个功能。由于SOMO树结构702是数据覆盖图的一个例子,这意味着SOMO树结构702也具有响应于基础DHT的调整而生成和缩减的能力。同样,SOMO树结构和其基础DHT一样,具有自我结束以平衡基础DHT中的调整的能力。下面的子部分描述了一种方式,其中SOMO树结构702的发展响应于其基础DHT中的改变。
B.2构建逻辑树逻辑树的功能是作为引用框架,其帮助所有P2P库中的机器以完全分布式和自动方式组织成一个体系。其由一系列虚拟节点组成,每个节点具有附图8a所示的一个关键字,这还确定了它在一个有维DHT逻辑空间中的位置。
构建树的第一不变量是每个虚拟节点具有空间的一部分;虚拟节点的关键字是其具有的子空间的中心。假定DHT逻辑空间是
,那么根虚拟节点的关键字是0.5。然后将根虚拟节点的空间(在该点的整个逻辑空间)均匀地划分成k个子空间,每个子空间在第一级有一个虚拟节点。递归地应用该划分方法,则构建了一个逻辑树。因此,第i级总共包括ki个虚拟节点,其中每个虚拟节点具有1/ki大小的子空间。具体地,第i级的第j个(0<j=<2i)虚拟节点具有[j/ki,(j+1)/kj]的空间,并且关键/定位在(2j+1)/2ki,其中“k”是度而“i”是级。相应地,附图8a-8c所示的示例性过程是用于构建一个自底向上SOMO树结构。
B.3映射到A物理树当每台机器在P2P环境中找到它的父机器时,就构建了物理树。这可以通过以如上所构建的逻辑树为杠杆以完全分布式的方式实现。由于所有机器具有逻辑树的全部知识,使用一个以级为次序树遍历算法,每台机器选择落入其区域的最高虚拟节点。该虚拟节点表示最终物理树中的该机器,并且同样地它可以称为机器x的代表性节点或repre(x)。逻辑树的确定性本性意味着x可以计算repre(x)的父虚拟节点的关键字。如附图8b所示,使用DHT查找,x作为该关键字的宿主的机器y,并且建立到y的连接。每台机器仅仅使用本地知识(区域和确定性局部树拓扑)执行同样的方法。通过一对局部关键字标识所有子—父连接指向子机器的代表性虚拟节点和指向父机器的相应父虚拟节点。使用“心跳”保持该连接并且一直保持上述不变量。例如,如果由于新邻居的加入,x的区域分裂了,x会断开所有连接,其父—结束点不再属于该区域。在这时,该连接另一端的机器会通过执行早先概述的相同方法,重建它们的父机器,因而该拓扑自结束的一个例子见附图9a-9c所示的示例性方法。
上述方法可以理解为将机器映射到DHT的逻辑空间。每台机器对应于一个或更多树节点区域。每台机器从一个或更多与其对应的树节点区域,选择与最大尺寸的树节点区域相对应的树节点,作为其代表性节点。每个代表性节点选择另一个代表性节点作为其父节点,上述另一个代表性节点是对于相邻树节点区域来说具有最大尺寸的代表性节点。一个用于选择代表性和父节点,包括根节点的示例性方法,如附图8a-8c所示。如附图7所示,随着树的级数的减小,树节点区域的尺寸也减小,其中第一级是根节点,其具有相应于DHT逻辑空间的整个横越的树节点区域。
上述方法以完全分布式的方式将物理机器组织成一个树。进一步,树是以很高的概率作为k级并且对称的。代表性虚拟节点的确定在于它是落入机器区域的最高虚拟节点。由于父虚拟节点属于一些其它机器,每台机器都是连接着的。结果图没有任何的环,因为这会干扰代表性节点的确定。因而,它必须是一个树。逻辑树拓扑是确定性,只有一台机器的其它输入需要DHT空间中它自己的区域。因而,树的构建是完全分布式的。逻辑树是k级对称树。物理树是否也是k级并且对称的,主要由区域分布所决定。由于DHT中机器的ID是随机生成的,结果树有很高的概率是k级并对称的。
SOMO可以自动地处理成员的变化,而且付出最小的代价,因为每个连接是由一对逻辑点决定的第一点是代表性虚拟节点,并且是由其DHT节点确定的,第二点也是由于第一点的给出而是确定性的。因而,只要保持该不变量,可以在成员变化的任何时候重建拓扑。结果,当新成员加入该库时,SOMO树生长,当如附图9a-9c所示,同位体分离时,SOMO树缩减。相应地,用于结束自底向上SOMO树结构的示例性过程如附图9a-9c所示。
如果需要将一台具有最大容量的机器放置在逻辑树的顶端,节点ID可以改变,而不是随机地生成。随后通过SOMO制造向上的合并分类来标识最大容量的节点。于是该节点将自身ID改变成当前具有SOMO根逻辑点的节点(即,整个空间
的0.5),这有效地改变了作为根的机器,而不扰乱其它同位体。通过首先在逻辑空间中操作,该自最优化特性成为可能。
C.元数据集合和分散作为基础结构的SOMO既不影响聚集的数据,也不影响被调用来处理聚集的数据的操作。由于建造资源库的缘故,每台机器只聚集自身的资源度量,使其资源度量与从其子节点接收到的相结合,然后将它们并入其父节点。传送的数据应当是软状态的。同样,作为最优化,报告可以是连续报告的“德尔塔”形式。
SOMO的特性是由物理树的高度决定的,这接下来是由逻辑数的参数(即k)和逻辑空间中DHT节点的分散所决定的。由于节点的ID是随机的,物理树的高度是O(logkN)。因而,给定一个数据报告间隔T,从SOMO叶和花到其根聚集信息的最大延迟是logkN·T。当SOMO的层级之间的流完全非同步时,导出该范围。如果SOMO的上部节点对报告的呼叫立即触发了其子节点的相同动作,那么等待时间可以减小到T+thop·logkN,其中thop是宿主DHT中一个往返的平均等待时间。非同步流的等待时间范围是logkN·T,因而实际中同步形式的范围是T(例如,5分钟)。注意O(thop·logkN)是绝对低的范围。对于2M节点并且k=8以及每DHT节点间路径200ms的代表性等待时间,SOMO根将具有1.6s延迟的全局浏览。
C.1应用SOMO树结构如上所述,SOMO树结构702的示例性使用是从由DHT逻辑空间704表示的P2P系统的物理机器中聚集信息。SOMO树结构702的另一个示例性使用是散布信息到上述物理机器。所聚集的信息可以是元数据。元数据描述了关于P2P系统的操作的信息,例如反映了其物理机器的性能的信息。散布到物理机器的信息可以表现能够管理物理机器的操作的指令。因而可以将SOMO机制解释为从叶节点到SOMO根节点的聚集传送,以提供数据的聚集,并且执行一个返回到SOMO叶节点的多点传送以提供数据散布。
附图10a示出了DHT的聚集资源的能力与SOMO的结合,该结合共同地制造一个由一个DHT和一个SOMO组成的P2P资源库。简单来说,DHT不是用于共享数据,而是用作将大量资源采集到一起的有效方式,伴有极少或没有管理代价,以及没有可量测的阻碍。SOMO是在DHT上分层次的自组织“新闻广播”。随后O(logN)时间的聚集资源状态创建单个资源库的效应。附图10a所示的过程示出了资源对偶的登记、统计数字的聚集、将聚集的统计数字聚集成一个快照,然后确保结果动态数据库能够被应用程序查询。P2P资源的比例和组成需要每一层彻底地自组织、自扩展和自结束,以使实现很小的管理代价。
例如,附图10b表示一个方案1002,其中SOMO树结构1004用于通过DHT逻辑空间1008,从P2P系统中的物理机器1006聚集信息。更具体地,叶SOMO节点从其宿主DHT节点检索需要的信息(作为副作用,该方法还可以重启一个子SOMO节点,如果它由于其宿主DHT节点的崩溃而已经消失)。一个或更多应用程序1010可以为任何已确定的目的调用该聚集操作(例如为了性能监视的目的,也就是说,聚集有关包含P2P系统的物理基础结构的不同负载和容量的信息)。
更具体地,附图10b示出了SOMO树结构1004的配置,该配置通过示出具有箭头的线来采集信息,该箭头从每个SOMO节点指向其对应父SOMO节点。以这种方式,信息从SOMO树结构1004的叶SOMO节点向上传送到其根SOMO节点。应用程序1010可以从根SOMO节点提取从整个P2P系统挑选信息的全部报告。该报告可以包括原始未组织数据。可选地,该报告可以包括合成并经过分类的数据,证明SOMO节点已配置为在将它们聚集的信息传送到它们相应的父SOMO节点之前,先执行该功能。该SOMO节点可以配置为通过配置“op”成分来执行该任务以执行合并及分类。例如,成分op可以确定一个操作,特定SOMO节点可以在传送经过它的信息上执行该操作(在数据聚集模式或数据散布模式中)。例如,参照附图7,op可以指定在使用SOMO树结构702聚集信息的过程中,可以执行合并分类操作。由于包括op成分,SOMO树结构702可以以分布方式或并行方式执行任何功能。因而,SOMO树结构702还可以看作一个机构,用于提供分布式并行处理框架以实现任何类型的功能性。这仅仅是示例性的例子。SOMO节点可以在信息通过SOMO节点到根SOMO节点的路径中,在该信息上执行其它操作,例如多种算术操作。
下面的伪码提供了一种技术,用于使用SOMO树结构1004来聚集信息伪码SOMO聚集程序<pre listing-type="program-listing"><![CDATA[  get_report(SOMO_node s){  Report_type rep[1..k]  for i∈[1..k]  if(s.child[i]≠NULL)//retrieving via DHT  rep[i]=deref9s.child[i]).report  s.report=s.op(rep[])  }]]></pre>要聚集系统元数据,SOMO节点可以通过从其各自的子节点要求数据,周期地执行上述程序。该聚集程序可以从SOMO树结构1004返回到摘要特定信息。更具体地,SOMO树结构1004的分层次的本性有利于使用复杂范围的查询以发现与给定逻辑DHT空间区域相关的信息。例如,如果k是2,那么需要检索DHT逻辑空间的第一个四分之一部分的状态报告,应用程序1010只需要获取从第二级SOMO树结构1004的左边子SOMO节点1012的一个报告。另一个有用的实现包括在SOMO节点注册查询,这从本质上将SOMO机构转换成了公开预订(“pub-sub”)基础结构。
附图10b示出了方案1002,其中SOMO树结构1004用于通过DHT逻辑空间1008将信息散发到P2P系统中的物理机器1006。一个或更多应用程序1010可以为任何特定目的(例如到物理机器1006的散发指令)而调用该散发操作。在附图10b中通过示出了具有箭头的线而表示散发信息的SOMO树结构1004的配置,该箭头从父SOMO节点向下指向到其各自的子SOMO节点。如此,信息从SOMO树结构1004的根SOMO节点向下传播到其叶SOMO节点。该信息可以通过SOMO树结构1004的分枝传播,而无需SOMO节点的调整。可选地,由于它们的op成分,SOMO节点可以在信息被传送到它们相关的子SOMO节点之前,在信息上执行任何类型的操作。同样,如同数据聚集的情况中已描述过的,有可能通过只调用选择的SOMO树结构1004的分枝,来将信息散发到DHT逻辑空间1008中的仅仅一部分。
D.应用级多点传送(ALM)可以实现另外的应用程序和数据覆盖图的变化以及SOMO树结构。例如,在一个实施例中,SOMO机制可以通过提供算法用于应用级多信道广播(ALM),该算法作用于从SOMO树结构生成的元数据,或生成穿过SOMO树结构向下传播的信息。ALM技术可以通过在附图10b所示的应用程序1010中提供适合的功能性而实现。附图11a-11b通过例子示出了用于ALM的示意性安排。
P2P资源库的可用性提供了最优化的可能性。如附图11a-11b所示,当识别了另外空闲的但是适合于帮助的同位体时,可以做出最优化。一旦已识别了适合的同位体时,可以结合成具有更佳性能的拓扑。因而,附图11b示出了对于附图11a中的安排的改善。该改善是使用资源库中的帮助节点而作出的。在附图11a-11b中,环表示应用级多信道广播的原始成员,而矩形表示具有更高度数的可用同位体。最优化可以针对一个市场需求系统,以便由对等系统中具有最多可用资源的机器来执行最需要资源的任务。
D.1为ALM生成资源度量对于很多P2P应用程序,资源统计数字不只包括CPU负载和网络活动性,还包括更复杂的资源统计数字,其不能局部地从机器导出。相关的例子是ALM。假定需要安排一个会话,并且通过查询SOMO已得到潜在帮助同位体的一个大的列表,随后必须选择一个在附近并且有足够带宽的同位体。如果只给出了该同位体的IP地址,在它们之上查询以寻找它们的近邻的过程既浪费时间又倾向于犯错。下面的讨论将集中在作为问题的缓和的IP地址和带宽的度量上。将会解释这些属性是如何通过调节DHT节点之间的相互作用而生成的,上述相互作用保持了逻辑空间的完整性。
D.2码坐标估计为了寻找基于坐标的等待时间的估计,latency(x,y),必须计算distance(coord(x),coord(y)),其中coord是维数.欧几里得空间的网络坐标。每个节点必须提供它的“心跳”给其叶节点,以连续地保护DHT空间。如果每个节点随机地选择去肯定响应来自其叶集合的节点中的心跳讯息,那么随着时间过去它会具有一个到其叶集合邻居的测量的延迟向量dm。在心跳讯息中,每个节点还报告它的当前坐标。因而,一个预定延迟向量dp同样可用。节点x通过执行向下简化算法来升级其自身坐标,并且极小化函数E(x)=&Sigma;i=1,r|dp(i)-dm(i)|.]]>局部地实现最优化,并且只升级x自身的坐标,这将会在随后的心跳中散发到x的叶集合邻居。所有节点周期性地执行该方法,其中节点坐标和测量并预定的延迟向量被连续地升级。
D.3瓶颈带宽估计一个同位体的网络带宽对于很多运行在P2P资源库上的应用程序来说是另一个重要的度量,因为瓶颈带宽和吞吐量之间有关联。因此,瓶颈带宽可以作为吞吐量的预报器。假定瓶颈连接在最后的节点间路径上。对于每个节点,其溯流的瓶颈带宽估计为从该节点到其叶集合成员的测量瓶颈带宽的最大值,这由叶集合成员的节点的向上连接带宽和向下连接带宽限定。基本思想是,如果一个邻居的向下带宽大于该节点的向上带宽,则估计值是精确的。因此叶集合节点越多,得到精确估计值的机会越大。同样的原因,节点的下游瓶颈带宽估计为从其叶集合节点到其自身的瓶颈带宽的最大值。
测量瓶颈带宽是公知的。例如,在包对偶技术中,两个尺寸为S的包从源节点紧接地发送。接收者测量其中的时间差量T,并且估计来自源的瓶颈带宽是S/T。
“心跳”之上的叶集合节点的合作使包对偶技术自然地展开。周期地,节点x紧接地发送两个心跳讯息到邻居y,填充每一个,以便使它们的尺寸足够大(比如说1.5KB)。“y”现在具有了从x到其自身在路径上的瓶颈带宽的估计值。该值将会在下一个到x的心跳中捎带确认。类似地,y进行与x相同的探查。在x从其叶集合成员聚集到足够的测量带宽后,可以以如上方式估计其自身的带宽。
D.4在P2P资源库中预定ALM会话现在将证明如何为多样的同步ALM会话最好地利用P2P资源库。最终目标是使会话达到最佳性能,并且有资源库中所有可用并且足够的同位体。会话的性能是由特定的QoS确定的。此外,高优先权的会话会适当地需要更多共享的资源。这里,重点放在从小到中等的会话尺寸上,其中认为QoS是一种需求(例如,视频会议)。还假定这里有静态的成员,其中参与者的原始集合为一个给定的会话“s”表示为M(s),然而该算法也可以扩展以适合动态成员。
会话的任务管理者要运行调整的启发式的算法以设计ALM的拓扑。要利用库中的空闲资源,任务管理者询问SOMO以得到候选者的列表。该列表的项目不仅包括可用的资源,还包括其网络坐标和带宽。当制定设计时,任务管理者向外联系帮助同位体,以预定它们的使用。竞争任务会只通过它们各自的优先权解决它们的竞争。
对于ALM,存在关于最优化的几个不同标准,象带宽瓶颈、最长等待时间或等待时间的变化。所有成员的最大等待时间在这里用作树构建算法主要对象,由于其可以大大地影响终端用户的感觉。每个节点在通信会话的数量上有一个其可以处理的范围,这里称其为“度”。这会导致有限的访问带宽或终端系统的工作量。执行最优化,以便由对等系统中具有最多可用资源的机器执行最需要资源的任务。
为一个给定会话定义QoS可以在形式上如下所规定定义1.度限制,最小高度树问题(DB-MHT)。给出一个无目标的完成图表G(V,E),一个度范围dbound(v),其中v∈V,每个边的等待时间函数l(e),e∈E。寻找G的一个横越树T,以便对于每个v∈T、v的每个度满足d(v)≤dbound(v),并且T的高度(测量为从根开始的聚集等待时间)是最小的。
使用资源库,可以扩展QoS的上述定义。帮助节点H的扩展集合添加到图表,其中对象通过添加最小数量的帮助节点,要达到与不使用H导出的最优化设计相关的最佳解决方案。
D.5安排一个单一ALM会话下面将讨论安排一个单一ALM会话的方法,其作为当利用一个资源库时最优化单一ALM会话的算法。该算法具有O(N3)性能范围,并且能为数以百计的节点在不到一秒的时间内生成一个解决方案。例如,见下面的表格A,没有虚线框里的码。在这里称为“AMCast”的该算法,首先开始于根,并且将其添加到当前解决方案的集合中。接下来,其余节点的最小高度通过寻找它们在解决方案中最近的潜在邻居而计算,并服从度的限制。该循环的返回通过吸引解决方案中具有最小高度的节点。继续该处理,直到所有节点最终包括在结果树中。要保证得到以其为开始的最佳可能树,可以通过进一步调整或调节量度标准来增加算法。例如,为近似一个全局最优算法,调整或调节可以包括以启发式的移动集合来调节树。上述移动包括(a)为最高节点寻找新邻居;(b)用另一个叶节点交换该最高节点;以及(c)以另一个子树交换其根是最高节点的父节点的子树。
在搜索有益的帮助节点时,算法包括两点考虑(1)触发该搜索的时间;以及(2)判断一个添加的标准。通用机构由表格A中标注为“A部分”的框中的pseudo码所描述,下面表格A<pre listing-type="program-listing"><![CDATA[  ALM(r,V){//v==M(s),ris the root  for all v∈V//initialization  height(v)=1(r,v);parent(v)=r  T=(W={r},Link={}  while(W<V){//loop until finish  find u∈{V-W}s.t.height(u)is minimum  ========Section A================  if(d(parent(u))==dbound(parent(u)-1)  h=find_helper(u)  if h≠NULL{//integrate the helper node  W+={h};Link+={h,parent(u)};  W+={u};Link+={u,h};  }else  ============================  W+={u};Link+={u,parent(u)};  for all v∈{V-W}{//re-adjust the height  height(r)=∞  for all w∈Wif d(w)<dbound(w)&amp;&amp;height(v)>height(w)+1(w,v)  height(v)=height(w)+1(w,v);parent(v)=w  }  }  adjust(T)  return T  }]]></pre>假定u是AMCast算法要添加到解决方案中的节点,并且parent(u)是其父节点。当parent(u)的自由度减小到1时,触发用于附加节点h的搜索。如果该h存在于资源库中,那么h变成u的父节点,并且替代u作为原始parent(u)的子节点。不同的形式只在h的选择标准方面变化,但是最优化的该分类可以称为临界节点算法。“临界”意味着,对于一个特定节点,有根据原始算法改进的最后机会。
不同的算法可以用于搜索h。该算法的第一个改变是寻找一个另外的节点,其最接近父节点并且有足够的度(例如,可用“4”)。假定(a,b)是两个任意节点a和b之间的等待时间。下面启发式的收益甚至更好地导致如表格B所示l(h,parent(u)+max(l(h,v)))is mininmumwhere v satisfies parent(v)=parent(u)&amp;&amp;\\条件1dbound(h)≥4&amp;&amp; \\条件2l(h,parent(u))<R \\条件3这里,v可以是u的同属。这里的思想是,由于所有的上述v将会潜在地是h的未来子节点,l(h,parent(u))+max(l(h,v))最可能在h加入(条件1)后影响潜在的树高度。这样的一个帮助节点应当具有足够的度(条件2)。最后,要避免“垃圾”节点,它们很遥远,即使它们具有高的度,施加界限Rh必须在距离父节点parent(u)R以外的范围内(条件3)。要执行该处理所必需的输入参数包括网络坐标,以便我们可以计算任意对偶之间的等待时间,以及每个节点的度。通过使每个节点在发送往SOMO的报告中包含它们的网络坐标以及带宽,如附图12所示,使得上述处理成为可能,该报告是调度程序所使用的SOMO报告的清楚的呈现。因而,每个节点具有一个特定的负载(可用CPU循环)、一个特定存储器容量(RAM,磁盘空间,高速缓冲存储器),还具有一些网络信息,类似节点的所在(IP地址)和该节点拥有多少可用带宽。附图10a示出了在附图12所示的SOMO报告中使用的数据的聚集。
D.6组织多种ALM会话当上述的部分为一个ALM会话描述了单机时序安排算法,该会话讨论了如何处理多种现行会话,其中具有较高优先权的会话优先地指定更多资源,将资源库作为整体的利用被最大化。
所有会话在随机的时间开始和结束。每个会话具有1到3之间的整数值优先权。优先权1是最高一类。最大数量的同步会话从10到60变化,每个会话具有尺寸为20的未覆盖成员集合。因而,当有60个现行会话时,所有节点会属于至少一个会话。就是说,现行会话的原始成员的部分从17%到100%之间变化。计算帮助节点,一个会话代表性地不止使用原始成员。同样,具有较高度的节点会包括在不止一个会话中。
该最优化多种ALM会话的方法的潜在原则类似于一个组织良好的社会以全局为条件,可以得到准时并且可信的知识,最好是让每个任务凭它们自己的证书(也就是,它们的优先权)竞争资源。该纯市场主导模式允许在不需要任何类型的全局调度程序的情况下实现该目标。
对节点上适当的优先权的设定要采取额外的考虑,上述节点包括在一个会话中。在合作的P2P环境中,如果一个节点需要运行一个包括其自身作为成员的任务,使该任务具有该节点中的最高优先权是公平的。因而,对于具有优先权L的会话s,其拥有对于M(s)中的节点的最高优先权(也就是1st优先权),并且L在别处(即,对于M(s)之外的任何帮助节点)。这保证了每个会话以相应于AMCast+adju算法的较低限度运行。假定s是系统中的唯一会话,得到上限(即Leafset+adju)。
在以前,ALM会话的根是任务管理者,其执行树拓扑的设计和调度。每个会话基于由SOMO提供的系统资源信息,使用叶集合调整算法来彻底地在其自身上调度。对于具有L优先权的会话,任何由具有比L低的优先权的任务所占用的资源都认为对它是可用的,类似地,当一个现行会话在其当前计划中丢失了资源,它需要再次执行调度。每个会话还会周期性地重新运行调度,以检查是否有更好的设计,该计划使用最近自由的资源,比当前的计划好,如果这样就转换到上述更好的设计。
要促使SOMO聚集和散布资源信息以帮助每个任务管理者的计划,像以前每个节点在它的发送到SOMO的报告中发布例如网络坐标等信息。然而,它的度被分解成现行会话带有的优先权。这概括在度数表格C的下面两个例子中度数表格C
|------------x的度数表-----------------|-----------y的度数表-------|在度数表格C中,示出了两个节点的度数表格。x的全部度是4,由会话s4采用为2度,s12采用为另一个1度,给x留下了一个自由度。另一方面,y只具有2度,它们都被会话s5采用。每当发生影响了节点的度分割的调度时,度数表会升级。度数表,如前面所述,是通过SOMO聚集的,并且对于任何运行的查询任务来说是可用的。度数表格C示出了对于一台机器来说,有可能在ALM会话的不同流中分割其自身,以便通过划分带宽,能够同步地完成某些事情。同样地,度数表格C示出了能拥有多少全部的度,以及通过在不同任务中划分容量可以拥有多少合计容量,以便可以将它们调度成不同的优先权会话。
当在应用级多信道广播中有更多的会话并且全部资源变得不足时,性能会下降。然而,较高优先级的任务可以比较低优先级的任务维持更好的性能。同样,当资源在激烈的竞争之下时,较低优先级的任务会丢失更多的帮助节点。
D.7具有ALM会话的资源库要创建一个资源库,不可避免地采用分层次的结构以保证及时的集合。例如,在一个两级体系结构中,其中IP级多信道广播用于聚集一个位置上的统计数字,随后结果被聚集到一个中央地点,这里讨论因素以制造可行的广域资源库,也就是(1)P2P DHT的自组织能力的结合,以及(2)一个系统内部、自扩展监视基础结构。
D.8使用资源库最优化ALMALM是用于P2P DHT的有利应用程序。然而,要最优化ALM,应当利用资源库。给定一个资源库,最优化可以由一个单一ALM会话完成,也可以是不插手的、市场主导的方法中多种同步的ALM会话的最优化。然而,注意ALM只是一个用于P2P资源库的应用程序。不过,对于与集中匹配机制相比较而言更为分布式的方法来说,提倡两个步骤的方法(1)应用程序指定每个任务调度;以及(2)通过任务中的调整结合市场主导的公平竞争。
E.用于实现一个P2P参与者的示例性计算机环境如上面A部分所述的数据覆盖图,是伸展在多台机器之上的数据结构,并且也许伸展在P2P系统中其它的基础结构之上。因而,P2P系统中每个参与者可以看作实现了数据覆盖图的一部分。要达到该效果,每个参与者可以存储要创建数据覆盖图以及与其相互影响所必需的码和数据。该码和数据可以存储在每个参与者的易失性和/非易失性存储器中(将在下面描述)。
例如,附图13示出了作为计算机1342的一个示例性P2P参与者的高级视图。该计算机1342相应于一个通用计算机或服务器类型计算机,并且连接显示装置1374。然而,计算机1342可以使用其它类型的计算装备来实现。例如,虽然未示出,计算机1342可以包括手持或膝上型装置、设定的机项盒、大型计算机等。
示例性计算机1342可以用于实现上述的处理。计算机1342包括一个或更多处理器或处理单元1344、一个系统存储器1346和一个总线1348,其连接了不同的系统组件,包括系统存储器1346到处理器1344。计算机1342中的一个或更多存储器可以用于存储码和数据,该码和数据用于实现部分数据覆盖图,例如SOMO树结构的一部分。
总线1348表示一个或更多不同类型的总线结构,包括存储器总线或存储器控制器、外围总线、加速的图形端口和使用多种总线体系结构中任一种的处理器或本地总线。系统存储器1346包括只读存储器(ROM)1350和随机访问存储器(RAM)1352。一个基本输入/输出系统(BIOS)1354存储在ROM1350中,其包括帮助在计算机1342中传送信息的基本路由,例如在启动过程中。
计算机1342进一步包括一个硬盘驱动器1356,用于从一个硬盘(未示出)读出或写入,一个磁盘驱动器1358,用于从可移动磁盘1360中读出或写入,以及一个光盘驱动器1362,用于从一个可移动光盘1364中读出或写入,例如CDROM或其它光学媒介。硬盘驱动器1356、磁盘驱动器1358和光盘驱动器1362通过SCSI接口1366或其它适合的接口连接到总线1348。驱动器和与其连接的计算机可读媒介提供了用于计算机1342的计算机可读指令、数据结构、程序模块和其它数据的非易失性存储器。虽然这里所述的示例性环境使用了硬盘、可移动磁盘1360和可移动光盘1364,本领域的技术人员可以理解其它类型的可存储计算机可读数据的计算机可读媒介也能够在该示例性操作环境中使用,例如磁带、flash存储卡、数码视频光盘、随机访问存储器(RAM)、只读存储器(ROM)等。
很多程序模块可以存储在硬盘1356、磁盘1360、光盘1364、ROM1350或RAM1352中,该模块包括操作系统1370、一个或更多应用程序1372(例如网页请求追踪应用程序140)、高速缓冲存储/其它模块1374,以及程序数据1376。操作系统1370可以包括这里所述的网页请示事件追踪工具(例如追踪基础结构144)。用户可以通过例如键盘1378和点击装置1380等输入装置,输入命令和信息到计算机1342。其它的输入装置(未示出)可以包括微型麦克风、操纵杆、游戏手柄、圆盘式卫星电视天线、扫描仪等。上述以及其它输入装置通过连接到总线1348的接口1382,连接到处理器单元1344。监视器1384或其它类型的显示装置也通过一个端口连接到总线1348,例如视频适配器1386。除了监视器外,个人计算机代表性地包括其它外围输出装置(未示出),例如扬声器和打印机。
计算机1342通常在网络环境中运转,其中使用逻辑连接到一个或更多远程计算机,例如远程计算机1388。远程计算机1388可以是个人计算机、另一个服务器、路由器、网络PC、同位体装置或其它常见网络节点,并且典型地包括很多或全部上述与计算机1342相关的组件。附图13所示的逻辑连接包括一个局域网(LAN)1390和一个广域网(WAN)1392。上述网络工作环境在办公室、企业范围计算机网络、企业内部互联网和互联网里是常见的。
当在LAN网络工作环境中使用时,计算机1342通过网络接口或适配器1394连接到局域网。当在WAN网络工作环境中使用时,计算机1342典型地包括调制解调器1396或其它用于在例如互联网等广域网络1392上建立通信的设备。调制解调器1396可以是内置的或外置的,通过串行端口接口1368连接到总线1348。在网络环境中,所示的与个人计算机1342相关的程序模块,或其一部分,可以存储在远程存储装置中。可以理解所示的网络连接是示例性的,可以使用其它在计算机之间建立通信连接的设备。
通常,计算机1342的数据处理器依靠指令来编程,该指令在不同时间存储在该计算机的不同计算机可读存储媒介。例如,程序和操作系统典型地分布在软盘或CD-ROM中。从这里,它们可以安装或装载进入计算机的第二个存储器。在运行时,它们至少部分地被装载入计算机的主要电子存储器。当上述媒介包括用于实现块的指令或程序时,这里所述的本发明包括上述和其它的不同类型的计算机可读存储媒介,将在下面结合微处理器或其它数据处理器来描述该块。当计算机被根据这里所述的方法和技术而编程时,本发明还包括计算机本身。
为了解释,程序和其它例如操作系统等可执行程序组件在这里被称为离散块,虽然上述程序和组件在不同时间驻留在计算机的不同部件中,以及由计算机的数据处理器执行。这里所述的任何功能可以由软件、固件(例如,固定逻辑电路)、手动处理或上述实施例的结合。这里使用的术语“逻辑”或“模块”一般代表软件、固件或软件和固件的结合。例如,在软件实现的情况中,术语“逻辑”或“模块”表示当在处理装置或装置(例如,一个CPU或多个CPU)中执行时,执行特殊任务的程序码。该程序码可以存储在一个或多个计算机可读存储装置中。将逻辑和模块示例性地分离成不同的单元,可以反映一个真实物理群和上述软件和/或硬件的分配,或者可以相应于由单一的软件程序和/或硬件单元执行的不同任务的概念的分配。该示例性的逻辑和模块可以位于一个地点(例如,由一个处理装置实现),或者可以分布在多个位置。
H.结论要创建一个P2P系统资源库,P2P DHT的自组织容量与自扩展、分层的系统内监视基础结构相结合。要实现自扩展和稳定,基础结构必须是由DHT建立在虚拟空间中的逻辑系统,并且因而映射到参与者。这里已描述了与DHT结合的SOMO是如何有效地创建一个资源库。
可以利用资源库的能力以利用经由SOMO的准时精确的新闻广播,每个任务安装一个特定应用的调度程序,因而采用了无干涉、市场主导的方法以使用公平竞争调整任务。
描述了用于在P2P系统的DHT之上构建一个数据结构的实施例。特别地描述一个特定分层树结构,其用于在P2P系统中散发信息,并且用于从P2P系统中聚集信息。
这里将特定操作描述为以特定顺序执行的连续的不同步骤。上述实施例是示例性的,没有限定的作用。这里描述的特定步骤聚合在一起并且在单一的操作中执行,并且特定的步骤可以以一个顺序而执行,该顺序与本公开所提出的例子中使用的顺序不同。
进一步,本发明提供了二选一的很多例子(例如,情况A或情况B)。此外,本公开包括这样的情况,其中将选择结合在一个实施例中(例如,情况A和情况B),即使本公开没有特别地在每个例子中提到这样的结合例子。
本发明可以在不背离其精神和实质特征的情况下,以其它特定的形式实施。所述的实施例可以只看作示例性并且非限制性的。因而,本发明的范围由附加的权利要求而不是上面的描述界定。在权利要求的相等含义和范围中的所有改变都包括在它们的范围中。
权利要求
1.一个方法包括构建一个数据覆盖图,作为对等网络中的分布式哈希表(DHT)中包括的逻辑空间之上的数据结构;其中该逻辑空间包括多个DHT节点,该节点具有多个相关的DHT区域;在数据覆盖图中构建具有多个级的树的拓扑,每级包括与上述的各自的DHT节点相关的一个或多个树节点,其中树的第一级包括具有单一的树节点的区域的单一的树节点,该区域相应于DHT的逻辑空间的整个范围,并且被逻辑地划分成多个所述树节点区域,该树节点区域相应于树的每一级的树节点;以及DHT的逻辑空间的部分;每个所述树节点包括一个关键字成分,其标识了与其各自的树节点区域相关的一个关键字;将多台机器映射到DHT的逻辑空间,其中每台机器对应于树节点区域中的一个或更多;每台机器从与其对应的一个或多个树节点区域中选择其代表性节点,该树节点对应于最大尺寸的树节点区域;并且每个所述代表性节点选择另一个代表性节点作为其父节点,所述另一个代表性节点是具有较大尺寸的邻近所述树节点区域的代表性节点。
2.权利要求1所述的方法,进一步包括在每台所述机器上聚集元数据;将在所述机器上聚集的元数据发送到相应的代表性节点;聚集由所述代表性节点接收到的元数据;并且将每个所述代表性节点所聚集的元数据发送到相应的父节点;并且聚集由在树的第一级的单一的树节点所接收到的元数据。
3.如权利要求2所述的方法,进一步包括处理在树的第一级的单一的树节点聚集的数据;并且从树的第一级的单一的树节点经由各自的父节点和代表性节点,发送处理后的数据到每台所述机器。
4.权利要求3所述的方法,其中元数据包括与每台所述机器相关的信息;并且处理过的数据包括可以管理每台所述机器的指令。
5.权利要求1所述的方法,其中对应于DHT的逻辑空间的全部范围的单一的树节点区域平均地分成k个树节点区域;k是在树的第一级的树节点的数量;并且树的在第i级第j个的树节点具有一个树节点区域,其中尺寸为[j/ki,(j+1)/ki];并且关键字为(2j+1)/2ki;其中(0<=j<2i)。
6.权利要求5所述的方法,其中每个所述关键字具有一个值,该值是坐标的函数,其标识了代表性树节点区域的中心i级的树包括ki个树节点;并且每个树节点的树节点区域具有的尺寸是1/ki。
7.权利要求1所述的方法,进一步包括,对于每台所述机器,计算该机器的各自的代表性节点和父节点的关键字。
8.权利要求7所述的方法,其中各自的关键字的计算进一步包括在DHT中使用查找,用机器获取信息,其中机器使用信息与相应于代表性节点的机器建立通信,所述信息具有相应的所述代表性节点的关键字。
9.权利要求1所述方法,进一步包括在每台所述机器,接收来自邻近的所述树节点区域中的每台所述机器的心跳传送;并且当没有及时接收到任何所述心跳传送时,通过下列步骤证明邻近的所述树节点区域中相应的所述机器的消失重复DHT的提供;重复构建数据覆盖图作为在DHT逻辑空间之上的数据结构;在重建的数据覆盖图中重复构建多级树;并且重复多台机器到DHT逻辑空间的映射。
10.权利要求1所述的方法,其中每个所述代表性节点和每个所述父节点被选择为资源可用性的最优化函数。
11.权利要求10所述的方法,其中最优化函数是基于从组中选择的标准的,该组是由网络坐标、带宽瓶颈、最大等待时间和等待时间的变化组成的,其中最需要资源的任务由对等系统中拥有最多可用资源的机器执行。
12.权利要求1所述的方法,其中DHT管理将对象插入对等系统,以及从对等系统移除对象;以及该逻辑空间包括具有相关的多个DHT区域的多个DHT节点;并且DHT的数据覆盖图是通过下列步骤建立的将数据结构中的对象与DHT节点相关联;并且在数据结构的对象之间建立连接。
13.权利要求12所述的方法,其中每个连接包括第一域,其提供从第一对象指向第二对象的硬连线指针;并且第二域,其提供从第一对象指向DHT节点的软状态指针,该DHT节点是第二对象的宿主。
14.权利要求12所述的方法,其中数据覆盖图的建立使用了第一基元,用于设定一个引用,该引用建立了到DHT中一个对象的指针第二基元,用于返回由指针所引用的对象;以及第三基元,用于删除由指针引用的对象。
15.权利要求1所述的方法,其中数据覆盖图中的每个树结点包括一个操作成分,其确定了在经过该树结点的数据上执行的一个操作。
16.权利要求1所述的方法,其中数据覆盖图中每个树节点包括一个报告成分,其确定了要使用该树结点生成的报告类型。
17.权利要求1所述的方法,其中树的第一级包括作为树的根节点的树节点;以及该根节点对应于一个树区域,该树区域对应于DHT的逻辑空间的全部范围。
18.一个计算机可读存储器,包括机器可读指令,该指令用于实现根据权利要求12的所述的方法,在数据覆盖图中构建对象。
19.一个计算机可读存储器,具有存储在其中的数据覆盖图,该数据覆盖图是根据权利要求1中的方法而制造的。
20.一个计算机可读存储器,具有存储在其中的数据结构,该数据结构包括一个对于对等系统,作为在DHT中包括的逻辑空间之上的数据结构的数据覆盖图;其中DHT管理向对等系统插入对象,以及从对等系统移除对象该逻辑空间包括具有多个相关的DHT区域的多个DHT节点;DHT的数据覆盖图是通过下列步骤构建的将数据结构中的对象与DHT节点相关联;并且在数据结构的对象之间建立连接;数据覆盖图具有树的拓扑,该树包括多个级;该树包括与各自的所述DHT节点相关的多个树节点;树节点包括一个根节点,其具有相应于DHT逻辑空间的一个树节点区域;根节点的树节点区域逻辑地划分成多个树节点区域,分别对应于在树的每一级的树节点的数量;以及分布式哈希表的逻辑空间的一部分;每个所述树节点包括一个关键字成分,其标识与其各自的树节点区域相关的一个关键字;将DHT的逻辑空间映射到多台机器;每台机器对应于一个或更多树节点区域;每台机器从其对应的一个或多个树节点区域中,选择其代表性节点,该树节点对应于最大尺寸的树节点区域;并且每个所述代表性节点选择另一个代表性节点作为其父节点,所述另一个代表性节点是具有较大尺寸的邻近所述树节点区域的代表性节点。
21.权利要求20所述的计算机可读存储器,其中根节点的树节点区域最终划分成k个树节点区域,其中k是在树的第一级的树节点的数量;并且树的在第i级第j个树节点具有一个树节点区域,其中尺寸为[j/ki,(j+1)/ki];并且关键字为(2j+1)/2ki;其中(0<=j<2i)。
22.权利要求21所述的计算机可读存储器,其中每个所述关键字具有一个值,该值是坐标的函数,其标识了代表性树节点区域的中心i级的树包括ki个树节点;并且每个树节点的树节点区域具有的尺寸是1/ki。
23.权利要求20所述的计算机可读存储器,其中DHT管理向对等系统插入对象,以及从对等系统移除对象;该逻辑空间包括具有多个相关的DHT区域的多个DHT节点;DHT的数据覆盖图具有数据结构中与DHT节点相关联的对象;并且具有在数据结构的对象之间建立的连接。
24.权利要求20所述的计算机可读存储器,其中每个连接包括第一域,其提供从第一对象指向第二对象的硬连线指针;并且第二域,其提供从第一对象指向DHT节点的软状态指针,该DHT节点是第二对象的宿主。
25.权利要求20所述的计算机可读存储器,其中第一基元设定一个引用,该引用建立了到DHT中一个对象的指针第二基元返回由指针所引用的对象;以及第三基元删除由指针引用的对象。
26.权利要求20所述的计算机可读存储器,其中数据覆盖图中的每个树结点包括一个操作成分,其确定了在经过该树结点的数据上要执行的一个操作。
27.权利要求20所述的计算机可读存储器,其中数据覆盖图中每个树节点包括一个报告成分,其确定了要使用该树结点生成的报告类型。
28.权利要求20所述的计算机可读存储器,其中树的第一级包括作为树的根节点的树节点;以及该根节点对应于一个树区域,该树区域对应于DHT的逻辑空间的全部范围。
29.一个对等系统,包括多个以对等方式相互作用的机器,包括一个DHT的逻辑空间,包括多个DHT节点,该节点具有多个相关的DHT区域,其中DHT管理向对等系统插入对象,以及从对等系统移除对象;数据覆盖图作为在DHT逻辑空间之上的数据结构,其中DHT的数据覆盖图具有与DHT节点相关的数据结构;以及具有在数据结构的对象之间建立的连接;数据覆盖图具有树的拓扑,该树包括多个级并且包括与各自的所述DHT节点相关的多个树节点;树节点包括一个根节点,其具有相应于DHT逻辑空间的一个树节点区域;根节点的树节点区域逻辑地划分成多个树节点区域,分别对应于在树的每一级的树节点的数量;以及分布式哈希表的逻辑空间的一部分;每个所述树节点包括一个关键字成分,其标识与其各自的树节点区域相关的一个关键字;将DHT的逻辑空间映射到多台机器每台机器对应于一个或更多树节点区域;每台机器从其对应的一个或多个树节点区域中,选择其代表性节点,该树节点对应于最大尺寸的树节点区域;并且每个所述代表性节点选择另一个代表性节点作为其父节点,所述另一个代表性节点是具有较大尺寸的邻近所述树节点区域的代表性节点。
30.根据权利要求29的系统,进一步包括将路由逻辑配置为,通过经由树节点传送数据,经由数据覆盖图发送数据。
31.根据权利要求30的系统,路由逻辑配置成,通过从DHT节点聚集数据以及经由树节点到树的根节点向上传送该数据,经由数据覆盖图发送数据。
32.根据权利要求30的系统,其中路由逻辑配置成,通过从树的根节点散发数据,通过数据覆盖图经由树节点,传送数据到DHT节点。
33.用于构建对等系统的设备,该设备包括用于构建数据覆盖图的装置,该数据覆盖图作为对于对等系统包括在分布式哈希表(DHT)中的逻辑空间之上的数据结构;其中DHT管理向对等系统插入对象,以及从对等系统移除对象;该逻辑空间包括具有多个相关的DHT区域的多个DHT节点;并且DHT的数据覆盖图是通过下列步骤构建的将数据结构中的对象与DHT节点相关联;并且在数据结构的对象之间建立连接;用于构建数据覆盖图中的树的拓扑的装置,该树具有多个级并且包括多个与各自的所述DHT节点相关的树节点,其中树节点包括一个根节点,其具有相应于DHT逻辑空间的一个树节点区域;根节点的树节点区域逻辑地划分成多个树节点区域,分别对应于在树的每一级的树节点的数量;以及分布式哈希表的逻辑空间的一部分;每个所述树节点包括一个关键字成分,其标识与其各自的树节点区域相关的一个关键字;用于将多台机器映射到DHT的逻辑空间的装置,其中每台机器相应于一个或多个树节点区域用于选择其代表性节点的装置,该装置从对应于各自所述机器的一个或更多树节点区域中选择,该树节点相应于最大尺寸树节点区域;并且用于为每个所述代表性节点选择其父节点的装置,该装置选择另一个所述代表性节点作为父节点,该另一个代表性节点是具有更大尺寸的邻近的所述树节点区域的代表性节点。
34.权利要求33所述的设备,进一步包括用于在每台所述机器上聚集元数据的装置用于将在所述机器上聚集的元数据发送到相应的代表性节点的装置;用于聚集由所述代表性节点接收到的元数据的装置;并且用于将每个所述代表性节点所聚集的元数据发送到相应的父节点的装置;并且用于聚集由在树的第一级的单一的树节点所接收到的元数据的装置。
35.权利要求34所述的设备,进一步包括用于处理在树的第一级的单一的树节点聚集的数据的装置;并且用于从树的第一级的单一的树节点经由各自的父节点和代表性节点,发送处理后的数据到每台所述机器的装置。
36.权利要求35所述的设备,其中元数据包括与每台所述机器相关的信息;并且处理过的数据包括可以管理每台所述机器的指令。
37.权利要求33所述的设备,进一步包括用于在机器处接收来自邻近的所述树节点区域中的每台所述机器的心跳传送的装置;以及当没有及时接收到任何所述心跳传送时,通过下列步骤证明邻近的所述树节点区域中相应的所述机器的消失的装置重复DHT的提供;重复构建数据覆盖图作为在DHT逻辑空间之上的数据结构;并且在重建的数据覆盖图中重复构建多级树。
38.权利要求37所述的设备,其中用于记数的装置进一步包括装置,用于重复多台机器到DHT逻辑空间的映射;以及该设备进一步包括装置,用于选择每个所述代表性节点和每个所述父节点作为资源可用性的最优化函数。
39.如权利要求38所述的设备,其中最优化函数是基于从组中选择的标准的,该组是由网络坐标、带宽瓶颈、最大等待时间和等待时间的变化组成的,其中最需要资源的任务由对等系统中拥有最多可用资源的机器执行。
40.如权利要求33所述的设备,进一步包括通过经由树节点传送数据而经由数据覆盖图发送数据的装置。
41.如权利要求40所述的设备,其中路由装置包括用于通过从DHT节点聚集数据以及经由树节点到树的根节点向上传送该数据,经由数据覆盖图发送数据的装置。
42.如权利要求40所述的设备,其中路由装置包括用于通过从树的根节点散发数据,通过数据覆盖图经由树节点,传送数据到DHT节点的装置。
全文摘要
数据覆盖图被构造成在由对等网络中的分布式哈希表(DHT)确定的逻辑空间中的数据结构。数据覆盖图包括一个具有树节点的树,每个节点具有映射到DHT的逻辑空间中的相应DHT节点的一个区域。DHT的逻辑空间映射到机器,每个机器对主个或更多树节点区域。树节点由树节点区域的大小和可用资源分层次地布置,以便根据机器的各自性能在对等网络中执行任务,以满足任务的要求。树以与潜在的DHT相同的规模自组织和自结束,该树被用于使用树节点的层次,从DHT节点聚集信息,或向DHT节点散发信息。
文档编号G06F17/30GK1708026SQ20051008780
公开日2005年12月14日 申请日期2005年4月13日 优先权日2004年4月16日
发明者S·林, X·谢, Y·陈, Z·章 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1