CN102947821A - 索引服务器及其方法 - Google Patents

索引服务器及其方法 Download PDF

Info

Publication number
CN102947821A
CN102947821A CN2010800040475A CN201080004047A CN102947821A CN 102947821 A CN102947821 A CN 102947821A CN 2010800040475 A CN2010800040475 A CN 2010800040475A CN 201080004047 A CN201080004047 A CN 201080004047A CN 102947821 A CN102947821 A CN 102947821A
Authority
CN
China
Prior art keywords
information
item
node
index server
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2010800040475A
Other languages
English (en)
Inventor
刘永强
夏勇
胡艳
黄权
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC China Co Ltd
Original Assignee
NEC China Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC China Co Ltd filed Critical NEC China Co Ltd
Publication of CN102947821A publication Critical patent/CN102947821A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • G06F16/1837Management specially adapted to peer-to-peer storage networks

Abstract

提供了P2P网络的索引服务器及其方法。索引服务器包括:元数据存储单元,其存储一个或多个条目,每个条目与一数据文件相关联并且包括多个信息项,每个信息项指示出提供该数据文件的节点和该节点的位置;以及节点信息管理单元,其监视所述元数据存储单元以识别所述元数据存储单元中存储的信息项数目超过阈值的条目,并且将识别出的条目中包括的一部分信息项传送到另一服务器,所传送的部分包括尽可能多的指示出位置相互接近的节点的信息项。

Description

索引服务器及其方法
技术领域
本发明总地涉及对等(Peer-to-Peer,P2P)网络,具体而言涉及P2P网络的索引服务器(indexing server)及其方法。
背景技术
P2P网络是由多个用户以自组织的方式形成的分布式网络。这些用户可被称为“节点”。节点可共享各种资源,例如数据文件、计算能力、存储能力和带宽。数据文件(以下也称为“数据”或“文件”)可包括图像文件、音频文件、视频文件等等。当节点想要下载一个文件时,它必须知道P2P网络中的哪些节点有该文件,即可以提供该文件。现有的P2P系统通常使用集中式的索引服务器来存储文件的元数据。文件的元数据描述该文件的属性,例如文件的大小,以及可提供该文件的节点。此元数据可被能够提供该文件的节点报告给索引服务器。在接收到来自想要下载文件的节点(“请求方节点”)的请求时,索引服务器通过参考信息的元数据把能够提供该文件的节点的子集通知给请求方节点。然后在请求方节点与该节点子集之间发生文件的传送。
通常,现有的索引服务器会随机地选择这样的子集来通知给请求方节点。这种随机答复将导致严重的“跨ISP流量”问题。即,由第一互联网服务提供商(ISP)ISP1服务或者换言之在ISP1中的节点将从ISP2中的节点下载数据,虽然ISP1中的另一节点也有该数据可供下载。
为了减少跨ISP流量,已经提出了一种位置知晓存储结构来为大规模P2P网络系统存储存储器。
大规模P2P网络的元数据信息的存储和搜索问题可以描述如下。
假定大小为O(N×D)的元数据表,其中D为P2P网络中共享的文件的总数,并且N是P2P网络中的节点的总数。该元数据表包括分别与D个文件相关联的D个元数据。与一个文件相关联的一个元数据在下文中也将被称为例如“文件的元数据”或“与文件相关联的元数据条目”。元数据条目可包括一个或多个节点信息项,每个节点信息项描述一个提供该文件的节点。
1.如何以可扩展的方式将各个文件的元数据条目分布在多个索引服务器中。
2.当接收到来自请求方节点的请求Req(M,Di,T)时,其中M为请求方节点的标识(例如IP地址),Di是想要的文件的标识,并且T是节点M想要获取的与文件Di相关联的节点信息项(例如节点的地址)的数目,则应当如下构造响应:
i)如果元数据表中与文件Di相关联的节点信息项的数目小于或等于T,则向请求方节点返回尽可能多的节点信息项;
ii)如果元数据表与文件Di相关联的节点信息项的数目大于T,则从与文件D相关联的节点信息项中选择T个节点信息项,所选的T个节点信息项指示的节点应当与请求方节点尽可能接近。
在这里,节点的位置例如可定义为(ISP,Region),指示出为该节点服务的互联网服务提供商,以及该节点的地理区域。节点与请求方节点之间的“接近度”是如下定义的。对于两个节点A和B,如果节点A与请求方节点在同一ISP中,而节点B不在,那么节点A比节点B更接近请求方节点。此外,如果节点A和B都与请求方节点在同一ISP中或者A和B都不与请求方节点在同一ISP中,并且如果节点A与请求方节点在同一区域中而节点B不在,那么节点A比节点B更接近请求方节点。此外,如果节点A和B都与请求方节点在同一ISP和同一区域中,或者如果节点A和B都与请求方节点在不同ISP且不同区域中,则节点A和B就其与请求方节点的“接近度”而言可被随机排序。
在邵济平的题为“一种P2P网络及其调度方法”的CN101355591中,在文件维度上分布元数据表。具体而言,多个索引服务器形成一DHT网络。每个文件的元数据表根据该文件的ID被存储在相应的索引服务器中。当请求方节点请求一数据文件时,或者更具体而言请求关于能够提供该数据文件的节点的信息时,请求方节点向其归属索引服务器(homeindexing server)发送请求。该请求在DHT网络中被路由到基于文件的ID被分配存储该文件的元数据的目的地索引服务器(destination indexingserver)。目的地索引服务器将文件的元数据发送到归属索引服务器,并且归属索引服务器把元数据所指示的节点根据其与请求方节点的“接近度”排序,并且把N个最接近的节点通知给请求方节点。
具体而言,每个索引服务器维护一个本地手指表(Finger Table)。当接收到请求时,索引服务器在手指表上执行DHT查找。如果该索引服务器存储着所请求的文件的元数据,则将发生命中。否则,手指表将指向下一跳索引服务器,该请求则将被路由到该下一跳索引服务器。DHT算法可保证请求所经过的跳数为O(log(n)),其中n是DHT网络中的索引服务器的数目。DHT算法的实现细节可在I.Stoica,R.Morris,D.Karger,M.F.Kaashoek,and H.Balakrishnan,Chord:A Scalable Peer-to-peer Lookup Servicefor Internet Applications,In Proceedings of SIGCOMM 2001,San Deigo,CA,August 2001中找到。
可以看出,随着P2P网络中提供一数据文件的节点的数目变得越来越大,相应索引服务器中存储的与该数据文件相关联的元数据条目的大小也相应地增大。例如,据PPLive(Gale Huang,PPLive-A Practical P2P LiveSystem with Huge Amount of Users)的运营数据报告,2005年在高峰时段有超过25万用户观看流行的电视节目“超级女生”的在线实况视频。从而,很难将关于所有这些用户(节点)的信息存储在被分配来存储数据文件“超级女生”实况视频的节点信息的一个服务器中。同时,当从请求方节点接收到对与数据文件相关联的节点信息的请求时,服务器必须花费大量时间来按位置对提供数据文件的所有节点排序,这将导致在对请求方节点做出响应时发生不可接受的延迟。
从而,需要一种能够以高效方式存储和搜索P2P网络的元数据的索引服务器及操作其的方法。
发明内容
为了解决上述和其他问题,提供了P2P网络的索引服务器及其方法。
根据本发明的一个方面,提供了一种对等网络的索引服务器,包括:元数据存储单元,其存储一个或多个条目,每个条目与一数据文件相关联并且包括多个信息项,每个信息项指示出提供该数据文件的节点和该节点的位置;以及节点信息管理单元,其监视所述元数据存储单元以识别所述元数据存储单元中存储的信息项数目超过阈值的条目,并且将识别出的条目中包括的一部分信息项传送到另一服务器,所传送的部分包括尽可能多的指示出位置相互接近的节点的信息项。
根据本发明的另一方面,提供了一种用于对等网络的索引服务器的方法,所述索引服务器包括元数据存储单元,该元数据存储单元存储一个或多个条目,每个条目与一数据文件相关联并且包括多个信息项,每个信息项指示出提供该数据文件的节点和该节点的位置,所述方法包括以下步骤:监视所述元数据存储单元以识别所述元数据存储单元中存储的信息项数目超过阈值的条目;以及将识别出的条目中包括的一部分信息项传送到另一服务器,所传送的部分包括尽可能多的指示出位置相互接近的节点的信息项。
附图说明
通过联系附图阅读以下详细描述可以更好地理解本发明的以上和其他特征和优点,附图中相同或相似的标号用于标示相同或相似的元素,其中:
图1是示出根据本发明第一实施例的索引服务器的框图;
图2是示出第一实施例的索引服务器的节点信息管理单元的操作的流程图;
图3是示出根据第一实施例的索引服务器的消息处理单元、节点信息搜索单元和其他组件的操作的流程图;
图4是更详细示出第一实施例的索引服务器的节点信息搜索单元的操作的流程图;
图5是示出根据本发明第二实施例的索引服务器的框图;
图6是示出根据第二实施例的索引服务器的消息处理单元、节点信息搜索单元、DHT查找单元和其他组件的操作的流程图;
图7是示出根据本发明第三实施例的索引服务器的框图;并且
图8是示出根据第三实施例的索引服务器的消息处理单元和其他组件的操作的流程图。
具体实施方式
下面将参考附图来详细描述本发明的实施例。
图1是示出根据本发明第一实施例的索引服务器100的框图。图2是示出第一实施例的索引服务器100的节点信息管理单元102的操作的流程图。图3是示出根据第一实施例的索引服务器100的消息处理单元104、节点信息搜索单元105和其他组件的操作的流程图。图4是更详细示出第一实施例的索引服务器100的节点信息搜索单元105的操作的流程图。下面将联系图1-4来描述索引服务器100的结构和操作。
索引服务器100包括元数据存储单元101、节点信息管理单元102、传送日志存储单元103、消息处理单元104和节点信息搜索单元105。
元数据存储单元101为P2P网络存储元数据。具体而言,索引服务器100可被分配来存储与P2P网络中共享的一个或多个数据文件相关联的元数据。本领域的技术人员将会明白分配索引服务器来存储与数据文件相关联的元数据的不同方式,其中一种是像DHT网络中那样根据数据文件的ID来确定用于存储该数据文件的索引服务器,如以上“背景技术”部分以及以下的第二实施例中所述。然而,本发明并不限于分配、指定或确定用于存储特定数据文件的元数据的任何具体方式。
更具体而言,元数据存储单元101存储一个或多个元数据条目,其中每个元数据条目与一个或多个数据文件中的一个不同的数据文件相关联。每个条目包括一个或多个节点信息项。每个节点信息项指示出已知提供相关联的数据文件的一个节点,以及该节点的位置。例如,元数据存储单元101中存储的一个条目可以采取以下形式:
data_id:node_id1(ip1,port1,location1),node_id2(ip2,port2,location2),…,
其中data_id是与该条目相关联的数据文件的标识(ID),node_id1(ip1,port1,location1)是指示出提供该数据文件的一个节点的节点信息项,其中该节点的ID是node_id1,该节点的地址是(ip1,port1),并且该节点的位置是location1。如上所述,节点的位置可被定义为(ISP,Region)。
本领域的技术人员可以明白,数据文件的元数据可包括关于文件的其他属性的信息,例如文件的大小。这里为了简明省略了这些属性。
节点信息管理单元102监视元数据存储单元101以判定在元数据存储单元中是否存储有节点信息项数目超过了阈值的条目,并且响应于肯定的判定,将这些节点信息项的一部分传送到另一服务器,所传送的部分包括尽可能多的如下节点信息项:这种节点信息项指示出位置相互接近的节点。
转到图2,将详细描述节点信息管理单元102的操作。如图2所示,节点信息管理单元102在步骤S101中持续地或周期性地监视元数据存储单元101并且判定元数据存储单元101中是否存储着节点信息项数目超过了阈值的条目,或者换言之,提供如下数据文件的节点的数目是否已变得大于阈值:该数据文件的元数据的存储被分配给索引服务器100。
如果判定结果是否定,则过程返回到步骤S101,在该步骤中节点信息管理单元102继续监视元数据存储单元101,否则过程前进到步骤S103。
例如,假定索引服务器100被分配存储与数据文件D1相关联的元数据条目。当P2P网络中能够提供数据文件D1的节点的数目变得越来越大时,元数据存储单元101中存储的与数据文件D1相关联的条目中的节点信息项的数目将升高到超过阈值,比如说TH1。
在此情况下,在步骤S103中,节点信息管理单元102将发起传送过程,在此过程期间,节点信息项数目变得太大的条目中的一些或全部节点信息项将被传送到另外的负担较轻的服务器。传送的部分包括尽可能多的如下节点信息项:这种节点信息项指示出位置相互接近的节点。
例如,节点信息管理单元102将该条目中包括的节点信息项按ISP划分成一个或多个群组,使得每个群组包括指示出一不同ISP中的节点的节点信息项。节点信息管理单元102随后确定各个群组中的节点信息项的数目,并且识别出这一个或多个群组之中的节点信息项数目最大的群组(以下将称之为最大群组)。然后,节点信息管理单元102可判定最大群组中的节点信息项的数目是否大于阈值,例如阈值TH1。如果判定结果为否定,则节点信息管理单元102将把该组节点信息项从索引服务器100传送到被判定为负担较轻的另一索引服务器,换言之,当前没有存储太多节点信息的另一索引服务器。本领域的技术人员可以理解判定这种负担较轻的服务器的各种方式,并且本发明并不限于任何特定方式。作为一种简单且高效的方式的示例,索引服务器100可以从与索引服务器100服务于相同P2P网络的索引服务器的列表中随机选择两个其他索引服务器,并且选择具有较轻负担的那个作为节点信息传送的目的地。
另一方面,如果最大群组中的节点信息项的数目大于阈值,则节点信息管理单元102可按区域将最大群组中包括的节点信息项进一步划分成一个或多个子群组,使得每个子群组包括指示出一不同区域中的节点的节点信息项。节点信息管理单元102随后可将这一个或多个子群组中节点信息项数目最大的子群组传送到负担较轻的服务器。此外,节点信息管理单元102还可将其他子群组传送到一个或多个其他负担较轻的服务器。
如果,在最大群组中的节点信息项被传送到一个或多个其他索引服务器之后,该条目中剩余的节点信息项的数目仍大于阈值,则节点信息管理单元102可针对剩余节点信息项重复上述过程,直到该条目中剩余的节点信息项的数目小于阈值为止。
节点信息管理单元102可针对元数据存储单元101中的节点信息项数目超过阈值的任何其他条目重复上述过程。
返回参考图1,如其中所示,索引服务器100还包括传送日志存储单元103。传送日志存储单元103可存储传送日志的表。因此,当在步骤S103中一条目中的一部分或全部节点信息项被传送到另外的服务器时,节点信息管理单元102在步骤S104中更新传送日志存储单元103。
具体而言,节点信息管理单元102在传送日志存储单元103中创建或更新一传送日志,以使得该传送日志反映出与被传送部分相关联的数据文件、该部分被传送到的其他服务器、被传送部分所指示的节点的位置范围(例如(ISP,Region))。
例如,该表可采取以下形式。
  数据ID   ISP   区域   节点信息项的数目   索引服务器
  D1   ISP1   R1   20   IS-I
  D1   ISP1   R2   10   IS-II
  D1   ISP2   R1   5   IS-III
  D1   ISP3   MR   15   IS-IV
  …   …   …   …   …
表1:传送日志表的结构
表1表明,关于提供数据文件D1并位于(ISP1,R1)中的20个节点的信息已被传送到索引服务器IS-I,关于提供数据文件D1并位于(ISP1,R2)中的10个节点的信息已被传送到索引服务器IS-II,关于提供数据文件D1并位于(ISP2,R1)中的5个节点的信息已被传送到索引服务器IS-III,关于提供数据文件D1并位于ISP3中的15个节点的信息已被传送到索引服务器IS-IV。表中的“MR”指的是传送到索引服务器IS-IV的信息是关于在ISP3中而且在不止一个区域中的节点的信息的。
此外,如果在一些节点信息项已被传送到另一服务器之后,将来接收到指示出提供与所传送的节点信息项相关联的数据文件并且位置与所传送的节点信息项所指示的节点接近的节点的节点信息项,则节点信息管理单元102将接收到的节点信息项也传送到该另一服务器,并且相应地更新传送日志表。例如,如果将来索引服务器100接收到表明(ISP1,R1)中的某个节点能够提供数据文件D1的信息(这可由该节点报告),则该信息可被转发到索引服务器IS-I并存储于其中,并且表1的第一行中的数字“20”例如可被更新到“21”。
另外,与索引服务器100类似地,接收从索引服务器100传送来的节点信息的索引服务器也可监视其自己的元数据存储单元并且发起传送过程。继续上述示例,索引服务器IS-I在接收到从索引服务器100传送来的节点信息之后,可将其作为与数据文件D1相关联的条目存储在其自己的元数据存储单元中。索引服务器IS-I随后也可持续地或周期性地监视其自己的元数据存储单元,并且判定其自己的元数据存储单元中存储的包括与D1相关联的条目和与索引服务器IS-I被分配存储其节点信息的数据文件相关联的条目在内的条目中是否有任何条目包括太多节点信息项,并且发起将该条目中的节点信息项传送到负担较轻的服务器的过程并相应地更新其自己的传送日志表。
返回参考图1,索引服务器100还包括消息处理单元104。消息处理单元104处理从索引服务器100外部的设备接收的和/或发送到索引服务器100外部的设备的消息。例如,所接收的消息可以是来自外部设备的对节点信息的请求。在此情况下,消息处理单元104侦听请求,确定接收到的请求的类型,并且使得索引服务器100的其他组件基于接收到的消息的类型相应地动作。消息处理单元104还在索引服务器100的其他组件的指示下构造和发送消息到外部设备。下面将联系图3来详细描述此情况下消息处理单元104和其他组件的操作。
如图3所示,在步骤S201中,消息处理单元104等待接收来自外部设备的请求,并且在步骤S202中,消息处理单元104判定是否接收到了请求。如果否,则其返回到步骤S201,否则,消息处理单元104进而在步骤S203中判定该请求的类型。
具体而言,外部设备可以是P2P网络中的如下节点(“请求方节点”):该节点想要从P2P网络中的其他节点(请求方节点的对端)下载数据文件并从而需要知道哪些节点能够提供该数据文件。
在外部设备是请求方节点的情况下,该请求可以是由请求方节点做出针对关于提供指定数据文件的T个节点的信息的节点信息请求,并且索引服务器100从请求方节点直接接收或者经由其他中间设备间接接收该节点信息请求。以下这种节点信息请求也被称为“第1类节点信息请求”,如图3所示。
或者,外部设备也可以是另一索引服务器,在该另一服务器已在先前的监视和传送过程期间以与以上针对索引服务器100描述的类似的方式将与一数据文件相关联的一部分节点信息项传送到索引服务器100之后,在其中执行的节点信息搜索过程期间决定从索引服务器100获取与该数据文件相关联的节点信息。该另一索引服务器可被称为请求方服务器。在此情况下,从请求方服务器接收到的请求例如可以是针对关于提供指定的数据文件的N个节点的信息做出的节点信息请求。以下这种节点信息请求也被称为“第2类节点信息请求”,如图3所示。
如果在步骤S203中判定接收到的请求是第1类节点信息请求,则消息处理单元104在步骤S204中将使得节点信息搜索单元105搜索和获取所请求的节点信息,并且在步骤S205中将把所获取的节点信息返回给请求方节点。
另一方面,如果在步骤S203中判定接收到的消息是第2类节点信息请求,则消息处理单元104将在步骤S206中使得节点信息搜索单元105搜索和获取所请求的节点信息,并且将在步骤S207中把所获取的节点信息返回给请求方服务器。
要注意,除了上述两类请求之外,消息处理单元104当然也可处理其他消息、信号、数据、信息等等。例如,外部设备也可以是决定向索引服务器100传送节点信息的传送源服务器,并且在此情况下接收到的消息可以是指示出由该传送源服务器发起的节点信息传送的消息,该消息与要传送的节点信息项一起或分开。在此情况下,消息处理单元104将使得元数据存储单元101把从传送源服务器传送来的节点信息项与相关数据文件相关联地存储。
返回参考图1,如其中所示,索引服务器100还包括节点信息搜索单元105。节点信息搜索单元105可操作来根据为了请求方节点的针对关于提供指定数据文件的节点的信息的请求,在元数据存储单元101和传送日志存储单元103中执行节点信息搜索以从元数据存储单元101和与指定数据文件相关联的一部分节点信息项已被传送到的另一服务器中的至少一个获取指示出提供指定数据文件并且位置与请求方节点尽可能接近的节点的节点信息项。下面将联系图4所示的流程图来描述节点信息搜索单元105的操作。
假定请求是针对指示出由ISP1服务并位于区域R1中的请求方节点可从其获取数据文件D1的T个节点的信息的。节点信息搜索单元105可根据这样的请求执行节点信息搜索过程。
该过程开始于步骤S301,在该步骤中节点信息搜索单元105搜索和获取尽可能多的但不多于T个指示出能够提供D1并位于ISP1和R1中的节点的节点信息项作为集合1(Set 1)。例如,节点信息搜索单元105可首先搜索存储在传送日志存储单元103中的传送日志表,以判定是否存在与D1和(ISP1,R1)相关联的传送日志。如果有,则节点信息搜索单元105判定该日志中指示的已传送的节点信息项的数目是否大于或等于T。如果该数目大于或等于T,则节点信息搜索单元105指示消息处理单元104向日志中指示的索引服务器(例如“IS-I”)发送一个请求提供D1并位于(ISP1,R1)中的T个节点的第2类节点信息请求。在接收到来自索引服务器IS-I的节点信息响应之后,节点信息搜索单元105可使用该响应中包括的节点信息项作为集合1。然而,如果该日志中指示的数目小于T,则在以类似的方式从索引服务器IS-I获取所指示数目的节点信息项之后,节点信息搜索单元105可尝试从其自己的元数据存储单元101中找出所需的节点信息项。然而,如果如上所述,在执行了关于(ISP1,R1)中的提供D1的节点的信息的初始传送之后接收的所有关于提供D1并位于(ISP1,R1)中的节点的信息都也已被传送到索引服务器IS-I,则节点信息搜索单元105在其自己的元数据存储单元101中找到所需的与位于(ISP1,R1)中的提供D1的节点有关的节点信息项的可能性将会非常低。在一个实施例中,节点信息搜索单元105在此情况下可跳过对其自己的元数据存储单元101的搜索以节省时间。
然而,如果传送日志表表明,与位于(ISP1,R1)中的提供D1的节点有关的信息没有被传送到任何其他服务器,则节点信息搜索单元105可以搜索其自己的元数据存储单元101以找到尽可能多但不多于T个节点信息项来用作集合1。
在步骤S302中,节点信息搜索单元105判定集合1中包括的节点信息项的数目(以下将表示为|Set1|,这也适用于其他集合)是否大于或等于T。如果是,则在步骤S303中,节点信息搜索单元105指示消息处理单元104将集合1作为节点信息响应返回给请求方节点(在第1类节点信息请求的情况下)或请求方服务器(在第2类节点信息请求的情况下)。
另一方面,如果|Set1|小于T,则搜索过程前进到步骤S304,在该步骤中节点信息搜索单元105以与步骤S301中类似的方式搜索并获取尽可能多但不多于T-|Set1|个指示出能够提供D1并且位于ISP1中但不位于R1中的节点的节点信息项作为集合2。在步骤S305中,节点信息搜索单元105判定|Set1|+|Set2|之和是否大于或等于T。如果是,则在步骤S306中,节点信息搜索单元105指示消息处理单元104将集合1和集合2的并集作为节点信息响应返回给请求方节点或请求方服务器。
如果该加和小于T,则搜索过程前进到步骤S307,在该步骤中节点信息搜索单元105以与步骤S301中类似的方式搜索并获取尽可能多但不多于T-|Set1|-|Set2|个指示出能够提供D1并且不位于ISP1中但位于R1中的节点的节点信息项作为集合3。在步骤S308中,节点信息搜索单元105判定|Set1|+|Set2|+|Set3|之和是否大于或等于T。如果是,则在步骤S309中,节点信息搜索单元105指示消息处理单元104将集合1、集合2和集合3的并集作为节点信息响应返回给请求方节点或请求方服务器。
否则,搜索过程前进到步骤S310,在该步骤中节点信息搜索单元105搜索并获取尽可能多但不多于T-|Set1|-|Set2|-|Set3|个指示出能够提供D1并且不位于ISP1中且不位于R1中的节点的节点信息项作为集合4。注意,在此步骤中,节点信息搜索单元105不必搜索传送日志表并从其他服务器获取节点信息项,而是可以就从其自己的元数据存储单元101中随机地取回T-|Set1|-|Set2|-|Set3|个与D1相关联的节点信息项。最后,在步骤S311中,节点信息搜索单元105指示消息处理单元104将集合1、集合2、集合3和集合4的并集作为节点信息响应返回给请求方节点或请求方服务器。
图5是示出根据本发明第二实施例的索引服务器100A的框图。图6是示出根据第二实施例的索引服务器100A的消息处理单元104A、节点信息搜索单元105、DHT查找单元106和其他组件的操作的流程图。与第一实施例的元件相同或相似的元件将用相同或相似的标号来标示,并且对其的描述将被省略。
如图5所示,索引服务器100A包括元数据存储单元101、节点信息管理单元102、传送日志存储单元103、消息处理单元104A、传送日志存储单元103和DHT查找单元106。
第二实施例代表了本发明在分布式哈希表(Distributed Hash Table,DHT)网络中的应用。在此实施例中,索引服务器100A在DHT网络中。在此情况下,索引服务器100A可接收的节点信息请求也可包括如上所述的第1类节点信息请求和第2类节点信息请求。第1类节点信息请求是直接从请求方节点发送来的请求(在索引服务器100A是请求方节点的归属索引服务器的情况下),或者是由请求方节点发出并被DHT网络中的其他索引服务器路由到索引服务器100A的请求。第1类节点信息请求不会明确指定索引服务器100A为目的地索引服务器。如果接收到这种请求,DHT查找单元106执行DHT查找并且索引服务器100A将会相应地动作。与第一实施例一样,第二实施例中的第2类节点信息请求也可以是当另一服务器正在执行节点信息搜索并且发现其可从索引服务器100A获取所需的节点信息时从该另一服务器发送来的节点信息请求。第2类节点信息请求将明确指定索引服务器100A为目的地索引服务器。如果接收到这种请求,则节点信息搜索单元105直接执行节点信息搜索,并且索引服务器100A将会相应地动作。
将联系图6来描述索引服务器100A的操作。
在在步骤S201和S202中接收到请求之后,消息处理单元104A在步骤S203A中判定该请求的类型。如果该请求是第1类节点信息请求,则过程前进到步骤S208,在该步骤中DHT查找单元106通过使用由索引服务器100A维护的本地手指表(未示出)来执行DHT查找。在步骤S209中,DHT查找单元106判定本地手指表上的查找是否命中。如果发生命中,则过程前进到步骤S204,在该步骤中使节点信息搜索单元105根据该请求搜索和获取节点信息,然后在步骤S205中,所获取的节点信息被作为响应发送到请求方节点。请注意,如果索引服务器100A不是请求方节点的归属索引服务器,则索引服务器100A可以经由归属索引服务器将所获取的节点信息发送给请求方节点。
另一方面,如果在步骤S209中未发生命中,则过程前进到步骤S210,在该步骤中DHT查找单元106例如指示消息处理单元104A向手指表所指向的下一跳服务器发送节点信息请求。
如果在步骤S203A中判定请求是第2类节点信息请求,则过程前进到步骤S206,在该步骤中节点信息搜索单元105根据该请求搜索和获取节点信息,然后在步骤S207中,所获取的节点信息被作为响应发送到请求方服务器。
图7是示出根据本发明第三实施例的索引服务器100B的框图。图8是示出根据第三实施例的索引服务器100B的消息处理单元104B和其他组件的操作的流程图。与第二实施例的元件相同或相似的元件将用相同或相似的标号来标示,并且对其的描述将被省略。
如图7所示,第三实施例包括对请求方节点的修改。在第二实施例中,由请求方节点发出的与数据文件相关联的请求将首先被发送到归属索引服务器,并且可在DHT网络中被路由,直到其到达目的地索引服务器为止,即到达在其本地手指表中发现命中的服务器为止。如果与该数据文件相关联的后续请求被直接发送到目的地索引服务器,则响应的延迟可得到进一步减小。由请求方节点发送并且明确指定目的地索引服务器的这种后续请求在这里将被称为第3类节点信息请求。
为此,图7所示的请求方节点200包括节点信息请求单元201、查找单元202和缓存单元203。在接收到与特定数据文件相关联并且指示出该数据文件的目的地索引服务器的节点信息响应之后,该数据文件与该目的地索引服务器之间的关联被存储在缓存单元203中。当此后节点信息请求单元201将要发送与该数据文件相关联的另一节点信息请求时,查找单元202在缓存单元203中查找以确定与该数据文件相关联的目的地索引服务器。然后,节点信息请求单元201将直接向目的地索引服务器发送第3类节点信息请求。
假定目的地索引服务器是索引服务器100B。索引服务器100B与第二实施例的索引服务器100A的不同之处在于其中的消息处理单元104B还可判别第3类节点信息请求。
具体而言,如图8所示,在接收到请求之后,消息处理单元104B在步骤S203B中判定其类型。如果其是第3类节点信息请求,则过程将跳过步骤S208和S209,并且直接前进到步骤S204,在该步骤中节点信息搜索单元105根据该请求搜索和获取节点信息,然后在步骤S205中,节点信息响应被直接发送到请求方节点200。
虽然已经描述了本发明的一些具体实施例,但是本领域的技术人员能够明白,可以对本发明进行各种修改、组合和更改,并且本发明涵盖落在所附权利要求范围内的修改、组合和更改。

Claims (20)

1.一种对等网络的索引服务器,包括:
元数据存储单元,其存储一个或多个条目,每个条目与一数据文件相关联并且包括多个信息项,每个信息项指示出提供该数据文件的节点和该节点的位置;以及
节点信息管理单元,其监视所述元数据存储单元以识别所述元数据存储单元中存储的信息项数目超过阈值的条目,并且将识别出的条目中包括的一部分信息项传送到另一服务器,所传送的部分包括尽可能多的指示出位置相互接近的节点的信息项。
2.如权利要求1所述的索引服务器,还包括传送日志存储单元,并且其中:
当所述部分被传送到另一服务器时,所述节点信息管理单元创建或更新存储在所述传送日志存储单元中的传送日志,以使得该传送日志反映出与所述部分相关联的数据文件、所述部分被传送到的所述另一服务器以及所述部分中包括的信息项所指示的节点的位置范围。
3.如权利要求1所述的索引服务器,其中所述另一服务器是被判定为具有轻负担的服务器。
4.如权利要求1所述的索引服务器,其中,所述节点信息管理单元通过以下操作来执行所述传送:将识别出的条目中包括的信息项划分成一个或多个群组,每个群组包括指示出由一不同的互联网服务提供商(ISP)服务的节点的信息项;并且将所述一个或多个群组之中包括最大数目的信息项的群组传送到所述另一服务器。
5.如权利要求1所述的索引服务器,其中,所述节点信息管理单元通过以下操作来执行所述传送:将识别出的条目中包括的信息项划分成一个或多个群组,每个群组包括指示出由一不同的互联网服务提供商(ISP)服务的节点的信息项;识别所述一个或多个群组之中包括最大数目的信息项的群组;判定所述最大数目是否超过所述阈值;并且如果所述最大数目不超过所述阈值则将识别出的群组传送到所述另一服务器,或者如果所述最大数目超过所述阈值,则将识别出的群组中包括的信息项划分成一个或多个子群组,每个子群组包括指示出一不同区域中的节点的信息项,并且将所述一个或多个子群组之中信息项数目最大的子群组传送到所述另一服务器。
6.如权利要求1所述的索引服务器,其中,
如果在第一信息项已被传送到所述另一服务器之后,接收到了指示出提供与所述第一信息项相关联的数据文件并且位置与所述第一信息项所指示的节点接近的节点的第二信息项,则所述节点信息管理单元将所述第二信息项传送到所述另一服务器。
7.如权利要求2所述的索引服务器,还包括:
节点信息搜索单元,其可操作来根据为请求方节点的对关于提供指定数据文件的节点的信息的请求,在所述元数据存储单元和所述传送日志存储单元中执行搜索以从所述元数据存储单元和与所述指定数据文件相关联的一部分信息项已被传送到的另一服务器中的至少一个获取指示出提供所述指定数据文件并且位置与所述请求方节点尽可能接近的节点的信息项。
8.如权利要求7所述的索引服务器,其中,所述请求指定所述索引服务器为目的地索引服务器。
9.如权利要求7所述的索引服务器,还包括:
分布式哈希表(DHT)查找单元,其可操作来响应于所述请求利用所述指定数据文件的标识执行DHT查找以判定在所述索引服务器上是否发生命中,并且如果未发生命中则在所述索引服务器所属的DHT网络中路由所述请求,或者如果发生命中则使得所述节点信息搜索单元执行所述搜索。
10.如权利要求9所述的索引服务器,其中,所述请求不指定所述索引服务器为目的地索引服务器。
11.一种用于对等网络的索引服务器的方法,所述索引服务器包括元数据存储单元,该元数据存储单元存储一个或多个条目,每个条目与一数据文件相关联并且包括多个信息项,每个信息项指示出提供该数据文件的节点和该节点的位置,所述方法包括以下步骤:
监视所述元数据存储单元以识别所述元数据存储单元中存储的信息项数目超过阈值的条目;以及
将识别出的条目中包括的一部分信息项传送到另一服务器,所传送的部分包括尽可能多的指示出位置相互接近的节点的信息项。
12.如权利要求11所述的方法,其中,所述索引服务器还包括传送日志存储单元,并且所述方法还包括:
当所述部分被传送到另一服务器时,创建或更新存储在所述传送日志存储单元中的传送日志,以使得该传送日志反映出与所述部分相关联的数据文件、所述部分被传送到的所述另一服务器以及所述部分中包括的信息项所指示的节点的位置范围。
13.如权利要求11所述的方法,其中所述另一服务器是被判定为具有轻负担的服务器。
14.如权利要求11所述的方法,其中,所述传送步骤包括:
将识别出的条目中包括的信息项划分成一个或多个群组,每个群组包括指示出由一不同的互联网服务提供商(ISP)服务的节点的信息项;以及
将所述一个或多个群组之中包括最大数目的信息项的群组传送到所述另一服务器。
15.如权利要求11所述的方法,其中,所述传送步骤包括:
将识别出的条目中包括的信息项划分成一个或多个群组,每个群组包括指示出由一不同的互联网服务提供商(ISP)服务的节点的信息项;
识别所述一个或多个群组之中包括最大数目的信息项的群组;
判定所述最大数目是否超过所述阈值;以及
如果所述最大数目不超过所述阈值,则将识别出的群组传送到所述另一服务器,或者否则
如果所述最大数目超过所述阈值,则将识别出的群组中包括的信息项划分成一个或多个子群组,每个子群组包括指示出一不同区域中的节点的信息项,并且将所述一个或多个子群组之中信息项数目最大的子群组传送到所述另一服务器。
16.如权利要求11所述的方法,还包括:
如果在第一信息项已被传送到所述另一服务器之后,接收到了指示出提供与所述第一信息项相关联的数据文件并且位置与所传送的部分中包括的第一信息项所指示的节点接近的节点的第二信息项,则将所述第二信息项传送到所述另一服务器。
17.如权利要求12所述的方法,还包括:
根据为请求方节点的对关于提供指定数据文件的信息的请求,在所述元数据存储单元和所述传送日志存储单元中执行搜索以从所述元数据存储单元和与所述指定数据文件相关联的一部分信息项已被传送到的另一服务器中的至少一个获取指示出提供所述指定数据文件并且位置与所述请求方节点尽可能接近的节点的信息项。
18.如权利要求17所述的方法,其中,所述请求指定所述索引服务器为目的地索引服务器。
19.如权利要求17所述的方法,还包括:
响应于所述请求,利用所述指定数据文件的标识执行DHT查找以判定在所述索引服务器上是否发生命中,并且如果未发生命中则在所述索引服务器所属的DHT网络中路由所述请求,或者如果发生命中则使得所述搜索被执行。
20.如权利要求19所述的方法,其中,所述请求不指定所述索引服务器为目的地索引服务器。
CN2010800040475A 2010-03-26 2010-03-26 索引服务器及其方法 Pending CN102947821A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2010/000379 WO2011116502A1 (en) 2010-03-26 2010-03-26 Indexing server and method therefor

Publications (1)

Publication Number Publication Date
CN102947821A true CN102947821A (zh) 2013-02-27

Family

ID=44672431

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010800040475A Pending CN102947821A (zh) 2010-03-26 2010-03-26 索引服务器及其方法

Country Status (4)

Country Link
US (1) US20110282883A1 (zh)
JP (1) JP5177919B2 (zh)
CN (1) CN102947821A (zh)
WO (1) WO2011116502A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107787489A (zh) * 2015-06-16 2018-03-09 微软技术许可有限责任公司 包括层级的文件存储系统

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5651093B2 (ja) * 2011-10-28 2015-01-07 株式会社日立製作所 分散id管理方法および分散id管理システム
CN103581207A (zh) * 2012-07-18 2014-02-12 富泰华工业(深圳)有限公司 云端数据存储系统及基于该系统的数据存储与共享方法
CN106844510B (zh) * 2016-12-28 2021-01-15 北京五八信息技术有限公司 一种分布式数据库集群的数据迁移方法和装置
EP3821587A1 (en) * 2018-07-11 2021-05-19 Telefonaktiebolaget LM Ericsson (publ) System and method for distributed indexing in peer-to-peer networks
JP7131357B2 (ja) * 2018-12-12 2022-09-06 富士通株式会社 通信装置、通信方法、および通信プログラム
CN114375565B (zh) * 2020-07-31 2023-06-06 华为技术有限公司 一种文件块下载方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101060534A (zh) * 2007-06-13 2007-10-24 中兴通讯股份有限公司 一种p2p网络应用的系统及网络侧系统
JP2008234563A (ja) * 2007-03-23 2008-10-02 Nec Corp オーバレイ管理装置、オーバレイ管理システム、オーバレイ管理方法およびオーバレイ管理用プログラム
US20090031092A1 (en) * 2007-07-27 2009-01-29 Sony Corporation Data reception system

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5963944A (en) * 1996-12-30 1999-10-05 Intel Corporation System and method for distributing and indexing computerized documents using independent agents
US7555553B2 (en) * 2002-10-01 2009-06-30 Hewlett-Packard Development Company, L.P. Placing an object at a node in a peer-to-peer system based on storage utilization
US7788400B2 (en) * 2003-09-19 2010-08-31 Hewlett-Packard Development Company, L.P. Utilizing proximity information in an overlay network
US7596618B2 (en) * 2004-12-07 2009-09-29 Hewlett-Packard Development Company, L.P. Splitting a workload of a node
JP2006227763A (ja) * 2005-02-15 2006-08-31 Nec Soft Ltd データ共有システム、データ共有方法及びプログラム
US8090813B2 (en) * 2006-09-19 2012-01-03 Solid State Networks, Inc. Methods and apparatus for data transfer
US7827147B1 (en) * 2007-03-30 2010-11-02 Data Center Technologies System and method for automatically redistributing metadata across managers
US8238237B2 (en) * 2007-06-18 2012-08-07 Sony Computer Entertainment Inc. Load balancing distribution of data to multiple recipients on a peer-to-peer network
WO2009032712A2 (en) * 2007-08-29 2009-03-12 Nirvanix, Inc. Method and system for moving requested files from one storage location to another
JP5119844B2 (ja) * 2007-10-09 2013-01-16 沖電気工業株式会社 ファイル転送システム、ファイル転送方法、ファイル転送プログラム及びインデックスサーバ
CN101355591A (zh) * 2008-09-12 2009-01-28 中兴通讯股份有限公司 一种p2p网络及其调度方法
US20110153737A1 (en) * 2009-12-17 2011-06-23 Chu Thomas P Method and apparatus for decomposing a peer-to-peer network and using a decomposed peer-to-peer network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008234563A (ja) * 2007-03-23 2008-10-02 Nec Corp オーバレイ管理装置、オーバレイ管理システム、オーバレイ管理方法およびオーバレイ管理用プログラム
CN101060534A (zh) * 2007-06-13 2007-10-24 中兴通讯股份有限公司 一种p2p网络应用的系统及网络侧系统
US20090031092A1 (en) * 2007-07-27 2009-01-29 Sony Corporation Data reception system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
GYORGY DAN ,NIKLAS CARLSSON: "《Dynamic Swarm Management for Improved BitTorrent Performance》", 《HTTPS://WWW.USENIX.ORG/LEGACY/EVENT/IPTPS09/TECH/FULL_PAPERS/DAN/DAN_HTMI/》, 17 March 2009 (2009-03-17), pages 1 - 13 *
RUCHIR BINDAL 等: "《Improving Traffic Locality in BitTorrent via Biased Neighbor Selection》", 《PROCEEDINGS OF THE 26TH IEEE CONFERENCE ON DISTRIBUTED COMPUTING SYSTEMS(ICDCS’06)》, 31 December 2006 (2006-12-31), pages 1 - 9 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107787489A (zh) * 2015-06-16 2018-03-09 微软技术许可有限责任公司 包括层级的文件存储系统
CN107787489B (zh) * 2015-06-16 2021-06-08 微软技术许可有限责任公司 包括层级的文件存储系统

Also Published As

Publication number Publication date
US20110282883A1 (en) 2011-11-17
JP5177919B2 (ja) 2013-04-10
WO2011116502A1 (en) 2011-09-29
JP2012514278A (ja) 2012-06-21

Similar Documents

Publication Publication Date Title
CN104618506B (zh) 一种众包的内容分发网络系统、方法与装置
CN101959054B (zh) 集中式对等点播系统和伙伴节点选择方法
US7174382B2 (en) Interest-based connections in peer-to-peer networks
CN102947821A (zh) 索引服务器及其方法
US9204180B2 (en) Method, server and terminal for audio and video on demand
US20080195597A1 (en) Searching in peer-to-peer networks
US20110231431A1 (en) Communication terminal device, computer program, and content search method
US20080235321A1 (en) Distributed contents storing system, copied data acquiring method, node device, and program processed in node
US20140074991A1 (en) Systems and methods for dynamic networked peer-to-peer content distribution
CN101510899B (zh) 一种实现内容源选择的方法、系统和设备
KR101215993B1 (ko) 피어―투―피어 라이브 스트리밍을 위한 콘텐츠 분산 네트워크
WO2010127618A1 (zh) 一种实现流媒体内容服务的系统和方法
CN101841553A (zh) 网络上请求资源的位置信息的方法、用户节点和服务器
CN102143199A (zh) 获取内容的方法、节点及内容网络
EP2667573A1 (en) Method and device for establishing route
CN103107944B (zh) 一种内容定位方法和路由设备
US20160381127A1 (en) Systems and methods for dynamic networked peer-to-peer content distribution
WO2006103800A1 (ja) 情報処理装置及び蓄積装置、情報処理方法及び蓄積方法並びに情報処理用プログラム及び蓄積装置用プログラム
CN103299295A (zh) 对等网络中的搜索
CN113453038A (zh) 一种cdn-p2p混合架构下效用最优协同缓存管理方法
CN101741869B (zh) 提供内容的方法和系统
CN103179191B (zh) P2p网络管控装置及p2p网络管控系统
Bandara et al. Community-based caching for enhanced lookup performance in P2P systems
JP2010231576A (ja) ノード装置、ノード処理プログラム及びコンテンツ保存方法
JP2008085678A (ja) コンテンツ配信システム、コンテンツ配信方法、コンテンツ配信システムにおける端末装置及びそのプログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20130227