位图管理和节点集合查询的方法以及节点和索引服务器的制作方法

文档序号:6602276阅读:115来源:国知局
专利名称:位图管理和节点集合查询的方法以及节点和索引服务器的制作方法
技术领域
本申请涉及P2P系统中的位图管理和节点集合查询的方法,以及P2P节点和索引服务器。
背景技术
P2P (Peer-to-Peer,点对点)系统以其良好的可扩展性和健壮性,越来越多地应用于文件共享、传输等业务。在P2P系统中,包含有多个节点(peer)和索引服务器(tracker)。在索引服务器中,保存有与一个或多个文件中的各文件相关的节点列表 (peerlist)。针对一个特定文件的节点列表例如可包括该文件的标识、与该文件相关的节点的标识(例如节点的IP地址、端口等)。新加入P2P系统的节点可请求索引服务器提供与某个文件相关的节点列表,同时也可将自身的信息(例如IP地址、端口等的标识)提交给索引服务器。索引服务器根据节点的请求,向节点返回包含一个或多个邻居节点标识的节点列表。此处所谓的邻居节点,指的是可以向其它节点传输某个文件的节点。由于在P2P系统中共享和传输的文件通常具有较大体量,因此,可将一个文件划分成若干子块(chunk),以子块为单位进行文件分发。即,节点在成功下载至少一个完整子块的情况下,就能为其他需要该子块的节点提供上传服务。为此,节点可通过位图(bitmap) 来指示其已下载或缓存的子块信息。位图中的每一个比特都与一个子块对应。如果节点已下载或缓存某个子块,则位图中与该子块对应的比特可被置为“1”,否则,该比特被置为 “0”。由于传统的索引服务器所提供的是针对某个文件的节点列表,在子块机制引入后,对于需要下载该文件的某个或某些子块的节点而言,得到的节点列表中可能包含一些未保存或缓存有所需子块的节点。这时,为了能够确定适当节点以进行文件传输,节点之间需要进行位图交互来互相了解子块的保存或缓存情况。为此,根据索引服务器是否参与位图的交互,现有技术中提供了两种解决方案。在索引服务器不参与位图交互的方案中,由节点自身与所获得的节点列表中的节点进行位图交互。随着文件数据的不断传输,节点的位图被不断更新,因此节点之间需要进行频繁的位图交互,从而占用了有限的上载带宽,影响系统性能。在索引服务器参与位图交互的方案中,各节点可向索引服务器汇报其自身的位图。在请求节点请求索引服务器提供节点列表时,可在请求中指明其所需的子块。这样, 索引服务器可利用其所获得的位图信息,在向请求节点返回节点列表时进行有针对性的筛选。这种方案可降低整个P2P系统中的位图交互频率。但是,由于大量节点需要向少数索引服务器汇报位图信息,索引服务器需对每个声明拥有某文件的节点保存其位图信息,并且需对每个针对特定子块集合的节点的查询请求核对节点列表中各节点的位图,以确定各节点是否拥有给定子块,因此,如果每次交互的位图的体量、保存在索引服务器处的位图的体量、以及根据位图确定节点是否拥有给定子块的计算开销得不到控制,则会占用索引服务器的带宽资源、存储资源和计算资源,从而影响整个系统的性能。
现有技术中已经提出,可采用差异编码算法来缩小每次交互的位图体量(参见 G. Deng、C. Li、C. Chen 禾口 Y.Zhang 的 A bitmap codingmethod for P2P streaming protocols (用于P2P流协议的位图编码方法)Jn Proc. of CAR 2009)。但是,这种方法仍然无法降低索引服务器保存位图信息体量的存储开销和根据位图信息筛选节点列表的计算开销。

发明内容
本申请的目的是提供一种至少能够部分改善上述现有技术中的缺陷的P2P系统中的位图管理和节点集合查询的方法,以及P2P节点和索引服务器。根据本申请的第一方面,提出了一种P2P系统中位图管理的方法,包括节点采用布隆算法对已获取的、特定文件的子块集合进行编码以形成汇报信息;所述节点将所述汇报信息发送给索引服务器;以及所述索引服务器根据所述汇报信息,维护所述特定文件的位图信息。根据本申请的另一方面,提出了一种P2P系统中节点集合查询的方法,其中,索引服务器保存有特定文件的位图信息,所述位图信息是通过布隆算法对节点已获取的、所述特定文件的子块集合编码而形成的,所述方法包括请求节点采用布隆算法对希望获得的、 所述特定文件的子块集合进行编码以形成请求信息;所述请求节点将所述请求信息发送给所述索引服务器;以及所述索引服务器根据所述请求信息和所述位图信息,选取节点集合发送给所述请求节点。根据本申请的又一方面,提出了一种P2P系统中节点集合查询的方法,包括汇报节点采用布隆算法对已获取的、特定文件的子块集合进行编码以形成汇报信息;所述汇报节点将所述汇报信息发送给索引服务器;所述索引服务器根据所述汇报信息,维护所述特定文件的位图信息;请求节点采用布隆算法对希望获得的、所述特定文件的子块集合进行编码以形成请求信息;所述请求节点将所述请求信息发送给所述索引服务器;以及所述索引服务器根据所述请求信息和所述位图信息,选取节点集合发送给所述请求节点。根据本申请的又一方面,提出了一种P2P节点,包括编码模块,采用布隆算法对包括特定文件的一个或多个子块的子块集合进行编码,以形成编码的信息;以及传输模块, 将所述编码的信息发送给索引服务器。根据本申请的又一方面,提出了一种P2P系统中的索引服务器,包括存储模块, 保存特定文件的位图信息,所述位图信息是通过布隆算法对节点已获取的、所述特定文件的子块集合编码而形成的;以及维护模块,根据接收自汇报节点的汇报信息,维护所述位图信息,其中,所述汇报信息是所述汇报节点采用布隆算法对已获取的、所述特定文件的子块集合进行编码而形成的。根据本申请的又一方面,提出了一种P2P系统中的索引服务器,包括存储模块, 保存特定文件的位图信息,所述位图信息是通过布隆算法对节点已获取的、所述特定文件的子块集合编码而形成的;选取模块,根据接收自请求节点的请求信息以及所述位图信息, 选取节点集合,其中,所述请求信息是所述请求节点采用布隆算法对希望获得的、所述特定文件的子块集合进行编码而形成的;以及传输模块,将所述节点集合发送给所述请求节点。根据本申请,可降低节点与索引服务器交互的位图体量,减小保存在索引服务器处的位图信息的体量,以及降低索引服务器根据位图信息确定节点集合的计算开销,从而提高系统性能。


图1是根据本申请一个实施方案的P2P系统中位图管理的方法的流程图;图2是根据本申请另一实施方案的P2P系统中位图管理的方法的流程图;图3是根据本申请一个实施方案的P2P系统中节点集合查询的方法的流程图;图4是根据本申请另一实施方案的P2P系统中节点集合查询的方法的流程图;图5是显示根据本申请一个实施方案的P2P节点的框图;图6是显示根据本申请一个实施方案的P2P系统中的索引服务器的框图;图7是显示根据本申请另一实施方案的P2P系统中的索引服务器的框图;以及图8是显示根据本申请又一实施方案的P2P系统中的索引服务器的框图。
具体实施例方式下面参照附图,对本申请的进行详细说明。为简明起见,本申请各实施方案的说明中,相同或类似的装置或步骤使用相同或相似的附图标记来表示。在本申请中,P2P系统可包括多个节点和一个或多个索引服务器。在P2P系统中, 可将一个文件划分成若干子块,以子块为单位进行文件分发。为了记录已下载或缓存的子块情况,各节点可通过位图来指示其已获取的子块信息。根据本申请,索引服务器可进行位图信息管理,集中管理与各节点已获取的文件子块集合相对应的位图信息,从而可向请求下载某个文件的节点更有针对性地提供能够为其提供下载的邻居节点。首先参照图1,详细描述根据本申请一个实施方案的P2P系统中位图管理的方法。 在步骤1002,节点可采用以下将详细描述的布隆算法,对已获取的、某个特定文件的子块集合进行编码,以形成汇报信息。在步骤1004,节点可将所形成的汇报信息发送给索引服务器。在步骤1006,接收到汇报信息的索引服务器可根据该汇报信息,对该特定文件的位图信息进行维护。作为图1所示方法的一个实施例,节点可采用布隆算法,选用适当的哈希函数集合H和编码后的二进制数组长度m,对已获取的、某个特定文件的子块集合进行编码而形成汇报信息。其中,集合H和长度m的值可由本领域技术人员根据需分发文件的长度或者根据P2P系统中传输的文件的平均长度来确定。可将汇报信息看作是经过布隆算法进行编码而被压缩的位图,从而可降低节点向索引服务器汇报其获得的子块的通信开销。举例而言,对于一个长度为2G的文件,假设子块长度为2M,则在未经布隆算法编码的情况下,该文件的位图长度为IOM ;而在经布隆算法编码的情况下,可通过对哈希函数集合H进行构造,而能够以长度m = 128的二进制数组来表示该文件的子块集合,并且使得判别准确性不低于97%。这样,可将原本IOM比特的位图所表示的子块信息以128比特的二进制数组来表示,从而减小了数据存储和传输的体量。具体而言,可将哈希函数集合H 这样构造使用公知的MD5消息摘要算法将子块的标识转换成1 比特的二进制串,然后将其拆分成4个32比特的串,最后以1 逐一对四个串取模求余数,就得到四个取值范围在 0至m-1的整数。然后,可将二进制数组中与这四个自然数对应的比特置位。应该理解,以上仅是为了描述的目的而给出的示例,本领域技术人员可选取其他的哈希函数集合H和长度m来实现对子块集合的编码。另外,虽然按照上面描述的示例,汇报信息的某个比特为“1”,表示的是该比特对应的子块已被节点所获取。但是本领域技术人员可以理解,也可以使被设置为“0”的比特表示该比特对应的子块已被节点所获取。可以理解,在节点下载某个文件的过程中,该节点所获取的该文件的子块可不断增多,因此,该节点可按照一定的时间间隔(例如,10 15分钟)周期性地向索引服务器汇报其所获取的、该文件的子块集合。根据一个实施方案,节点在多次发送汇报信息时,可向索引服务器发送这样的汇报信息,该汇报信息反映的是该节点从上一次发送汇报信息之后至今,新获取的特定文件的子块集合,换言之,该汇报信息是采用布隆算法对上一次发送汇报信息之后新获取的、特定文件的子块集合进行编码而形成的。本领域技术人员可以理解,可通过为每次汇报信息的发送和每个子块的获取分别设置时间标志,来确定本次需发送的子块集合。根据本实施方案,通过仅将自上次发送至今新增的子块信息发送给索引服务器, 而不是每次均发送节点拥有的全部子块信息,可进一步减小节点所发送的汇报信息的体量,从而降低系统通信开销。下面参照图2,详细描述根据本申请另一个实施方案的P2P系统中位图管理的方法。图2所示的步骤2002和2004与图1所示的步骤1002和1004相同,此处不再赘述。在如图2所示的实施方案中,索引服务器还可保存有针对各文件的节点列表,其中,针对某个文件的节点列表中的每个节点已获取有该文件的至少一个子块。如图2所示, 在步骤2006中,索引服务器可判断发送汇报信息的节点是否已经包含在特定文件的节点列表中,若没有,则在步骤2008中,索引服务器将该节点加入特定文件的节点列表,并使特定文件的位图信息中针对该节点的位图等于所接收到的汇报信息。若经判断节点包含在特定文件的节点列表中,则在步骤2010中,索引服务器更新特定文件的位图信息,使得该位图信息中针对该节点的位图所对应的子块集合包含汇报信息所对应的子块集合。可以理解,索引服务器所保存的特定文件的节点列表包含的是已经下载或缓存了该特定文件的至少一个子块的节点。因此,如果特定文件的节点列表未包含发送与特定文件相关的汇报信息的节点,则可表示该节点是首次汇报与特定文件相关的信息。这时,可将其加入特定文件的节点列表,并且,可使该特定文件的位图信息中针对该节点的位图等于所接收的汇报信息,换言之,针对该节点的位图被初始化为所接收到的汇报信息。另一方面,如果特定文件的节点列表已经包含有发送与特定文件相关的汇报信息的节点,则可表示该节点之前已经汇报过与特定文件相关的信息。由于根据图2所示的方法,在节点第一次汇报与某个文件相关的汇报信息时,索引服务器已经将该节点包含到该文件的节点列表中,因而此时,特定文件的节点列表可保持不变。但是,特定文件的位图信息中针对该节点的位图需根据汇报信息进行更新,使得更新后的针对该节点的位图包含汇报信息所对应的子块集合。可以理解,由于保存在索引服务器处的特定文件的位图信息中针对某个节点的位图可根据该节点发送的汇报信息来进行初始化或更新,因此,针对该节点的位图可看作是通过布隆算法对该节点已获取的、特定文件的子块集合进行编码而形成的。
根据本实施方案,索引服务器可通过对特定文件的位图信息中针对非首次发送汇报信息的节点的位图与所接收到的汇报信息进行逐比特逻辑运算,来实现对针对所述节点的位图的更新操作。可以理解,位图和汇报信息中的各个比特可按预设方式来表示不同含义,例如,可设定位图和汇报信息的某个比特为“1”表示该比特对应的子块已被节点所获取 (简称为以“1”置位),也可设定位图和汇报信息的某个比特为“0”表示该比特对应的子块已被节点所获取(简称为以“0”置位)。为了根据汇报信息对特定文件的位图信息中针对节点的位图进行更新,以使该位图所对应的子块集合包含汇报信息所对应的子块集合,在以“1”置位的情况下,索引服务器可使保存的该特定文件的位图信息中针对该节点的位图与汇报信息进行逐比特逻辑“或”运算,来得到更新后的位图;而在以“0”置位的情况下,索引服务器可使保存的该特定文件的位图信息中针对该节点的位图与汇报信息进行逐比特逻辑“与”运算,来得到更新后的位图。根据本申请,在汇报信息所对应的、某个节点已获取的某个文件的子块集合与索引服务器处已保存的该文件的位图信息中针对该节点的位图所对应的子块集合相比,增加了多个子块的情况下,仅通过一次逻辑运算操作,便可将这些增加的子块集合包含到更新后的该文件的位图信息中,由此,可降低索引服务器更新位图的计算开销,从而提高系统性能。当然可以理解,在节点每次均汇报其已经获得的、全部特定文件的子块集合的情况下,索引服务器对特定文件的位图信息中针对该节点的位图的更新也可以是以所接收的汇报信息替换针对该节点的位图;而在节点汇报的是自上一次发送汇报信息之后新获取的、特定文件的子块集合的情况下,索引服务器根据汇报信息更新特定文件的位图信息中针对该节点的位图可以通过以上描述的逻辑运算来得到更新后的位图。虽然图中未示出,但可以理解,在完成对节点列表和位图的更新之后,索引服务器可向发送汇报信息的节点返回确认消息。另外,虽然根据本申请,节点将经布隆算法编码的汇报消息发送给索引服务器,但是由于布隆算法是一种有损压缩算法,因此,各节点可在本地保存未经编码的位图。下面参照图3,详细描述根据本申请一个实施方案的P2P系统中节点集合查询的方法。其中,该P2P系统中的索引服务器可保存有与节点已获取的、特定文件的子块集合相对应的位图信息,在本实施方案中,索引服务器中保存的位图信息可以是通过布隆算法对上述子块集合进行编码而形成的经过压缩的位图信息。如图3所示,在步骤3002,希望获得某个特定文件的某个子块集合的请求节点可采用布隆算法对该子块集合进行编码,以形成请求信息。然后在步骤3004,请求节点可将请求信息发送给索引服务器。在步骤3006,索引服务器在接收到请求信息后,可根据请求信息以及所保存的该特定文件的位图信息,选取节点集合发送给请求节点。可以理解,请求节点对所请求的特定文件的子块集合进行编码所采用的布隆算法的参数可与为了形成索引服务器中所保存的位图信息所采用的布隆算法的参数相同,例如,可采用同样的哈希函数集合H和编码后二进制数组长度m。由于索引服务器可根据反映了节点已获取的特定文件的子块集合的该特定文件的位图信息,来确定将发送给请求节点的节点集合,而该节点集合通常是现有索引服务器处所保存的特定文件的节点列表的子集,因此,可减少索引服务器为请求节点提供的节点
9集合中包含不能为请求节点提供所需子块的节点,并且能够减小发送节点集合的通信开销。根据一个具体实施方案,索引服务器所选取的节点集合所包含的是这样的节点 特定文件的位图信息中针对该节点的位图所对应的子块集合可包含请求信息所对应的子块集合中的至少一个子块,换言之,该节点至少已经保存或缓存有所请求的特定文件子块集合中的至少一个子块。在本具体实施方案中,索引服务器可根据特定文件的位图信息中针对某个节点的位图与所接收的请求信息进行逐比特逻辑运算的结果,来判断该节点是否是所选取的节点集合中的元素。下面以一个具体示例来进行说明。可以理解,对于某个节点,如果该节点已经获得的、特定文件的子块集合中包含有请求节点希望获得的至少一个子块,则可将该节点作为所选取的节点集合中的一个元素。 在以“1”置位的情况下,即,位图的某个比特为“1”表示该比特对应的子块已被节点所获取 (这时,请求信息的某个比特为“1”表示该比特对应的子块是请求节点希望获得的子块), 索引服务器可将该特定文件的位图信息中针对某个节点的位图与请求信息进行逐比特逻辑“与”运算,若运算结果为各比特全为0的串,则表示该节点已获得的子块集合不包含请求节点所请求的任一子块;否则,若运算所得到的串至少有一个比特为1,则可表示该节点已获得的子块集合包含请求节点所请求的子块集合中的至少一个子块,这时,可将该节点作为所选取的节点集合中的元素。可以理解,在以“0”置位的情况下,索引服务器可将特定文件的位图信息中针对某个节点的位图与请求信息进行逐比特逻辑“或”运算,若所得到的串至少有一个比特为0,则可将该节点作为所选取的节点集合中的元素。根据本申请,在请求信息所对应的子块集合包含多个子块的情况下,仅通过对索引服务器处保存的特定文件的位图信息中针对待选节点的位图与请求信息进行一次逻辑运算,便可确定是否将该待选节点加入要发送给请求节点的节点集合中,而不必针对多个子块中的每一个进行多次计算。而在布隆算法应用的现有技术中,通常在一次操作中仅判断一个元素是否包含在经布隆算法编码的位串中。可以理解,通过本申请中以一次操作判断多个元素是否包含在经布隆算法编码的位串中,来进行节点集合的选取,可降低索引服务器的计算开销。下面参照图4,详细描述根据本申请另一实施方案的P2P系统中节点集合查询的方法。在步骤4002,汇报节点采用布隆算法对已获取的、特定文件的子块集合进行编码以形成汇报信息。在步骤4004,汇报节点将所形成的汇报信息发送给索引服务器。在步骤4006, 索引服务器可根据接收到的汇报信息,维护特定文件的位图信息。索引服务器进行维护操作的具体方式已在上面参照图2进行了详细描述,此处不再赘述。汇报节点可周期性地将汇报信息发送给索引服务器。另外,汇报节点可采用布隆算法对上一次发送汇报信息之后新获取的、特定文件的子块集合进行编码以形成汇报信息。可以理解,通过一次执行步骤4002至步骤4006或多次重复执行步骤4002至步骤4006, 索引服务器中可保存有通过布隆算法对节点已获取的、特定文件的子块集合进行编码而形成的位图信息。仍然参照图4,在步骤4008,请求节点采用布隆算法对希望获得的、特定文件的子块集合进行编码以形成请求信息。可以理解,请求节点所采用的布隆算法可与汇报节点采用的布隆算法具有相同的参数,例如,具有相同的哈希函数集合H和编码后二进制数组长度m。在步骤4010,请求节点可将请求信息发送给索引服务器,然后,在步骤4012,索引服务器可根据请求信息和特定文件的位图信息,选取节点集合发送给请求节点。索引服务器选取节点集合的方式已在上文详细描述,此处不再赘述。接下来,参照图5,描述根据本申请一个实施方案的P2P节点。在图5中,为了描述的目的,仅示出了一个节点500和一个索引服务器510,但是可以理解,P2P系统50可包含多个节点和至少一个索引服务器。P2P节点500可包括编码模块502和传输模块504。编码模块502可采用布隆算法对包括特定文件的一个或多个子块的子块集合进行编码,以形成编码的信息。具体而言,可利用编码模块502对节点已获取的、特定文件的子块集合进行编码,编码后的信息即汇报信息。也可利用编码模块502对节点希望获得的、特定文件的子块集合进行编码,编码后的信息即请求信息。传输模块504可将经过编码模块502编码的信息,即汇报信息或者请求信息,发送给索引服务器510。为了通过节点500的编码模块502形成这样的汇报信息,该汇报信息反映的是节点500从上一次发送汇报信息之后至今,新获取的特定文件的子块集合,节点500可进一步包括时标设置模块(未示出),该模块可通过为每次汇报信息的发送和每个子块的获取分别设置时间标志,来确定本次需汇报的子块集合。图6示出了根据一个实施方案的P2P系统中的索引服务器。同样,虽然图6仅示出了一个节点600和一个索引服务器610,但本领域技术人员可以理解,P2P系统60可包含多个节点和至少一个索引服务器。如图6所示,索引服务器610可包括存储模块612和维护模块614。其中,存储模块612中可保存特定文件的位图信息,该位图信息是通过布隆算法对节点已获取的、特定文件的子块集合编码而形成的。维护模块614可根据接收自汇报节点的汇报信息,维护存储模块612中保存的特定文件的位图信息。其中,汇报信息可以是汇报节点采用布隆算法对已获取的、上述特定文件的子块集合进行编码而形成的。图7示出了根据本申请另一个实施方案的P2P系统中的索引服务器。如图所示, P2P系统70包含节点700和索引服务器710。索引服务器710中的存储模块712可保存有特定文件的节点列表和该特定文件的位图信息,类似地,该特定文件的位图信息可以是通过布隆算法对节点已获取的、特定文件的子块集合编码而形成的。图7所示的索引服务器 710可进一步包括判断模块714、节点加入模块716和处理模块718。判断模块714判断汇报节点是否包含在特定文件的节点列表中。若汇报节点未包含在特定文件的节点列表中, 则节点加入模块716可将汇报节点加入特定文件的节点列表,处理模块718则可使特定文件的位图信息中针对汇报节点的位图初始化为与汇报信息相等。另一方面,若经判断模块 714判断,确定汇报节点包含在特定文件的节点列表中,则处理模块718可更新特定文件的位图信息中针对汇报节点的位图,使得更新后的针对汇报节点的位图所对应的子块集合包含汇报信息所对应的子块集合。可以理解,处理模块718可使特定文件的位图信息中针对汇报节点的位图与汇报信息进行逐比特逻辑运算,以得到更新后的针对汇报节点的位图。处理模块进行更新操作的具体方式已在上文详细描述,此处不再赘述。图8示出了根据本申请另一个实施方案的P2P系统中的索引服务器。如图所示,P2P系统80包含节点800和索引服务器810。索引服务器810可包括存储模块812、选取模块814和传输模块816,其中,存储模块812可与图6所示的存储模块612类似,此处不再赘述。图8所示的索引服务器810中的选取模块814可根据接收自请求节点的请求信息以及特定文件的位图信息,选取节点集合。其中,请求信息是请求节点采用布隆算法对其希望获得的、特定文件的子块集合进行编码而形成的。而传输模块816可将所选取的节点集合发送给请求节点。类似地,选取模块814所选取的节点集合包含满足以下条件的节点特定文件的位图信息中针对该节点的位图所对应的子块集合可包含请求信息所对应的子块集合中的至少一个子块。另外,选取模块814可根据特定文件的位图信息中针对某一节点的位图与请求信息进行逐比特逻辑运算的结果,来判断该节点是否属于所选取的节点集合。选取模块的选取操作的具体方式已在上文详细描述,此处不再赘述。以上参照附图对本申请的示例性的实施方案进行了描述。本领域技术人员应该理解,上述实施方案仅仅是为了说明的目的而所举的示例,而不是用来进行限制。凡在本申请的教导和权利要求保护范围下所作的任何修改、等同替换等,均应包含在本申请要求保护的范围内。
权利要求
1.一种P2P系统中位图管理的方法,包括节点采用布隆算法对已获取的、特定文件的子块集合进行编码以形成汇报信息;所述节点将所述汇报信息发送给索引服务器;以及所述索引服务器根据所述汇报信息,维护所述特定文件的位图信息。
2.如权利要求1所述的方法,其中,所述节点周期性地将所述汇报信息发送给所述索引服务器。
3.如权利要求2所述的方法,其中,所述节点采用布隆算法对已获取的、特定文件的子块集合进行编码以形成汇报信息的步骤包括所述节点采用布隆算法对上一次发送汇报信息之后新获取的、所述特定文件的子块集合进行编码以形成汇报信息。
4.如权利要求1或3所述的方法,其中,所述索引服务器保存有所述特定文件的节点列表,所述索引服务器维护所述特定文件的位图信息的步骤包括若所述节点未包含在所述节点列表中,则所述索引服务器将所述节点加入所述节点列表,以及使所述位图信息中针对所述节点的位图等于所述汇报信息;以及若所述节点包含在所述节点列表中,则所述索引服务器更新所述位图信息中针对所述节点的位图,以使更新后的针对所述节点的位图所对应的子块集合包含所述汇报信息所对应的子块集合。
5.如权利要求4所述的方法,其中,所述位图信息中针对所述节点的位图是通过布隆算法对所述节点已获取的、所述特定文件的子块集合编码而形成的,所述索引服务器使所述位图信息中针对所述节点的位图与所述汇报信息进行逐比特逻辑运算,以得到更新后的针对所述节点的位图。
6.一种P2P系统中节点集合查询的方法,其中,索引服务器保存有特定文件的位图信息,所述位图信息是通过布隆算法对节点已获取的、所述特定文件的子块集合编码而形成的,所述方法包括请求节点采用布隆算法对希望获得的、所述特定文件的子块集合进行编码以形成请求 fn息;所述请求节点将所述请求信息发送给所述索引服务器;以及所述索引服务器根据所述请求信息和所述位图信息,选取节点集合发送给所述请求节点O
7.如权利要求6所述的方法,其中,所述索引服务器选取的所述节点集合由满足以下条件的节点构成所述位图信息中针对所述节点的位图所对应的子块集合包含所述请求信息所对应的子块集合中的至少一个子块。
8.如权利要求6或7所述的方法,其中,根据所述位图信息中针对一待选节点的位图与所述请求信息进行逐比特逻辑运算的结果,来判断所述待选节点是否属于所述节点集合。
9.一种P2P系统中节点集合查询的方法,包括汇报节点采用布隆算法对已获取的、特定文件的子块集合进行编码以形成汇报信息;所述汇报节点将所述汇报信息发送给索引服务器;所述索引服务器根据所述汇报信息,维护所述特定文件的位图信息;请求节点采用布隆算法对希望获得的、所述特定文件的子块集合进行编码以形成请求 fn息;所述请求节点将所述请求信息发送给所述索引服务器;以及所述索引服务器根据所述请求信息和所述位图信息,选取节点集合发送给所述请求节点O
10.一种P2P节点,包括编码模块,采用布隆算法对包括特定文件的一个或多个子块的子块集合进行编码,以形成编码的信息;以及传输模块,将所述编码的信息发送给索引服务器。
11.一种P2P系统中的索引服务器,包括存储模块,保存特定文件的位图信息,所述位图信息是通过布隆算法对节点已获取的、 所述特定文件的子块集合编码而形成的;以及维护模块,根据接收自汇报节点的汇报信息,维护所述位图信息,其中,所述汇报信息是所述汇报节点采用布隆算法对已获取的、所述特定文件的子块集合进行编码而形成的。
12.如权利要求11所述的索引服务器,其中,所述存储模块还保存有所述特定文件的节点列表,所述维护模块包括判断模块、节点加入模块和处理模块,其中所述判断模块判断所述汇报节点是否包含在所述节点列表中;若所述汇报节点未包含在所述节点列表中,则所述节点加入模块将所述汇报节点加入所述节点列表,所述处理模块使所述位图信息中针对所述汇报节点的位图等于所述汇报信息;以及若所述汇报节点包含在所述节点列表中,则所述处理模块更新所述位图信息中针对所述汇报节点的位图,以使更新后的针对所述汇报节点的位图所对应的子块集合包含所述汇报信息所对应的子块集合。
13.如权利要求12所述的索引服务器,其中,所述处理模块使所述位图信息中针对所述汇报节点的位图与所述汇报信息进行逐比特逻辑运算,以得到更新后的针对所述汇报节点的位图。
14.一种P2P系统中的索引服务器,包括存储模块,保存特定文件的位图信息,所述位图信息是通过布隆算法对节点已获取的、 所述特定文件的子块集合编码而形成的;选取模块,根据接收自请求节点的请求信息以及所述位图信息,选取节点集合,其中, 所述请求信息是所述请求节点采用布隆算法对希望获得的、所述特定文件的子块集合进行编码而形成的;以及传输模块,将所述节点集合发送给所述请求节点。
15.如权利要求14所述的索引服务器,其中,所述选取模块选取的节点集合由满足以下条件的节点构成所述位图信息中针对所述节点的位图所对应的子块集合包含所述请求信息所对应的子块集合中的至少一个子块。
16.如权利要求14或15所述的索引服务器,其中,所述选取模块根据所述位图信息中针对一待选节点的位图与所述请求信息进行逐比特逻辑运算的结果,来确定所述待选节点是否属于所述节点集合。
全文摘要
本申请提供了P2P系统中的位图管理和节点集合查询的方法,以及P2P节点和索引服务器。根据本申请的P2P系统中位图管理的方法可包括节点采用布隆算法对已获取的、特定文件的子块集合进行编码以形成汇报信息;所述节点将所述汇报信息发送给索引服务器;以及所述索引服务器根据所述汇报信息,维护所述特定文件的位图信息。根据本申请,可降低节点与索引服务器交互的位图体量,减小保存在索引服务器处的位图信息的体量,以及降低索引服务器根据位图信息确定节点集合的计算开销,从而提高系统性能。
文档编号G06F17/30GK102244665SQ20101017140
公开日2011年11月16日 申请日期2010年5月13日 优先权日2010年5月13日
发明者张云飞, 彭晋, 邓灵莉 申请人:中国移动通信集团公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1