CN102739704A - 一种对等网络中数据迁移的方法及系统 - Google Patents
一种对等网络中数据迁移的方法及系统 Download PDFInfo
- Publication number
- CN102739704A CN102739704A CN2011100842595A CN201110084259A CN102739704A CN 102739704 A CN102739704 A CN 102739704A CN 2011100842595 A CN2011100842595 A CN 2011100842595A CN 201110084259 A CN201110084259 A CN 201110084259A CN 102739704 A CN102739704 A CN 102739704A
- Authority
- CN
- China
- Prior art keywords
- data
- node
- versions
- migration
- moving
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种对等(P2P)网络中数据迁移的方法,该方法包括:需要进行数据迁移时,需要迁出数据的节点将迁移数据当前的数据版本与迁入节点对应的数据版本进行比较,确定增量数据,并将增量数据发送给迁入节点;迁入节点根据增量数据及自身存储的数据,恢复出最新版本的数据。本发明同时公开了一种P2P网络中数据迁移的系统,采用本发明的方法及系统,能大大减少P2P网络中数据迁移的数据量及迁移时间,进而提高数据迁移的速度及可靠性。
Description
技术领域
本发明涉及对等(P2P,Peer-to-Peer)网络技术,特别涉及一种P2P网络中数据迁移的方法及系统。
背景技术
近年来,P2P网络技术作为一种分布式互联网技术,发展非常迅速。与传统的客户端/服务器(C/S,Client/Server)技术不同的是:P2P网络中的所有节点均可作为服务器和客户端。P2P网络中的数据以分布式存储在节点上,业务由节点通过分布式实现。
由于P2P网络中的所有节点均存储有网络运行所必需的数据,因此,当有节点加入、或退出网络、或进行负载均衡时,节点之间需要进行数据迁移,即:将某个节点所保存的数据拷贝到另一个节点上,以确保数据不会丢失,并维持数据的完整性。举个例子来说,在目前广泛应用的资源定位与发现(RELOAD,REsource LOcation And Discovery)P2P网络协议中,数据是以资源的形式组织的。网络为每个资源分配一个全网唯一的资源标识,用于查找该资源标识下的数据。每个节点可以负责一个或多个资源标识的数据存储及处理。在新节点加入时,原有的负责节点会将加入节点应负责的资源标识下的数据发送给加入节点。当节点退出时,退出节点会将自身负责的资源标识下的数据发送给新的负责节点。这样,在节点变动时,网络中始终保持每个资源标识下的数据都有一个对应节点负责。
下面以节点加入流程为例,描述现有技术中数据的迁移流程,如图1所示,包括以下步骤:
步骤101:加入节点希望加入P2P网络中时,向引导节点发送接入请求,同引导节点建立连接;
步骤102:在引导节点的引导下,加入节点同接纳节点建立连接;
这里,所述接纳节点就是指:当前负责存储加入节点所需获取的数据的节点。
步骤103:加入节点向接纳节点发送加入请求,请求接入P2P网络,并且希望接管接纳节点的部分资源标识下的数据;
步骤104:接纳节点将需要转移的资源标识下的数据发送给加入节点;
步骤105:如果数据量比较大,接纳节点则可以分多次发送数据,直至所有数据全部都发送完毕;
步骤106:数据发送完毕后,接纳节点通知加入节点更新P2P网络路由,加入节点正式负责该部分数据的存储和处理;
步骤107:加入节点向其它相关节点发送路由更新,通知已正式加入P2P网络。
从上面的描述中可以看出,在现有的迁移流程中,数据迁移时,需要将加入节点所请求的所有数据通过网络发送给加入节点。即使通过私有网络发送所有数据,由于数据量较大,依然会对网络造成较为严重地冲击,这里,所述私有网络具体可以是运营商的专用网络等,且私有网络的网络连接速度大大快于互联网的网络连接速度。另外,如果P2P网络中的节点分布在互联网上,则节点间的网络连接速度可能会比较慢,在这种情况下,加入节点所请求的所有数据在传输过程中容易出错,且传输时间比较长,此时,由于加入节点必须在获取所有的数据后才能正式加入P2P网络,因此,会造成完成节点加入或负载均衡的过程需要的时间较长。
发明内容
有鉴于此,本发明的主要目的在于提供一种P2P网络中数据迁移的方法及系统,能大大减少P2P网络中数据迁移的数据量及迁移时间,进而提高数据迁移的速度及可靠性。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种P2P网络中数据迁移的方法,该方法包括:
需要进行数据迁移时,需要迁出数据的节点将迁移数据当前的数据版本与迁入节点对应的数据版本进行比较,确定增量数据,并将增量数据发送给迁入节点;
迁入节点根据增量数据及自身存储的数据,恢复出最新版本的数据。
上述方案中,在将增量数据发送给迁入节点后,该方法进一步包括:
需要迁出数据的节点保存自身当前版本的迁移数据。
上述方案中,需要进行数据迁移的时机为:有节点加入对等网络时,或者,有节点退出对等网络时,或者,对等网络中有节点负载超载,需要均衡负载时,或者,由于管理原因需要均衡负载时,或者,需要增加节点作为对等网络中的节点的数据的备份时。
上述方案中,所述需要迁出数据的节点将迁移数据当前的数据版本与迁入节点对应的数据版本进行比较,为:
需要迁出数据的节点将自身当前的迁移数据的数据版本信息与迁入节点的数据版本信息进行比较。
上述方案中,所述数据版本信息为:数据版本号、和/或为修改时间戳、和/或为数据的摘要信息。
上述方案中,所述需要迁出数据的节点将迁移数据当前的数据版本与迁入节点对应的数据版本进行比较,为:
需要迁出数据的节点将自身当前的迁移数据的哈希值与迁入节点对应的哈希值进行比较。
上述方案中,所述需要迁出数据的节点将自身当前的迁移数据的哈希值与迁入节点对应的哈希值进行比较,为:
采用Merkel树的哈希对比方式,或者,采用可变粒度的哈希对比方式。
上述方案中,所述迁入节点根据增量数据及自身存储的数据,恢复出最新版本的数据,为:
迁入节点采用增量数据中的数据内容,修改自身存储的数据中对应的数据内容,得到最新版本的数据。
本发明还提供了一种P2P网络中数据迁移的系统,该系统包括:第一节点、以及第二节点;其中,
第一节点,用于需要进行数据迁移时,将迁移数据当前的数据版本与第二节点对应的数据版本进行比较,确定增量数据,并将增量数据发送给第二节点;
第二节点,用于收到第一节点发送的增量数据后,根据增量数据及自身存储的数据,恢复出最新版本的数据。
上述方案中,所述第二节点的个数为一个以上。
上述方案中,所述第一节点,还用于将增量数据发送给第二节点后,保存自身当前版本的迁移数据。
本发明提供的P2P网络中数据迁移的方法及系统,需要进行数据迁移时,需要迁出数据的节点将自身当前的数据版本与迁入节点的数据版本进行比较,确定增量数据,并将增量数据发送给迁入节点;迁入节点根据增量数据及自身存储的数据,恢复出最新版本的数据,需要迁出数据的节点不需要将所有需要迁出的数据均发送给迁入节点,只将增量数据发送给迁入节点,如此,能大大减少P2P网络中数据迁移的数据量及迁移时间,进而提高数据迁移的速度及可靠性。
除此以外,在将增量数据发送给迁入节点后,需要迁出数据的节点保存自身当前版本的迁移数据,如此,当需要迁出数据的节点再次负责相应的数据时,能减少数据的传输量,进一步提高数据迁移的速度及可靠性,保证网络的正常运行。
附图说明
图1为现有技术中节点加入流程中数据的迁移流程示意图;
图2为本发明P2P网络中数据迁移的方法流程示意图;
图3为实施例一实现数据迁移的方法流程示意图;
图4为实施例二实现数据迁移的方法流程示意图;
图5为实施例三实现数据迁移的方法流程示意图;
图6为Merkel树的哈希值生成方式示意图;
图7为本发明P2P网络中数据迁移的系统结构示意图。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
本发明P2P网络中数据迁移的方法,如图2所示,包括以下步骤:
步骤201:需要进行数据迁移时,需要迁出数据的节点将迁移数据当前的数据版本与迁入节点对应的数据版本进行比较,确定增量数据,并将增量数据发送给迁入节点;
这里,需要进行数据迁移的时机为:有节点加入P2P网络时,或者,有节点退出P2P网络时,或者,P2P网络中有节点负载超载,需要均衡负载时,或者,由于管理原因需要均衡负载时,或者,需要增加节点作为某个节点的数据的备份时;所述迁入节点的个数为一个以上;
在比较时,需要迁出数据的节点可以通过比较迁移数据当前的数据版本信息与迁入节点对应的数据版本信息,确定增量数据;或者,可以通过哈希(hash)值对比的方式确定增量数据;其中,所述数据版本信息是指:迁出数据的节点能根据所述数据版本信息及自身的相关信息即可确定出增量数据的信息,所述数据版本信息具体可以是:数据版本号、和/或修改时间戳、和/或数据的摘要信息等;当迁入节点没有相关的数据版本信息时,所述数据版本信息具体还可以是表示空的字符;
通过哈希值对比的方式确定增量数据的具体处理过程可采用现有的哈希值对比的处理过程;所述哈希值对比的方式具体可以是:Merkel树的哈希对比方式或可变粒度的哈希对比方式等;
所述增量数据是指:需要迁出数据的节点与迁入节点不一致的数据,具体可以是:修改过的资源标识下的全部数据、或特定资源数据段下的全部数据、或数据修改的日志信息等;
在将增量数据发送给迁入节点后,该方法进一步包括:
需要迁出数据的节点保存自身当前版本的迁移数据。
步骤202:迁入节点根据增量数据及自身存储的数据,恢复出最新版本的数据;
具体地,采用增量数据中的数据内容,修改自身存储的数据中对应的数据内容,得到最新版本的数据;举个例子来说,假设增量数据包含:第100条数据的内容为123456,则迁入节点将自身存储的第100条数据的内容修改为123456;再举个例子来说,假设增量数据包含:第100条数据修改为123456的日志信息,则迁入节点根据该日志信息,将自身存储的第100条数据的内容修改为123456。
下面结合实施例对本发明再作进一步详细的描述。
实施例一:
本实施例的应用场景为:节点加入过程,在以下的描述中,将请求加入的节点称为加入节点,将当前正在负责存储加入节点所需获取数据的节点称为接纳节点。本实施例实现数据迁移的方法,如图3所示,包括以下步骤:
步骤301:加入节点希望加入到P2P网络中,向引导节点发送接入请求,同引导节点建立连接。
步骤302:在引导节点的引导下,加入节点同接纳节点建立连接。
步骤303:加入节点向接纳节点发送加入请求,请求加入P2P网络,并且希望接管接纳节点的部分资源标识下的数据;
这里,加入节点利用现有技术可获知应接管接纳节点的哪部分资源标识下的数据。
步骤304:接纳节点针对加入节点请求的资源标识,向加入节点请求对应的本地存储的数据版本信息。
步骤305:加入节点将对应的数据版本信息发送给接纳节点;
这里,在步骤303中,加入节点还可以直接将请求的资源标识对应的本地存储的数据版本信息发送给接纳节点,此时,则不需要再执行步骤304~305;
这里,所述数据版本信息为:接纳节点能根据所述数据版本信息及自身的相关信息即可确定出增量数据的信息,所述数据版本信息具体可以是:数据的版本号、和/或修改时间戳、和/或数据的摘要信息等;当加入节点完全没有所请求的资源标识下的数据时,所述数据版本信息具体还可以是表示空的字符。
步骤306:接纳节点将自身存储的数据版本信息与加入节点的数据版本信息进行对比,确定需要提供给加入节点的增量数据;
这里,在进行对比时,如果由于加入节点的数据版本信息过于陈旧,使得接纳节点无法进行对比,此时,接纳节点可以和加入节点进行消息交互,进行哈希值对比,直至确定出增量数据;
当数据版本信息为表示空的字符时,所述增量数据为加入节点所请求的资源标识下的所有数据。
步骤307:接纳节点将增量数据发送给加入节点;
这里,当增量数据的数据量比较大时,可以分多次发送数据,具体处理过程可采用现有的处理过程。
步骤308:增量数据发送完毕后,加入节点根据本地存储的数据和收到的增量数据恢复出最新版本的数据,同时,接纳节点通知加入节点更新P2P网络路由,加入节点正式负责所请求的资源标识下的数据的存储和处理;
这里,接纳节点将已迁出的当前版本数据存储在本地缓存中,以备后续使用,在存储时,接纳节点可以选择部分数据进行存储,比如准静态数据等;其中,所述准静态数据是指:在资源标识下随时间变化不大的数据;另外,在存储时,接纳节点还可以依据需要删除部分陈旧的数据,用当前版本的迁移数据代替这些陈旧的数据,比如:依据数据的使用频率等信息,删除使用频率相对较低的数据,以节约本地缓存资源。
步骤309:加入节点向其它相关节点发送路由更新,通知已正式加入P2P网络。
这里,需要说明的是:对于节点退出流程和负载均衡流程中节点确定增量数据的过程与本实施例提供的过程类似,所不同的是:加入节点和接纳节点分别替换为数据迁移的目标节点和源节点,并针对不同的流程在消息上进行相应的修改。举个例子来说,在节点退出流程中,数据迁移的目标节点为新负责节点,而源节点则为退出节点;在负载均衡流程中,数据迁移的目标节点为轻载节点,而源节点则为过载节点。这些修改可以在现有的节点退出和负载均衡流程中直接得出,这里不再赘述。
实施例二:
本实施例的应用场景为:节点加入过程,且请求的数据包含准静态数据及动态数据;其中,所述准静态数据是指:在资源标识下随时间变化不大的数据,所述动态数据是指:在资源标识下经常变化的数据。在实际应用时,数据是准静态数据还是动态数据可以由具体的业务确定。例如,在P2P因特网协议(IP,Internet Protocol)电话服务中,每个用户的所有数据可以存储在同一个资源标识下,但是,其中的用户号码信息、及用户服务签约信息等变化较少,因此,可以作为准静态数据。而用户的在线信息及位置信息变化较快,因此,可以作为动态数据。在以下的描述中,将请求加入的节点称为加入节点,将当前正在负责存储加入节点所需获取数据的节点称为接纳节点。本实施例实现数据迁移的方法,如图4所示,包括以下步骤:
步骤401:加入节点希望加入到P2P网络中,向引导节点发送接入请求,同引导节点建立连接。
步骤402:在引导节点的引导下,加入节点同接纳节点建立连接。
步骤403:加入节点向接纳节点发送加入请求,请求加入P2P网络,并且希望接管接纳节点的部分资源标识下的数据;
这里,加入节点利用现有技术可获知应接管接纳节点的哪部分资源标识下的数据。
步骤404:接纳节点针对加入节点请求的资源标识,要求加入节点发送所请求的资源标识下的准静态数据的本地存储的数据版本信息;
这里,所述数据版本信息为:接纳节点能根据所述数据版本信息即可确定出增量数据的信息,所述数据版本信息具体可以是:数据的版本号、和/或修改时间戳、和/或数据的摘要信息等;当加入节点完全没有所请求的资源标识下的数据时,所述数据版本信息具体还可以是表示空的字符。
步骤405:加入节点将本地存储的、所请求的资源标识下的准静态数据的数据版本信息发送给接纳节点;
这里,在步骤403中,加入节点还可以直接将本地存储的、所请求的资源标识下的准静态数据的数据版本信息发送给接纳节点,此时,则不需要再执行步骤404~405;
所述数据版本信息为:接纳节点能根据所述数据版本信息及自身的相关信息即可确定出增量数据的信息,所述数据版本信息具体可以是:数据的版本号、和/或修改时间戳、和/或数据的摘要信息等;当加入节点完全没有所请求的资源标识下的数据时,所述数据版本信息具体还可以是表示空的字符。
步骤406:接纳节点对比加入节点的准静态数据版本信息,确定需要提供给加入节点的准静态数据的增量数据;
这里,在进行对比时,如果由于加入节点的数据版本信息过于陈旧,使得接纳节点无法进行对比,此时,接纳节点可以和加入节点进行消息交互,进行哈希值对比,直至确定出增量数据;
当数据版本信息为表示空的字符时,所述增量数据为加入节点所请求的资源标识下的所有准静态数据。
步骤407:接纳节点将准静态数据的增量数据发送给加入节点。
步骤408:准静态数据的增量数据发送完成后,接纳节点将所有的动态数据发送给加入节点;
这里,本步骤还可以在步骤405、或步骤406、或步骤407之前执行。
步骤409:数据发送完毕后,加入节点根据本地存储的准静态数据和收到的增量数据恢复出最新版本的准静态数据,并直接采用收到的动态数据作为最新版本的动态数据,同时,接纳节点通知加入节点更新P2P网络路由,加入节点正式负责所请求的资源标识下的数据的存储和处理;
这里,接纳节点将已迁出的准静态数据存储在本地缓存中,以备后续使用。同时,接纳节点可以直接删除迁出的动态数据。
步骤410:加入节点向其它相关节点发送路由更新,通知已正式加入P2P网络。
这里,需要说明的是:对于节点退出流程和负载均衡流程中节点确定增量数据的过程与本实施例提供的过程类似,所不同的是:加入节点和接纳节点分别替换为数据迁移的目标节点和源节点,并针对不同的流程在消息上进行相应的修改。举个例子来说,在节点退出流程中,数据迁移的目标节点为新负责节点,而源节点则为退出节点;在负载均衡流程中,数据迁移的目标节点为轻载节点,而源节点则为过载节点。这些修改可以在现有的节点退出和负载均衡流程中直接得出,这里不再赘述。
实施例三:
本实施例的应用场景为:数据版本信息为数据版本号,在以下的描述中,将迁出数据的节点称为源节点,将迁入数据的节点称为目标节点,本实施例实现数据迁移的方法,如图5所示,包括以下步骤:
步骤501:需要进行数据迁移时,目标节点向源节点发送本地存储的数据版本号;
这里,所述数据版本号的格式可以是依序增加的整数、主版本号加此版本号的格式或时间戳等格式,举个例子来说,如果数据版本号的格式为依序增加的整数,则数据版本号可以是1、2、3等等,如果数据版本号的格式为主版本号加此版本号的格式,则数据版本号可以是1.1、1.2、1.3等等。
步骤502:源节点收到目标节点发送的数据版本号后,将目标节点的数据版本号与自身当前的数据版本号进行比较,通过两个版本之间的版本修改信息,确定需要提供给目标节点的增量数据;
这里,源节点事先会在当前数据版本号下记录修改信息,所述修改信息具体可以是数据修改操作的记录、或修改的资源标识记录等,源节点据此可以获知源节点与目标节点的两个版本之间的版本修改信息;所述版本修改信息可以是数据修改操作的记录、或修改的资源标识记录等;
在通过两个版本之间的版本修改信息,确定需要提供给目标节点的增量数据时,举个例子来说,如果版本修改信息中包含:对第100条数据进行数据修改的具体操作,则源节点根据这条信息,确定需要将第100条数据发送给目标节点,即:第100条数据即为增量数据中的一条;
在源节点将目标节点的数据版本号与自身当前的数据版本号进行比较时,如果源节点发现目标节点的数据版本号过于陈旧,导致自身没有两个版本之间的版本修改信息时,源节点可以将目标节点所请求的全部数据作为增量数据,发送给目标节点,或者,源节点可以和目标节点进行消息交互,采用哈希值对比方式确定增量数据,发送给目标节点;其中,采用哈希值对比方式确定增量数据的过程可采用现有的处理过程。
步骤503:源节点将增量数据发送给目标节点,目标节点收到增量数据后,根据本地存储的数据和增量数据恢复出最新版本的数据;
这里,源节点可以将版本之间的版本修改信息一起发送给目标节点,以便目标节点能更好地恢复出最新版本的数据;
对于上述例子,目标节点收到增量数据后,将自身的第100条数据用增量数据中相应的数据进行修改,如此类推,从而恢复出最新版本的数据。
步骤504:目标节点增加相应的数据版本号,以描述自身和源节点存储的数据版本的区别;
这里,修改数据版本号的操作还可以由源节点在步骤503中进行,所述数据版本号的功能为:区别目标节点和源节点的数据版本,以便后续进行数据迁移时使用;
在实际应用时,当目标节点或源节点的数据版本号过大时,可以删除部分旧数据版本的数据,举个例子来说,目标节点或源节点当前的数据版本号为3.5,3.5之前的数据版本号对应的数据依然保存在硬盘当中,此时,可以将数据版本号为1之前的数据版本号对应的所有数据均删除,以节约硬盘。
在实际应用过程中,当采用数据版本号进行对比时,源节点需要记录多个版本和当前版本的版本修改信息,以便能针对不同数据版本号,确定出增量数据,此时,如果数据变化量比较大时,对应的版本修改信息的数据量也会相应的比较大,因此,源节点还可以采用哈希值对比的方式确定增量数据;其中,所述哈希值对比的方式具体可以是:Merkel树的哈希对比方式或可变粒度的哈希对比方式等。
下面对Merkel树的哈希对比方式及可变粒度的哈希对比方式分别进行详细的描述。
图6为Merkel树的哈希值生成方式示意图,对于Merkel树的对比方式,具体为:首先,源节点和目标节点将需要对比的数据段按照最小粒度分段,比如:按照单个资源标识或较小的资源标识段分段,之后对每个数据段分别进行哈希值计算,得到叶节点的哈希值,如图6中的叶节点C、D、E、及F的哈希值。随后,节点对多个叶节点的哈希值再次进行哈希值计算,生成子树节点的哈希值,如图6中的子树A、及B的哈希值,之后再对多个子树节点的哈希值再次进行哈希值计算,如此循环,直至生成根节点的哈希值。
源节点在进行迁移数据的数据版本对比时,如图6所示,首先比较根节点的哈希值,如果源节点与目标节点的根节点哈希值一致,则表明源节点与目标节点双方的数据内容完全一致,不需要传送变化的数据,如果根节点的哈希值不一致,则说明双方数据内容不同;源节点进一步分别比较每个子树节点的哈希值,如果每个子树节点的哈希值均一致,则说明每个子树节点下所有的数据节点内容均一致,源节点不需要传送变化的数据,如果子树节点的哈希值不一致,则进一步比较不一致的子树节点下的子节点的哈希值,如此循环,直至到找到合适粒度的变化节点为止;确定了双方数据内容不一致的部分后,源节点将变化的数据作为增量数据发送给目标节点即可;其中,在实际应用时,所述合适粒度的变化节点可以是叶子节点或子树节点。
对于可变粒度的哈希对比方式的基本思想是:判断单个资源标识或最小资源标识段下的数据不一致的可能性。具体地,假设需要迁移n个资源标识下的数据,设单个资源标识的数据变化的可能性为p,将源节点及目标节点的k个资源标识下的所有数据分别进行哈希值计算,并将得到哈希值进行对比,此时,k个资源标识的所有数据的哈希值不一致的可能性为:1-(1-p)k;
其中,在估算p值时,k可以取不同的大小,从而产生不同的粒度,对不同粒度上的数据段进行哈希值计算,并比较哈希不一致的情况,并且,对于一个粒度,还可以采用不同的数据段进行哈希值计算,并比较哈希值不一致的情况,以获取较准确的哈希变化率数据。根据不同粒度的哈希变化率数据,拟合出最有可能的p值;
将p值代入公式:k*=-1/(ln(1-p)),得到最佳的哈希粒度,即:k*;
将迁移数据的数据段按k*个资源标识分为等大小的数据段,生成n/k*个哈希值,并进行对比,源节点在进行迁移数据的数据版本对比时,如果n/k*个哈希值均一致,则说明源节点与目标节点双方数据内容完全一致,不需要进一步对比及传送变化的数据。对于n/k*个哈希值中不一致的,则将不一致的哈希值对应的数据内容不一致的数据段,重复上述过程,直至找到在最小粒度上数据发生变化的点;这里,p值可以重新估算或利用前次估计的p值推算。在迭代过程中,p值逐渐会增加,哈希粒度k会逐渐减小,在实际操作中,也可以强制要求每次k值至少缩小为原来的二分之一。
上述实施例中,描述的P2P网络中数据组织方式均是:将数据按资源组织,每个资源拥有自己唯一的资源标识,同类资源按照特定的数据结构来存储相关数据,特定的数据可通过资源标识索引来进行查找,每个节点可负责一部分资源标识空间段,即:负责该资源标识段内对应的资源数据的存储和处理,所述处理包括:读取数据、更新数据、以及删除数据等操作。这里,本领域的技术人员应当理解:本发明可以很容易地扩展到其它数据结构组织方式。
本发明提供的技术方案,特别适用于P2P网络中需要存储大量准静态数据的情况,比如:在P2P互联网协议语音(VoIP,Voice over Internet Protocol)系统中,P2P网络中的节点需要保存用户的签约信息,这些信息变化量比较小,即为准静态数据,需要通过分布式系统存储。如果节点加入或退出频繁时,这些准静态数据需要经常在节点之间进行迁移并占用大量带宽,采用本发明的技术方案后,数据迁移量可以大大减小,只需要传输改变的用户签约数据即可。
本发明的技术方案也可适用于节点需要进行定时的负载调整的情况,比如:每日定期进行负载调整。在这种情况下,P2P网络会定期如在每日清晨唤醒和加入一部分节点以应付可预见的大量业务,并定期如在每日夜晚让部分节点退出以节约能源。在这种情况下,节点往往会重复负责某些数据和业务,采用本发明的技术方案后,节点只要在每次迁移时更新到最新版本的数据即可,如此,节点本地存储的数据可以得到较好地利用。
基于上述方法,本发明还提供了一种P2P网络中数据迁移的系统,如图7所示,该系统包括:第一节点71、以及第二节点72;其中,
第一节点71,用于需要进行数据迁移时,将迁移数据当前的数据版本与第二节点72对应的数据版本进行比较,确定增量数据,并将增量数据发送给第二节点72;
第二节点72,用于收到第一节点71发送的增量数据后,根据增量数据及自身存储的数据,恢复出最新版本的数据。
这里,需要说明的是:所述第二节点72的个数为一个以上。
所述第一节点71,还用于将增量数据发送给第二节点72后,保存自身当前版本的迁移数据。
所述第二节点72,具体用于:采用增量数据中的数据内容,修改自身存储的数据中对应的数据,得到最新版本的数据。
这里,本发明的所述系统中的第一节点的具体处理过程已在上文中详述,不再赘述。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (11)
1.一种对等(P2P)网络中数据迁移的方法,其特征在于,该方法包括:
需要进行数据迁移时,需要迁出数据的节点将迁移数据当前的数据版本与迁入节点对应的数据版本进行比较,确定增量数据,并将增量数据发送给迁入节点;
迁入节点根据增量数据及自身存储的数据,恢复出最新版本的数据。
2.根据权利要求1所述的方法,其特征在于,在将增量数据发送给迁入节点后,该方法进一步包括:
需要迁出数据的节点保存自身当前版本的迁移数据。
3.根据权利要求1所述的方法,其特征在于,需要进行数据迁移的时机为:有节点加入对等网络时,或者,有节点退出对等网络时,或者,对等网络中有节点负载超载,需要均衡负载时,或者,由于管理原因需要均衡负载时,或者,需要增加节点作为对等网络中的节点的数据的备份时。
4.根据权利要求1、2或3所述的方法,其特征在于,所述需要迁出数据的节点将迁移数据当前的数据版本与迁入节点对应的数据版本进行比较,为:
需要迁出数据的节点将自身当前的迁移数据的数据版本信息与迁入节点的数据版本信息进行比较。
5.根据权利要求4所述的方法,其特征在于,所述数据版本信息为:数据版本号、和/或为修改时间戳、和/或为数据的摘要信息。
6.根据权利要求1、2或3所述的方法,其特征在于,所述需要迁出数据的节点将迁移数据当前的数据版本与迁入节点对应的数据版本进行比较,为:
需要迁出数据的节点将自身当前的迁移数据的哈希值与迁入节点对应的哈希值进行比较。
7.根据权利要求6所述的方法,其特征在于,所述需要迁出数据的节点将自身当前的迁移数据的哈希值与迁入节点对应的哈希值进行比较,为:
采用Merkel树的哈希对比方式,或者,采用可变粒度的哈希对比方式。
8.根据权利要求1、2或3所述的方法,其特征在于,所述迁入节点根据增量数据及自身存储的数据,恢复出最新版本的数据,为:
迁入节点采用增量数据中的数据内容,修改自身存储的数据中对应的数据内容,得到最新版本的数据。
9.一种对等网络中数据迁移的系统,其特征在于,该系统包括:第一节点、以及第二节点;其中,
第一节点,用于需要进行数据迁移时,将迁移数据当前的数据版本与第二节点对应的数据版本进行比较,确定增量数据,并将增量数据发送给第二节点;
第二节点,用于收到第一节点发送的增量数据后,根据增量数据及自身存储的数据,恢复出最新版本的数据。
10.根据权利要求9所述的系统,其特征在于,所述第二节点的个数为一个以上。
11.根据权利要求9或10所述的系统,其特征在于,所述第一节点,还用于将增量数据发送给第二节点后,保存自身当前版本的迁移数据。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011100842595A CN102739704A (zh) | 2011-04-02 | 2011-04-02 | 一种对等网络中数据迁移的方法及系统 |
PCT/CN2012/072071 WO2012136091A2 (zh) | 2011-04-02 | 2012-03-07 | 一种对等网络中数据迁移的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011100842595A CN102739704A (zh) | 2011-04-02 | 2011-04-02 | 一种对等网络中数据迁移的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102739704A true CN102739704A (zh) | 2012-10-17 |
Family
ID=46969602
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011100842595A Pending CN102739704A (zh) | 2011-04-02 | 2011-04-02 | 一种对等网络中数据迁移的方法及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102739704A (zh) |
WO (1) | WO2012136091A2 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103237247A (zh) * | 2013-03-29 | 2013-08-07 | 东莞宇龙通信科技有限公司 | 一种终端与网络播放器同步显示的系统及方法 |
CN106034080A (zh) * | 2015-03-10 | 2016-10-19 | 中兴通讯股份有限公司 | 分布式系统中元数据的迁移方法及装置 |
CN106383731A (zh) * | 2016-09-14 | 2017-02-08 | 广东欧珀移动通信有限公司 | 一种数据迁移方法及移动终端 |
CN106844510A (zh) * | 2016-12-28 | 2017-06-13 | 北京五八信息技术有限公司 | 一种分布式数据库集群的数据迁移方法和装置 |
CN111147226A (zh) * | 2018-11-02 | 2020-05-12 | 杭州海康威视系统技术有限公司 | 数据存储方法、装置及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070079126A1 (en) * | 2005-10-05 | 2007-04-05 | International Business Machines Corporation | System and method for performing a trust-preserving migration of data objects from a source to a target |
CN101127915A (zh) * | 2007-09-20 | 2008-02-20 | 中兴通讯股份有限公司 | 一种基于增量式的电子节目导航数据同步方法及系统 |
WO2008033424A2 (en) * | 2006-09-12 | 2008-03-20 | Foleeo, Inc. | Hive-based peer-to-peer network |
CN101242356A (zh) * | 2007-12-06 | 2008-08-13 | 中兴通讯股份有限公司 | Iptv系统中内存数据库的实现方法及iptv系统 |
CN101453451A (zh) * | 2007-12-07 | 2009-06-10 | 北京闻言科技有限公司 | 一种增量下载数据的方法 |
CN101651709A (zh) * | 2009-09-01 | 2010-02-17 | 中国科学院声学研究所 | 一种p2p下载文件完整性校验方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101626389B (zh) * | 2008-07-12 | 2013-04-24 | Tcl集团股份有限公司 | 一种网络节点的管理方法 |
-
2011
- 2011-04-02 CN CN2011100842595A patent/CN102739704A/zh active Pending
-
2012
- 2012-03-07 WO PCT/CN2012/072071 patent/WO2012136091A2/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070079126A1 (en) * | 2005-10-05 | 2007-04-05 | International Business Machines Corporation | System and method for performing a trust-preserving migration of data objects from a source to a target |
WO2008033424A2 (en) * | 2006-09-12 | 2008-03-20 | Foleeo, Inc. | Hive-based peer-to-peer network |
CN101127915A (zh) * | 2007-09-20 | 2008-02-20 | 中兴通讯股份有限公司 | 一种基于增量式的电子节目导航数据同步方法及系统 |
CN101242356A (zh) * | 2007-12-06 | 2008-08-13 | 中兴通讯股份有限公司 | Iptv系统中内存数据库的实现方法及iptv系统 |
CN101453451A (zh) * | 2007-12-07 | 2009-06-10 | 北京闻言科技有限公司 | 一种增量下载数据的方法 |
CN101651709A (zh) * | 2009-09-01 | 2010-02-17 | 中国科学院声学研究所 | 一种p2p下载文件完整性校验方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103237247A (zh) * | 2013-03-29 | 2013-08-07 | 东莞宇龙通信科技有限公司 | 一种终端与网络播放器同步显示的系统及方法 |
CN106034080A (zh) * | 2015-03-10 | 2016-10-19 | 中兴通讯股份有限公司 | 分布式系统中元数据的迁移方法及装置 |
CN106383731A (zh) * | 2016-09-14 | 2017-02-08 | 广东欧珀移动通信有限公司 | 一种数据迁移方法及移动终端 |
CN106844510A (zh) * | 2016-12-28 | 2017-06-13 | 北京五八信息技术有限公司 | 一种分布式数据库集群的数据迁移方法和装置 |
CN111147226A (zh) * | 2018-11-02 | 2020-05-12 | 杭州海康威视系统技术有限公司 | 数据存储方法、装置及存储介质 |
CN111147226B (zh) * | 2018-11-02 | 2023-07-18 | 杭州海康威视系统技术有限公司 | 数据存储方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2012136091A3 (zh) | 2012-11-29 |
WO2012136091A2 (zh) | 2012-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9753944B2 (en) | System and method for streaming files through differential compression | |
CN111182067B (zh) | 一种基于星际文件系统ipfs的数据写入方法及设备 | |
CN105404652A (zh) | 一种基于hdfs的海量小文件处理方法 | |
CN104488248B (zh) | 一种文件同步方法、服务器及终端 | |
CN104573064B (zh) | 一种大数据环境下的数据处理方法 | |
CN104954468A (zh) | 资源的分配方法及装置 | |
CN102739703A (zh) | 一种对等网络中数据迁移的方法及系统 | |
CN102708165A (zh) | 分布式文件系统中的文件处理方法及装置 | |
CN102739704A (zh) | 一种对等网络中数据迁移的方法及系统 | |
CN104765840A (zh) | 一种大数据分布式存储的方法和装置 | |
CN106326239A (zh) | 分布式文件系统及其文件元信息管理方法 | |
US11238046B2 (en) | Information management device, information management method, and information management program | |
CN103902410A (zh) | 云存储系统的数据备份加速方法 | |
CN104378234A (zh) | 跨数据中心的数据传输处理方法及系统 | |
TW201405324A (zh) | 雲端資料儲存系統及基於該系統的資料儲存與共用方法 | |
US10241963B2 (en) | Hash-based synchronization of geospatial vector features | |
US11265182B2 (en) | Messaging to enforce operation serialization for consistency of a distributed data structure | |
JP6911877B2 (ja) | 情報管理装置、情報管理方法及び情報管理プログラム | |
CN104794190A (zh) | 一种大数据有效存储的方法和装置 | |
CN102438004A (zh) | 获取媒体文件的元数据信息的方法、系统及多媒体播放器 | |
CN103905517A (zh) | 一种数据存储方法及设备 | |
JP2009230523A (ja) | ファイル同期装置、ファイル同期方法及びファイル同期プログラム | |
WO2020024445A1 (zh) | 数据存储方法、装置、计算机设备及计算机存储介质 | |
Henze et al. | Practical data compliance for cloud storage | |
Mseddi et al. | On optimizing replica migration in distributed cloud storage systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20121017 |