CN102739703A - 一种对等网络中数据迁移的方法及系统 - Google Patents

一种对等网络中数据迁移的方法及系统 Download PDF

Info

Publication number
CN102739703A
CN102739703A CN2011100842576A CN201110084257A CN102739703A CN 102739703 A CN102739703 A CN 102739703A CN 2011100842576 A CN2011100842576 A CN 2011100842576A CN 201110084257 A CN201110084257 A CN 201110084257A CN 102739703 A CN102739703 A CN 102739703A
Authority
CN
China
Prior art keywords
data
node
versions
information
migration
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
CN2011100842576A
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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN2011100842576A priority Critical patent/CN102739703A/zh
Publication of CN102739703A publication Critical patent/CN102739703A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明公开了一种对等网络中数据迁移的方法及系统,包括:需要进行数据迁移时,配置服务器依据发送加入请求、或退出请求、或负载迁移请求的节点的数据版本信息及当前网络中其它活跃节点的数据版本信息为所述发送请求的节点分配数据源节点或数据目标节点;数据源节点将迁移数据当前的数据版本信息与数据目标节点对应的数据版本信息进行比较,确定增量数据,并将增量数据发送给数据目标节点;数据目标节点根据增量数据及自身存储的数据,恢复出最新版本的数据。采用本发明,能大大减少对等网络中数据迁移的数据量,从而保证网络的正常运行。

Description

一种对等网络中数据迁移的方法及系统
技术领域
本发明涉及对等(P2P,Peer-to-Peer)网络技术,特别是指一种P2P网络中数据迁移的方法及系统。
背景技术
近年来,P2P网络技术作为一种分布式互联网技术,发展非常迅速。与传统的客户端/服务器(C/S,Client/Server)技术不同的是:P2P网络中的所有节点均可作为服务器和客户端。P2P网络中的数据以分布式存储在节点上,业务由节点通过分布式实现。
由于P2P网络中的所有节点均存储有网络运行所必需的数据,因此,当有节点加入、或退出网络、或进行负载均衡时,节点之间需要进行数据迁移,即:将某个节点所保存的数据拷贝到另一个节点上,以确保数据不会丢失,并维持数据的完整性。举个例子来说,在目前广泛应用的资源定位与发现(RELOAD,REsource LOcation And Discovery)P2P网络协议中,数据是以资源的形式组织的。网络为每个资源分配一个全网唯一的资源标识,用于查找该资源标识下的数据。每个节点可以负责一个或多个资源标识的数据存储及处理。在新节点加入时,原有的负责节点会将加入节点应负责的资源标识下的数据发送给加入节点。当节点退出时,退出节点会将自身负责的资源标识下的数据发送给新的负责节点。这样,在节点变动时,网络中始终保持每个资源标识下的数据都有一个对应节点负责。
下面以节点加入流程为例,描述现有技术中数据的迁移流程,如图1所示,包括以下步骤:
步骤101:加入节点希望加入P2P网络中,首先向配置服务器发送加入请求;
步骤102:配置服务器根据加入节点的能力和网络负载情况,为加入节点分配一个节点标识(ID,IDentity);
步骤103:加入节点向引导节点发送接入请求,同引导节点建立连接;
步骤104:在引导节点的引导下,加入节点同接纳节点建立连接;
这里,所述接纳节点就是指:当前负责存储加入节点所需获取的数据的节点;
加入节点依据分配的节点ID,确定接纳节点的节点号,进而同接纳节点建立连接。
步骤105:加入节点向接纳节点发送加入请求,请求接入P2P网络,并且希望接管接纳节点的部分资源标识下的数据;
步骤106:接纳节点将需要迁移的资源标识下的数据发送给加入节点;
步骤107:如果数据量比较大,接纳节点则可以分多次发送数据,直至所有数据全部都发送完毕;
步骤108:数据发送完毕后,接纳节点通知加入节点更新P2P网络路由,加入节点正式负责该部分数据的存储和处理;
步骤109:加入节点向其它相关节点发送路由更新,通知已正式加入P2P网络。
从上面的描述中可以看出,在现有的迁移流程中,配置服务器只依据加入节点的能力和网络负载情况为加入节点分配节点ID,而不考虑加入节点自身存储的数据信息,这样,会造成为加入节点分配的节点ID具有一定的随机性,进而会造成加入节点即将接管的数据也存在较大的不确定性,因此,在很多情况下,会造成加入节点即将接管的数据与自身存储的数据没有任何联系,此时,接纳节点需要把迁移的所有数据都发送给加入节点,如此,会造成网络数据量较大,对网络造成较为严重地冲击。
发明内容
有鉴于此,本发明的主要目的在于提供一种P2P网络中数据迁移的方法及系统,能大大减少P2P网络中数据迁移的数据量,进而保证网络的正常运行。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种P2P网络中数据迁移的方法,该方法包括:
需要进行数据迁移时,配置服务器依据发送加入请求、或退出请求、或负载迁移请求的节点的数据版本信息及当前网络中其它活跃节点的数据版本信息为所述发送请求的节点分配数据源节点或数据目标节点;
数据源节点将迁移数据当前的数据版本信息与数据目标节点对应的数据版本信息进行比较,确定增量数据,并将增量数据发送给数据目标节点;
数据目标节点根据增量数据及自身存储的数据,恢复出最新版本的数据。
上述方案中,在将增量数据发送给数据目标节点后,该方法进一步包括:
数据源节点保存自身当前版本的迁移数据。
上述方案中,需要进行数据迁移的时机为:有节点加入对等网络时,或者,有节点退出对等网络时,或者,对等网络中有节点负载超载,需要均衡负载时,或者,由于管理原因需要均衡负载时,或者,需要增加节点作为对等网络中的节点的数据的备份时。
上述方案中,所述数据版本信息为:数据版本号、和/或为修改时间戳、和/或为数据的摘要信息。
上述方案中,所述数据目标节点根据增量数据及自身存储的数据,恢复出最新版本的数据,为:
数据目标节点采用增量数据中的数据内容,修改自身存储的数据中对应的数据内容,得到最新版本的数据。
上述方案中,所述为所述发送请求的节点分配的数据目标节点的个数为一个以上。
上述方案中,在依据发送加入请求、或退出请求、或负载迁移请求的节点的数据版本信息及当前网络中其它活跃节点的数据版本信息为所述发送请求的节点分配数据源节点或数据目标节点时,配置服务器进一步依据当前网络的负载情况、和/或当前其它活跃的节点的地理位置,最终确定为所述发送请求的节点分配的数据源节点或数据目标节点。
本发明还提供了一种P2P网络中数据迁移的系统,该系统包括:配置服务器、第一节点、以及第二节点;其中,
配置服务器,用于需要进行数据迁移时,依据第一节点或第二节点的数据版本信息及当前网络中其它活跃节点的数据版本信息为所述节点分配数据目标节点或数据源节点;
第一节点,用于将迁移数据当前的数据版本信息与第二节点对应的数据版本信息进行比较,确定增量数据,并将增量数据发送给第二节点;
第二节点,用于收到第一节点发送的增量数据后,根据增量数据及自身存储的数据,恢复出最新版本的数据。
上述方案中,所述第二节点的个数为一个以上。
上述方案中,所述第一节点,还用于将增量数据发送给第二节点后,保存当前版本数据。
上述方案中,在依据第一节点或第二节点的数据版本信息及当前网络中其它活跃节点的数据版本信息为所述节点分配数据目标节点或数据源节点时,所述配置服务器,进一步用于依据当前网络的负载情况、和/或当前其它活跃的节点的地理位置,最终确定为所述节点分配的数据源节点或数据目标节点。
本发明提供的P2P网络中数据迁移的方法及系统,需要进行数据迁移时,配置服务器依据发送请求的节点的数据版本信息及当前网络中其它活跃节点的数据版本信息为所述发送请求的节点分配数据源节点或数据目标节点;数据源节点将迁移数据当前的数据版本信息与数据目标节点对应的数据版本信息进行比较,确定增量数据,并将增量数据发送给数据目标节点;数据目标节点根据增量数据及自身存储的数据,恢复出最新版本的数据,通过节点选择,数据源节点即数据迁出节点和数据目标节点即数据迁入节点的数据版本可以比较接近,减少增量数据的大小,如此,能大大减少P2P网络中数据迁移的数据量,进而提高数据迁移的速度及可靠性。
除此以外,在将增量数据发送给数据目标节点后,数据源节点保存自身当前版本的迁移数据,如此,当数据源节点再次负责相应的数据时,能减少数据的传输量,进一步提高数据迁移的速度及可靠性,保证网络的正常运行。
附图说明
图1为现有技术中节点加入流程中数据的迁移流程示意图;
图2为本发明P2P网络中数据迁移的方法流程示意图;
图3为实施例一实现数据迁移的方法流程示意图;
图4为实施例二实现数据迁移的方法流程示意图;
图5为实施例三实现数据迁移的方法流程示意图;
图6为实施例四实现数据迁移的方法流程示意图;
图7为本发明P2P网络中数据迁移的系统结构示意图。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
本发明P2P网络中数据迁移的方法,如图2所示,包括以下步骤:
步骤201:需要进行数据迁移时,配置服务器依据发送加入请求、或退出请求、或负载迁移请求的节点的数据版本信息及当前网络中其它活跃节点的数据版本信息为所述发送请求的节点分配数据源节点或数据目标节点;其中,如果所述发送请求的节点为数据源节点,则配置服务器为所述发送请求的节点分配数据目标节点,如果所述发送请求的节点为数据目标节点,则配置服务器为所述发送请求的节点分配数据源节点;
这里,需要进行数据迁移的时机为:有节点加入P2P网络时,或者,有节点退出P2P网络时,或者,P2P网络中有节点负载超载,需要均衡负载时,或者,由于管理原因需要均衡负载时,或者,需要增加节点作为某个节点的数据的备份时;
所述数据版本信息是指:配置服务器能根据所述数据版本信息及自身的相关信息即可确定出合适的节点ID的信息,所述数据版本信息具体可以是:数据版本号、和/或修改时间戳、和/或数据的摘要信息等;当节点没有相关的数据版本信息时,所述数据版本信息具体还可以是表示空的字符;
当所述发送请求的节点向配置服务器发送加入请求时,配置服务器为所述发送请求的节点分配数据源节点,即:当前负责存储所述发送请求的节点所需获取的数据的节点;当所述发送请求的节点向配置服务器发送退出请求或负载迁移请求时,配置服务器为所述发送请求的节点分配数据目标节点,即:即将接管迁移数据的节点;
所述当前网络中其它活跃节点为当前能正常工作、未出现故障的节点;
这里,如果配置服务器未能确定出所述发送请求的节点分配的数据源节点或数据目标节点时,可采用现有的技术为所述发送请求的节点分配数据源节点或数据目标节点;
这里,当数据版本信息为表示空的字符时,配置服务器可采用现有的技术为所述节点分配数据源节点或数据目标节点;
数据源节点是指:需要迁出数据的节点,数据目标节点是指:迁入数据的节点;
在依据发送加入请求、或退出请求、或负载迁移请求的节点的数据版本信息、及当前网络中其它活跃节点的数据版本信息为所述发送请求的节点分配数据源节点或数据目标节点时,配置服务器进一步依据当前网络的负载情况、和/或当前其它活跃的节点的地理位置等信息,最终确定为所述发送请求的节点分配的数据源节点或数据目标节点。
步骤202:数据源节点将迁移数据当前的数据版本信息与数据目标节点对应的数据版本信息进行比较,确定增量数据,并将增量数据发送给数据目标节点;
所述数据版本信息是指:数据源节点能根据所述数据版本信息及自身的相关信息即可确定出增量数据的信息,所述数据版本信息具体可以是:数据版本号、和/或修改时间戳、和/或数据的摘要信息等;当数据目标节点没有相关的数据版本信息时,所述数据版本信息具体还可以是表示空的字符;
所述增量数据是指:数据源节点与数据目标节点不一致的数据,具体可以是:修改过的资源标识下的全部数据、或特定资源数据段下的全部数据、或数据修改的日志信息等;
在将增量数据发送给数据目标节点后,该方法进一步包括:
数据源节点保存自身当前版本的迁移数据。
步骤203:数据目标节点根据增量数据及自身存储的数据,恢复出最新版本的数据;
具体地,采用增量数据中的数据内容,修改自身存储的数据中对应的数据内容,得到最新版本的数据;举个例子来说,假设增量数据包含:第100条数据的内容为123456,则数据目标节点将自身存储的第100条数据的内容修改为123456;再举个例子来说,假设增量数据包含:第100条数据修改为123456的日志信息,则数据目标节点根据该日志信息,将自身存储的第100条数据的内容修改为123456,如此类推,从而恢复出最新版本的数据。
下面结合实施例对本发明再作进一步详细的描述。
实施例一:
本实施例的应用场景为:节点加入过程,在以下的描述中,将请求加入的节点称为加入节点,将当前正在负责存储加入节点所需获取数据的节点称为接纳节点。本实施例实现选择数据迁移目标节点及数据迁移的方法,如图3所示,包括以下步骤:
步骤301:加入节点希望加入P2P网络中,首先向配置服务器发送加入请求;
这里,所述加入请求包含加入节点本地存储的数据版本信息;
所述数据版本信息是指:配置服务器能根据所述数据版本信息及自身的相关信息即可确定出合适的节点ID的信息,所述数据版本信息具体可以是:数据版本号、和/或修改时间戳、和/或数据的摘要信息等;当节点没有相关的数据版本信息时,所述数据版本信息具体还可以是表示空的字符。
步骤302:配置服务器收到加入节点的数据版本信息后,根据所述加入节点的数据版本信息、当前活跃的节点的数据版本信息、所述加入节点的能力信息、以及当前活跃的节点的负载信息,为所述加入节点分配节点ID;
具体地,配置服务器可以先根据所述加入节点的数据版本信息及当前活跃的节点的数据版本信息,从当前活跃的节点中选择适合作为加入节点的候选数据源节点的节点;之后,依据加入节点的能力信息,确定加入节点能迁移的最大数据量;最后,依据加入节点能迁移的最大数据量、以及所有适合作为加入节点的候选数据源节点的节点的负载信息,确定为加入节点分配的节点ID;具体地,可以选择负载较重的节点ID作为分配给加入节点的节点ID;其中,配置服务器已采用现有技术获得加入节点的能力信息及当前活跃的节点的负载信息;配置服务器可以通过向各个节点请求本地存储的数据版本信息的方式,获得当前活跃的节点的数据版本信息,或者,可以通过定期维护网络中各个节点的数据版本信息的方式,获得各个节点的数据版本信息,配置服务器预先已配置适合作为加入节点的数据源节点的数据版本信息的选择规则,在选择适合作为加入节点的候选数据源节点的节点时,配置服务器根据此选择规则,确定适合作为加入节点的候选数据源节点的节点,其中,可以依据需要配置所述选择规则;例如,优先选择与所述加入节点数据版本接近的候选数据源节点;
确定分配加入节点的节点ID即是确定数据源节点,在确定加入节点的数据源节点时,还可以是:依据加入节点能迁移的最大数据量、所有适合作为加入节点的候选数据源节点的节点的负载信息及地理位置等信息,确定为加入节点分配的节点ID;加入节点根据分配的节点ID即可获知自身的数据源节点,即:下面描述的接纳节点;在实际应用时,配置服务器还可以采用其它处理方式为加入节点分配节点ID,比如,首先依据加入节点的能力信息,确定加入节点能迁移的最大数据量,之后,依据加入节点能迁移的最大数据量、当前活跃的节点的负载信息及地理位置信息,确定适合作为加入节点的候选数据源节点的节点,最后,依据加入节点的数据版本信息及所有适合作为加入节点的候选数据源节点的节点的数据版本信息,确定为加入节点分配的节点ID;这里,如果配置服务器未能确定出加入节点的数据源节点,可采用现有的技术为加入节点分配节点ID;
这里,当数据版本信息为表示空的字符时,配置服务器可采用现有的技术为加入节点分配节点ID;
所述当前活跃的节点为当前能正常工作、未出现故障的节点;
本步骤中,配置服务器还可以采用指定数据路由表的方式为加入节点分配一个数据源节点,加入节点可以根据指定数据路由表即可获知自身的数据源节点,即:下面描述的接纳节点;
下面以实际操作中的一种实施方法为例,描述配置服务器为加入节点分配节点ID的过程,假设加入节点在加入请求中通知配置服务器,加入节点拥有记录编号为100~200之间的数据,版本号为1.5,同时也有记录编号为700~800之间的数据,版本号为2.0;配置服务器获得的当前活跃的节点的数据版本信息包括:当前活跃的节点A负责记录编号为100~200之间的数据,版本号为4.0,当前活跃的节点B负责记录编号为700~800之间的数据,版本号为2.1。此时,在同等条件下,配置服务器优先选择与加入节点版本号较为接近的节点B作为数据源节点。当然,在选择过程中还可以综合考虑节点地理位置和节点负载情况。例如,如果节点A和加入节点在同一个网络地理区域,且两节点之间的网络带宽比较大,配置服务器可以优先选择节点A作为数据源节点;另一种情况是节点A的负载明显大于节点B的负载,此时,配置服务器可以优先选择节点A作为接纳节点。
步骤303:加入节点收到分配的节点ID后,向引导节点发送接入请求,同引导节点建立连接。
步骤304:在引导节点的引导下,加入节点同接纳节点建立连接。
步骤305:加入节点向接纳节点发送加入请求,请求加入P2P网络,并且希望接管接纳节点的部分资源标识下的数据;
这里,加入节点利用现有技术可获知应接管接纳节点的哪部分资源标识下的数据。
步骤306:接纳节点针对加入节点请求的资源标识,向加入节点请求对应的本地存储的数据版本信息。
步骤307:加入节点将对应的数据版本信息发送给接纳节点;
这里,配置服务器为加入节点分配节点ID完成后,可以将加入节点的数据版本信息通知给接纳节点,此时,则不需要执行步骤306~307;
所述数据版本信息为:接纳节点能根据所述数据版本信息及自身的相关信息即可确定出增量数据的信息,所述数据版本信息具体可以是:数据的版本号、和/或修改时间戳、和/或数据的摘要信息等;当加入节点完全没有所请求的资源标识下的数据时,所述数据版本信息具体还可以是表示空的字符。
步骤308:接纳节点将自身存储的数据版本信息与加入节点的数据版本信息进行对比,确定需要提供给加入节点的增量数据;
这里,在步骤302中,如果配置服务器未能确定出加入节点的数据源节点,而是采用现有的技术为加入节点确定数据源节点,则说明加入节点的数据版本信息过于陈旧或没有数据版本信息,此时,接纳节点无法对比数据版本信息,所述增量数据为所请求的资源标识下的所有数据加入节点。
步骤309:接纳节点将增量数据发送给加入节点;
这里,当增量数据的数据量比较大时,可以分多次发送数据,具体处理过程可采用现有的处理过程。
步骤310:增量数据发送完毕后,加入节点根据本地存储的数据和收到的增量数据恢复出最新版本的数据,同时,接纳节点通知加入节点更新P2P网络路由,加入节点正式负责所请求的资源标识下的数据的存储和处理;
这里,接纳节点将已迁出的当前版本数据存储在本地缓存中,以备后续使用,在存储时,接纳节点可以选择部分数据进行存储,比如准静态数据等;其中,所述准静态数据是指:在资源标识下随时间变化不大的数据;另外,在存储时,接纳节点还可以依据需要删除部分陈旧的数据,用当前版本数据代替这些陈旧的数据,比如:依据数据的使用频率等信息,删除使用频率相对较低的数据,以节约本地缓存资源。
步骤311:加入节点向其它相关节点发送路由更新,通知已正式加入P2P网络。
在实际应用时,步骤301中,加入节点在发送请求时,可以不携带本地存储的数据版本信息,此时,在步骤302中,配置服务器在为加入节点分配节点ID时,可以在考虑当前活跃的节点的负载信息后,再向加入节点咨询加入节点的数据版本信息。
实施例二:
本实施例的应用场景为:节点退出过程,在以下的描述中,将请求退出的节点称为退出节点,将即将接管迁移数据的节点称为新负责节点。本实施例实现数据迁移的方法,如图4所示,包括以下步骤:
步骤401:退出节点希望退出P2P网络,首先向配置服务器发送退出请求,请求配置服务器提供合适的新负责节点;
这里,所述退出请求包含退出节点本地存储的数据版本信息。
步骤402~403:配置服务器收到请求后,向P2P网络中合适的节点请求本地存储的数据版本信息;节点收到请求后,向配置服务器发送自身当前的数据版本信息;
这里,所述数据版本信息是指:配置服务器能根据所述数据版本信息及自身的相关信息即可确定出合适的新负责节点的信息,所述数据版本信息具体可以是:数据版本号、和/或修改时间戳、和/或数据的摘要信息等;
所述合适的节点可以依据需要进行选择,比如:P2P网络中负载较轻的节点、或为在地理位置上离退出节点较近的节点等等;
在步骤402~403中,配置服务器还可以采用定期维护网络中各个节点的数据版本信息的方式,获得各个节点的数据版本信息,此时,步骤401中的退出请求不包含退出节点本地存储的数据版本信息。
步骤404:配置服务器收到所有合适的节点的数据版本信息后,依据退出节点的数据版本信息、所有合适的节点的数据版本信息、以及相关信息,为所述退出节点分配新负责节点,并将新负责节点的信息发送给退出节点;
这里,所述相关信息为现有技术中配置服务器在为退出节点分配新负责节点时考虑的信息;
依据退出节点的数据版本信息、所有合适的节点的数据版本信息、以及相关信息,为所述退出节点分配新负责节点,具体为:
配置服务器将退出节点的数据版本信息与所有合适的节点的数据版本信息分别进行比较,确定适合作为候选新负责节点的节点;之后,依据相关信息,从适合作为候选新负责节点的所有节点中,确定新负责节点;或者,
配置服务器依据相关信息,确定适合作为候选新负责节点的节点,之后,将退出节点的数据版本信息与所有适合作为候选新负责节点的节点的数据版本信息分别进行比较,确定新负责节点;
其中,配置服务器预先已配置适合作为新负责节点的数据版本信息的选择规则,在为退出节点分配新负责节点,配置服务器根据此选择规则,确定适合作为候选新负责节点的节点,或者,依据此选择规则,确定新负责节点,其中,可以依据需要配置所述选择规则,例如,优先选择与所述退出节点数据版本接近的候选新负责节点;
所述新负责节点的信息的内容与现有技术中配置服务器发送给退出节点的新负责节点的信息的内容相同;
所述新负责节点的个数为一个以上;
下面以实际操作中的一种实施方法为例,描述配置服务器为退出节点分配新负责节点的过程,假设退出节点在退出请求中通知配置服务器,退出节点负责记录编号为100~200之间的数据,版本号为2.0;配置服务器获得的当前活跃的节点的数据版本信息包括:当前活跃的节点A缓存了记录编号100~200之间的数据,版本号为1.2,当前活跃的节点B也缓存了记录编号为100~200之间的数据,版本号为1.7。此时,在同等条件下,配置服务器优先选择与退出节点版本号较为接近的节点B作为新负责节点。当然,在选择过程中还可以综合考虑节点地理位置和节点负载情况。例如,如果节点A和加入节点在同一个网络地理区域,且两节点之间的网络带宽比较大,配置服务器可以优先选择节点A;另一种情况是节点A的负载明显小于节点B的负载,此时,配置服务器可以优先选择节点A作为新负责节点;
本步骤中,配置服务器还可以为退出节点负责的数据选择合适的备份节点,即:用于备份退出节点负责的数据的节点。
步骤405:之后配置服务器将节点ID或指定路由表信息发送给新负责节点,通知新负责节点准备接收退出节点的数据;
这里,新负责节点根据所述节点ID或指定路由表信息即可获知该接收哪个节点的数据。
步骤406:退出节点向新负责节点发送退出请求,请求新负责节点接管部分资源标识下的数据,同时请求新负责节点对应的本地存储的数据版本信息。
步骤407:新负责节点收到请求后,将对应的本地存储的数据版本信息发送给退出节点。
步骤408:退出节点收到新负责节点的数据版本信息后,将自身存储的数据版本信息与新负责节点的数据版本信息进行对比,确定需要提供给新负责节点的增量数据。
步骤409:退出节点将增量数据发送给新负责节点;
这里,当增量数据的数据量比较大时,可以分多次发送数据,具体处理过程可采用现有的处理过程。
步骤410:增量数据发送完毕后,新负责节点根据本地存储的数据和收到的增量数据恢复出最新版本的数据,同时,退出节点通知新负责节点更新P2P网络路由,新负责节点正式负责退出节点的资源标识下的数据的存储和处理;
这里,退出节点将已迁出的当前版本数据存储在本地缓存中,以备后续使用,在存储时,退出节点可以选择部分数据进行存储,比如准静态数据等;其中,所述准静态数据是指:在资源标识下随时间变化不大的数据;另外,在存储时,退出节点还可以依据需要删除部分陈旧的数据,用当前版本数据代替这些陈旧的数据,比如:依据数据的使用频率等信息,删除使用频率相对较低的数据,以节约本地缓存资源。
步骤411:新负责节点向其它相关节点发送路由更新,通知已正式加入P2P网络。
在实际应用时,可以不执行步骤405,此时,可以在步骤406中,由退出节点携带步骤405中的相关信息,发送给新负责节点。
实施例三:
本实施例的应用场景为:节点过载过程,在以下的描述中,将负荷过载、请求负载迁移的节点称为过载节点,将即将接管迁移数据的节点称为轻载节点。本实施例实现数据迁移的方法,如图5所示,包括以下步骤:
步骤501:过载节点希望将部分数据迁移到其它节点,首先向配置服务器发送负载迁移退出请求,请求配置服务器提供合适的轻载节点;
这里,所述负载迁移请求包含过载节点本地存储的数据版本信息。
步骤502~503:配置服务器收到请求后,向P2P网络中合适的轻载节点请求本地存储的数据版本信息;轻载节点收到请求后,向配置服务器发送自身当前的数据版本信息;
这里,所述数据版本信息是指:配置服务器能根据所述数据版本信息及自身的相关信息即可确定出合适的轻载节点的信息,所述数据版本信息具体可以是:数据版本号、和/或修改时间戳、和/或数据的摘要信息等;
所述合适的节点可以依据需要进行选择,比如:P2P网络中负载较轻的节点、或为在地理位置上离退出节点较近的节点等等;
在步骤502~503中,配置服务器还可以采用定期维护网络中各个节点的数据版本信息的方式,获得各个节点的数据版本信息,此时,步骤501中的退出请求不包含过载节点本地存储的数据版本信息。
步骤504:配置服务器收到所有合适的轻载节点的数据版本信息后,依据过载节点的数据版本信息、所有合适的轻载节点的数据版本信息、以及相关信息,为所述过载节点分配轻载节点,并将轻载节点的信息发送给过载节点;
这里,所述相关信息为现有技术中配置服务器在为过载节点分配轻载节点时考虑的信息;
依据过载节点的数据版本信息、所有合适的轻载节点的数据版本信息、以及相关信息,为所述过载节点分配轻载节点,具体为:
配置服务器将过载节点的数据版本信息与所有合适的轻载节点的数据版本信息分别进行比较,确定适合作为候选轻载节点的节点;之后,依据相关信息,从适合作为候选轻载节点的所有节点中,确定轻载节点;或者,
配置服务器依据相关信息,确定适合作为候选轻载节点的节点,之后,将过载节点的数据版本信息与所有适合作为候选轻载节点的节点的数据版本信息分别进行比较,确定轻载节点;
其中,配置服务器预先已配置适合作为轻载节点的数据版本信息的选择规则,在为过载节点分配轻载节点,配置服务器根据此选择规则,确定适合作为候选轻载节点的节点,或者,依据此选择规则,确定轻载节点,其中,可以依据需要配置所述选择规则,例如,优先选择与所述过载节点数据版本接近的候选轻载节点;
所述轻载节点的信息的内容与现有技术中配置服务器发送给过载节点的轻载节点的信息的内容相同;
所述轻载节点的个数为一个以上;
下面以实际操作中的一种实施方法为例,描述配置服务器为过载节点分配轻载节点的过程,假设过载节点在迁移请求中通知配置服务器,过载节点希望迁出记录编号为100~200之间的数据,版本号为2.0;配置服务器获得的当前活跃的节点的数据版本信息包括:当前活跃的节点A缓存了记录编号为100~200之间的数据,版本号为1.2,当前活跃的节点B也缓存了记录编号为100~200之间的数据,版本号为1.7。此时,当节点A和B负载接近时,配置服务器应优先选择与过载节点版本号较为接近的节点B作为轻载节点。当然,在选择过程中还可以综合考虑节点地理位置和节点负载情况。例如,如果节点A和过载节点在同一个网络地理区域,且两节点之间的网络带宽比较大,配置服务器可以优先选择节点A作为轻载节点;另一种情况是节点A的负载明显小于节点B的负载,此时,配置服务器可以优先选择节点A作为轻载节点。
步骤505:之后配置服务器将节点ID或指定路由表信息发送给轻载节点,通知轻载节点准备接收过载节点的数据;
这里,轻载节点根据所述节点ID或指定路由表信息即可获知该接收哪个节点的数据。
步骤506:过载节点向轻载节点发送数据迁移请求,请求轻载节点接管部分资源标识下的数据,同时请求轻载节点对应的本地存储的数据版本信息。
步骤507:轻载节点收到请求后,将对应的本地存储的数据版本信息发送给退出节点。
步骤508:过载节点收到轻载节点的数据版本信息后,将自身存储的数据版本信息与轻载节点的数据版本信息进行对比,确定需要提供给轻载节点的增量数据。
步骤509:过载节点将增量数据发送给轻载节点;
这里,当增量数据的数据量比较大时,可以分多次发送数据,具体处理过程可采用现有的处理过程。
步骤510:增量数据发送完毕后,轻载节点根据本地存储的数据和收到的增量数据恢复出最新版本的数据,同时,过载节点通知轻载节点更新P2P网络路由,轻载节点正式负责过载节点的资源标识下的数据的存储和处理;
这里,过载节点将已迁出的当前版本数据存储在本地缓存中,以备后续使用,在存储时,过载节点可以选择部分数据进行存储,比如准静态数据等;其中,所述准静态数据是指:在资源标识下随时间变化不大的数据;另外,在存储时,过载节点还可以依据需要删除部分陈旧的数据,用当前版本数据代替这些陈旧的数据,比如:依据数据的使用频率等信息,删除使用频率相对较低的数据,以节约本地缓存资源。
步骤511:轻载节点向其它相关节点发送路由更新,通知已正式加入P2P网络。
在实际应用时,可以不执行步骤505,此时,可以在步骤506中,由过载节点携带步骤505中的相关信息,发送给轻载节点。
实施例四:
本实施例的应用场景为:数据版本信息为数据版本号,在以下的描述中,将需要迁出数据的节点称为源节点,将迁入数据的节点称为目标节点,本实施例实现数据迁移的方法,如图6所示,包括以下步骤:
步骤601:需要进行数据迁移时,目标节点向源节点发送本地存储的数据版本号;
这里,所述数据版本号的格式可以是依序增加的整数、主版本号加此版本号的格式或时间戳等格式,举个例子来说,如果数据版本号的格式为依序增加的整数,则数据版本号可以是1、2、3等等,如果数据版本号的格式为主版本号加此版本号的格式,则数据版本号可以是1.1、1.2、1.3等等。
步骤602:源节点收到目标节点发送的数据版本号后,将目标节点的数据版本号与自身当前的数据版本号进行比较,通过两个版本之间的版本修改信息,确定需要提供给目标节点的增量数据;
这里,源节点事先会在当前数据版本号下记录修改信息,所述修改信息具体可以是数据修改操作的记录、或修改的资源标识记录等,源节点据此可以获知源节点与目标节点的两个版本之间的版本修改信息;所述版本修改信息可以是数据修改操作的记录、或修改的资源标识记录等;
在通过两个版本之间的版本修改信息,确定需要提供给目标节点的增量数据时,举个例子来说,如果版本修改信息中包含:对第100条数据进行数据修改的具体操作,则源节点根据这条信息,确定需要将第100条数据发送给目标节点,即:第100条数据即为增量数据中的一条;
在源节点将目标节点的数据版本号与自身当前的数据版本号进行比较时,如果源节点发现目标节点的数据版本号过于陈旧,导致自身没有两个版本之间的版本修改信息时,源节点可以将目标节点所请求的全部数据作为增量数据,发送给目标节点。
步骤603:源节点将增量数据发送给目标节点,目标节点收到增量数据后,根据本地存储的数据和增量数据恢复出最新版本的数据;
这里,源节点可以将版本之间的版本修改信息一起发送给目标节点,以便目标节点能更好地恢复出最新版本的数据;
对于上述例子,目标节点收到增量数据后,将自身的第100条数据用增量数据中相应的数据进行修改,如此类推,从而恢复出最新版本的数据。
步骤604:目标节点增加相应的数据版本号,以描述自身和源节点存储的数据版本的区别;
这里,修改数据版本号的操作还可以由源节点在步骤603中进行,所述数据版本号的功能为:区别目标节点和源节点的数据版本,以便后续进行数据迁移时使用;
在实际应用时,当目标节点或源节点的数据版本号过大时,可以删除部分旧数据版本的数据,举个例子来说,目标节点或源节点当前的数据版本号为3.5,3.5之前的数据版本号对应的数据依然保存在硬盘当中,此时,可以将数据版本号为1之前的数据版本号对应的所有数据均删除,以节约硬盘。
上述实施例中,描述的P2P网络中数据组织方式均是:将数据按资源组织,每个资源拥有自己唯一的资源标识,同类资源按照特定的数据结构来存储相关数据,特定的数据可通过资源标识索引来进行查找,每个节点可负责一部分资源标识空间段,即:负责该资源标识段内对应的资源数据的存储和处理,所述处理包括:读取数据、更新数据、以及删除数据等操作。这里,本领域的技术人员应当理解:本发明可以很容易地扩展到其它数据结构组织方式。
本发明提供的方案,尤其适用于节点需要进行定时的负载调整的情况,比如:每日定期进行负载调整。在这种情况下,P2P网络会定期如在每日清晨唤醒和加入一部分节点以应付可预见的大量业务,并定期如在每日夜晚让部分节点退出以节约能源。在这种情况下,通过合理配置节点ID,数据迁移中的数据目标节点可重复负责某些数据段,只要在每次迁移时更新到最新的数据版本即可,如此,本地存储的数据可以得到较好地利用。
在实际应用时,配置服务器还可以完成节点鉴权、管理等多项功能。在部分情况下,配置服务器的功能可以分布式部署,例如:在某些P2P网络中,节点可以自行选择分配的节点ID和负责的数据段位置,此时,配置服务器的功能即由节点完成,因此,采用这种方式实现迁移节点的选择功能时,也可以采用本发明的基本思想。
基于上述方法,本发明还提供了一种P2P网络中数据迁移的系统,如图7所示,该系统包括:配置服务器71、第一节点72、以及第二节点73;其中,
配置服务器71,用于需要进行数据迁移时,依据第一节点72或第二节点73的数据版本信息及当前网络中其它活跃节点的数据版本信息为所述节点分配数据目标节点或数据源节点;
第一节点72,用于将迁移数据当前的数据版本信息与第二节点73对应的数据版本信息进行比较,确定增量数据,并将增量数据发送给第二节点73;
第二节点73,用于收到第一节点72发送的增量数据后,根据增量数据及自身存储的数据,恢复出最新版本的数据。
这里,需要说明的是:所述第一节点72为向所述配置服务器71发送退出请求或负载迁移请求的节点;所述第二节点73为向所述配置服务器71发送加入请求的节点;具体地,所述第一节点72可以是节点加入流程中的接纳节点、或节点退出流程中的退出节点、或节点过载流程中的过载节点,相应的,所述第二节点可以是节点加入流程中的加入节点、或节点退出流程中的新负责节点、或节点过载流程中的轻载节点;当所述第二节点73向配置服务器71发送加入请求时,配置服务器71为所述第二节点73分配的数据源节点为所述第一节点72;当所述第一节点72向配置服务器71发送退出请求或负载迁移请求时,配置服务器71为第一节点72分配的数据目标节点为所述第二节点73;所述第二节点73的个数为一个以上。
在依据第一节点72或第二节点73的数据版本信息及当前网络中其它活跃节点的数据版本信息为所述节点分配数据目标节点或数据源节点时,所述配置服务器71,进一步用于依据当前网络的负载情况、和/或当前其它活跃的节点的地理位置等信息,最终确定为所述节点分配的数据源节点或数据目标节点。
所述第一节点72,还用于将增量数据发送给第二节点73后,保存当前版本数据。
所述第二节点73,具体用于:采用增量数据中的数据内容,修改自身存储的数据中对应的数据,得到最新版本的数据。
这里,本发明的所述系统中的配置服务器、及第一节点的具体处理过程已在上文中详述,不再赘述。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (11)

1.一种对等网络中数据迁移的方法,其特征在于,该方法包括:
需要进行数据迁移时,配置服务器依据发送加入请求、或退出请求、或负载迁移请求的节点的数据版本信息及当前网络中其它活跃节点的数据版本信息为所述发送请求的节点分配数据源节点或数据目标节点;
数据源节点将迁移数据当前的数据版本信息与数据目标节点对应的数据版本信息进行比较,确定增量数据,并将增量数据发送给数据目标节点;
数据目标节点根据增量数据及自身存储的数据,恢复出最新版本的数据。
2.根据权利要求1所述的方法,其特征在于,在将增量数据发送给数据目标节点后,该方法进一步包括:
数据源节点保存自身当前版本的迁移数据。
3.根据权利要求1所述的方法,其特征在于,需要进行数据迁移的时机为:有节点加入对等网络时,或者,有节点退出对等网络时,或者,对等网络中有节点负载超载,需要均衡负载时,或者,由于管理原因需要均衡负载时,或者,需要增加节点作为对等网络中的节点的数据的备份时。
4.根据权利要求1、2或3所述的方法,其特征在于,所述数据版本信息为:数据版本号、和/或为修改时间戳、和/或为数据的摘要信息。
5.根据权利要求1、2或3所述的方法,其特征在于,所述数据目标节点根据增量数据及自身存储的数据,恢复出最新版本的数据,为:
数据目标节点采用增量数据中的数据内容,修改自身存储的数据中对应的数据内容,得到最新版本的数据。
6.根据权利要求1、2或3所述的方法,其特征在于,所述为所述发送请求的节点分配的数据目标节点的个数为一个以上。
7.根据权利要求1、2或3所述的方法,其特征在于,在依据发送加入请求、或退出请求、或负载迁移请求的节点的数据版本信息及当前网络中其它活跃节点的数据版本信息为所述发送请求的节点分配数据源节点或数据目标节点时,配置服务器进一步依据当前网络的负载情况、和/或当前其它活跃的节点的地理位置,最终确定为所述发送请求的节点分配的数据源节点或数据目标节点。
8.一种对等网络中数据迁移的系统,其特征在于,该系统包括:配置服务器、第一节点、以及第二节点;其中,
配置服务器,用于需要进行数据迁移时,依据第一节点或第二节点的数据版本信息及当前网络中其它活跃节点的数据版本信息为所述节点分配数据目标节点或数据源节点;
第一节点,用于将迁移数据当前的数据版本信息与第二节点对应的数据版本信息进行比较,确定增量数据,并将增量数据发送给第二节点;
第二节点,用于收到第一节点发送的增量数据后,根据增量数据及自身存储的数据,恢复出最新版本的数据。
9.根据权利要求8所述的系统,其特征在于,所述第二节点的个数为一个以上。
10.根据权利要求8或9所述的系统,其特征在于,所述第一节点,还用于将增量数据发送给第二节点后,保存当前版本数据。
11.根据权利要求8或9所述的系统,其特征在于,在依据第一节点或第二节点的数据版本信息及当前网络中其它活跃节点的数据版本信息为所述节点分配数据目标节点或数据源节点时,所述配置服务器,进一步用于依据当前网络的负载情况、和/或当前其它活跃的节点的地理位置,最终确定为所述节点分配的数据源节点或数据目标节点。
CN2011100842576A 2011-04-02 2011-04-02 一种对等网络中数据迁移的方法及系统 Pending CN102739703A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011100842576A CN102739703A (zh) 2011-04-02 2011-04-02 一种对等网络中数据迁移的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011100842576A CN102739703A (zh) 2011-04-02 2011-04-02 一种对等网络中数据迁移的方法及系统

Publications (1)

Publication Number Publication Date
CN102739703A true CN102739703A (zh) 2012-10-17

Family

ID=46994485

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011100842576A Pending CN102739703A (zh) 2011-04-02 2011-04-02 一种对等网络中数据迁移的方法及系统

Country Status (1)

Country Link
CN (1) CN102739703A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103841185A (zh) * 2014-02-24 2014-06-04 北京二六三企业通信有限公司 负载均衡方法和装置
WO2015100932A1 (zh) * 2013-12-30 2015-07-09 优视科技有限公司 一种网络数据的传输方法、装置及系统
CN105740259A (zh) * 2014-12-09 2016-07-06 阿里巴巴集团控股有限公司 一种增量数据的处理方法和装置
CN107295063A (zh) * 2017-05-11 2017-10-24 腾讯科技(深圳)有限公司 在对等分布式系统中新增节点的方法及对等分布式系统
CN108984106A (zh) * 2017-06-02 2018-12-11 伊姆西Ip控股有限责任公司 用于数据复制切换的方法和设备
CN110569311A (zh) * 2019-10-30 2019-12-13 上海商魁信息科技有限公司 一种数据库的数据同步方法、设备和计算机存储介质
US11200197B2 (en) 2017-06-02 2021-12-14 EMC IP Holding Company LLC Method and device for data duplication cutover
CN114979162A (zh) * 2022-05-16 2022-08-30 中国工商银行股份有限公司 节点部署方法和网络系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1288199A (zh) * 1999-09-09 2001-03-21 日本电气株式会社 响应用户引发事件更新客户的安装数据的方法
CN1804836A (zh) * 2005-01-14 2006-07-19 微软公司 用于同步对共享对象的多个用户修订的方法和系统
CN101166190A (zh) * 2007-09-20 2008-04-23 腾讯科技(深圳)有限公司 影音文件的多源下载方法及装置
CN101453451A (zh) * 2007-12-07 2009-06-10 北京闻言科技有限公司 一种增量下载数据的方法
US20090240704A1 (en) * 2002-03-18 2009-09-24 International Business Machines Corporation Method, System, and Program Product for Migrating Data from One Data Base Management System to Another Data Base Management System
CN101802806A (zh) * 2007-09-14 2010-08-11 微软公司 无移动情况下数据子集的基于知识的同步
CN101908064A (zh) * 2010-07-20 2010-12-08 中兴通讯股份有限公司 数据库备份恢复方法和装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1288199A (zh) * 1999-09-09 2001-03-21 日本电气株式会社 响应用户引发事件更新客户的安装数据的方法
US20090240704A1 (en) * 2002-03-18 2009-09-24 International Business Machines Corporation Method, System, and Program Product for Migrating Data from One Data Base Management System to Another Data Base Management System
CN1804836A (zh) * 2005-01-14 2006-07-19 微软公司 用于同步对共享对象的多个用户修订的方法和系统
CN101802806A (zh) * 2007-09-14 2010-08-11 微软公司 无移动情况下数据子集的基于知识的同步
CN101166190A (zh) * 2007-09-20 2008-04-23 腾讯科技(深圳)有限公司 影音文件的多源下载方法及装置
CN101453451A (zh) * 2007-12-07 2009-06-10 北京闻言科技有限公司 一种增量下载数据的方法
CN101908064A (zh) * 2010-07-20 2010-12-08 中兴通讯股份有限公司 数据库备份恢复方法和装置

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103731424B (zh) * 2013-12-30 2017-09-15 优视科技有限公司 一种网络数据的传输方法、装置及系统
WO2015100932A1 (zh) * 2013-12-30 2015-07-09 优视科技有限公司 一种网络数据的传输方法、装置及系统
US10122803B2 (en) 2013-12-30 2018-11-06 Uc Mobile Co., Ltd. Network data transmission method, device and system
CN103841185B (zh) * 2014-02-24 2017-05-17 北京二六三企业通信有限公司 负载均衡方法和装置
CN103841185A (zh) * 2014-02-24 2014-06-04 北京二六三企业通信有限公司 负载均衡方法和装置
CN105740259A (zh) * 2014-12-09 2016-07-06 阿里巴巴集团控股有限公司 一种增量数据的处理方法和装置
CN105740259B (zh) * 2014-12-09 2019-04-09 阿里巴巴集团控股有限公司 一种增量数据的处理方法和装置
CN107295063A (zh) * 2017-05-11 2017-10-24 腾讯科技(深圳)有限公司 在对等分布式系统中新增节点的方法及对等分布式系统
CN108984106A (zh) * 2017-06-02 2018-12-11 伊姆西Ip控股有限责任公司 用于数据复制切换的方法和设备
CN108984106B (zh) * 2017-06-02 2021-09-10 伊姆西Ip控股有限责任公司 用于数据复制切换的方法和设备
US11200197B2 (en) 2017-06-02 2021-12-14 EMC IP Holding Company LLC Method and device for data duplication cutover
CN110569311A (zh) * 2019-10-30 2019-12-13 上海商魁信息科技有限公司 一种数据库的数据同步方法、设备和计算机存储介质
CN110569311B (zh) * 2019-10-30 2020-07-10 上海商魁信息科技有限公司 一种数据库的数据同步方法、设备和计算机存储介质
CN114979162A (zh) * 2022-05-16 2022-08-30 中国工商银行股份有限公司 节点部署方法和网络系统
CN114979162B (zh) * 2022-05-16 2024-02-09 中国工商银行股份有限公司 节点部署方法和网络系统

Similar Documents

Publication Publication Date Title
CN102739703A (zh) 一种对等网络中数据迁移的方法及系统
CN102035884B (zh) 一种云存储系统及其数据部署方法
CN104488248B (zh) 一种文件同步方法、服务器及终端
CN102053982A (zh) 一种数据库信息管理方法和设备
CN103902410A (zh) 云存储系统的数据备份加速方法
CN104113597A (zh) 一种多数据中心的hdfs数据读写系统及方法
CN102761861A (zh) 信息的更新方法、服务器以及信息的更新系统
CN104731516A (zh) 一种存取文件的方法、装置及分布式存储系统
CN102737130A (zh) 处理hdfs元数据的方法及系统
CN102244685A (zh) 一种支持负载均衡的分布式缓存动态伸缩方法及系统
CN104539681A (zh) 分布式gis加速系统和gis服务的处理方法
CN106326239A (zh) 分布式文件系统及其文件元信息管理方法
CN103544285A (zh) 一种数据加载方法及装置
CN109710586B (zh) 一种集群节点配置文件同步方法及装置
CN111182067A (zh) 一种基于星际文件系统ipfs的数据写入方法及设备
CN110022338B (zh) 文件读取方法、系统、元数据服务器和用户设备
CN105978981B (zh) 基于公有云存储账户的数据备份的线性扩容方法及系统
CN105930233B (zh) 对指定公有云账户的数据进行分别自动备份的方法及系统
US10241963B2 (en) Hash-based synchronization of geospatial vector features
KR20180071200A (ko) 분산 파일 시스템의 복수의 클러스터의 관리
US10972296B2 (en) Messaging to enforce operation serialization for consistency of a distributed data structure
CN102207978A (zh) 数据库访问方法和系统
CN110311979A (zh) 一种mec服务器的任务迁移方法及相关装置
CN102929958A (zh) 元数据的处理方法,代理、转发设备,服务器及计算系统
CN102739704A (zh) 一种对等网络中数据迁移的方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20121017

WD01 Invention patent application deemed withdrawn after publication