CN109962942A - 副本更新方法和装置以及计算机可读存储介质 - Google Patents
副本更新方法和装置以及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109962942A CN109962942A CN201711399444.7A CN201711399444A CN109962942A CN 109962942 A CN109962942 A CN 109962942A CN 201711399444 A CN201711399444 A CN 201711399444A CN 109962942 A CN109962942 A CN 109962942A
- Authority
- CN
- China
- Prior art keywords
- node
- version number
- subinterval
- nodes
- pointer gauge
- 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.)
- Granted
Links
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/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- 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
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种副本更新方法和装置以及计算机可读存储介质,涉及计算机网络领域。副本更新方法包括:获取Chord环上根节点的指针表;采用指针表中的节点作为分割点,将除根节点以外的Chord环上的节点分割为多个子区间,其中,每个子区间中的首个节点为分割点;令根节点的指针表中的节点收集其所在子区间的所有节点的版本号;令根节点收集其指针表中的节点收集的版本号;根据版本号对Chord环上的节点进行副本更新。本发明的实施例通过采用指针表中的节点划分子区间、并收集各个子区间中的版本号,从而可以使得收集版本号的过程能够并行地进行,提高了副本更新的效率。
Description
技术领域
本发明涉及计算机网络领域,特别涉及一种副本更新方法和装置以及计算机可读存储介质。
背景技术
CDN(Content Delivery Network,内容分发网络)-P2P(Peer to Peer,对等)网络融合技术的广泛应用,极大地提高了用户内容共享的服务能力。CDN-P2P融合分发网络不是CDN网络和P2P网络之间的简单叠加,而是在结构上进行融合,使两者优势互补,使得CDN-P2P融合分发网络具有较高的健壮性、可扩展性。典型的CDN-P2P网络由源服务器层、边缘服务器层和P2P用户节点层组成。
CDN-P2P融合网络的桥梁是边缘服务器,源服务器把内容复制给边缘服务。随着融合网络规模的不断扩大,边缘服务器的数量也不断增加。由于边缘服务器上的副本内容动态变化频繁,因此不同边缘服务器上同一内容的副本可出现不一致的现象。用户请求内容时,通常选择就近的边缘服务器,如果该边缘服务器副本更新不及时,则用户得到的信息可能是无用落后的信息,从而降低了CDN-P2P融合网络用户请求的成功率和内容服务质量。快速更新边缘服务器的副本内容,保持不同边缘服务器上副本内容一致性是CDN-P2P网络性能提升的关键。
Chord算法一种P2P算法,是由麻省理工学院于2001年提出的。Chord的目的是提供一种能在P2P网络快速定位资源的算法。在相关技术中,可以利用Chord环对各个边缘服务器上的副本进行及时更新。然而,现有技术中的方法在进行更新时需要令Chord环上的各个节点逐一收集后继节点的副本信息,导致了副本更新的效率低下。
发明内容
本发明实施例所要解决的一个技术问题是:如何提高副本更新效率。
根据本发明一些实施例的第一个方面,提供一种副本更新方法,包括:获取Chord环上根节点的指针表,其中,Chord环上的节点具有同一副本,根节点为版本号最高的节点,指针表中包括Chord环上多个节点;采用指针表中的节点作为分割点,将除根节点以外的Chord环上的节点分割为多个子区间,其中,每个子区间中的首个节点为分割点;令根节点的指针表中的节点收集其所在子区间的所有节点的版本号;令根节点收集其指针表中的节点收集的版本号;根据版本号对Chord环上的节点进行副本更新。
在一些实施例中,令根节点的指针表中的节点收集其所在子区间的所有节点的版本号包括:响应于子区间中的节点数量大于预设值,重复以下过程、直到最新生成的子区间中的节点数量不大于预设值:采用子区间中的首个节点的指针表中的节点作为分割点继续进行分割,生成多个子区间;令每个子区间的首个节点收集其所在子区间的所有节点的版本号。
在一些实施例中,令每个子区间的首个节点收集其所在子区间的所有节点的版本号包括:对于节点数量不大于预设值的子区间,令除子区间中最后一个节点以外的每个节点依次收集其直接后继节点收集的版本号;对于节点数量大于预设值的子区间,令每个子区间的首个节点收集其指针表中的节点收集的版本号。
在一些实施例中,采用Chord环上的节点构建更新树,其中,更新树中每个父节点的版本号不低于父节点的子节点的版本号;按照从根节点到叶子节点的更新顺序,令更新树中除根节点以外的每个节点根据其父节点上的副本内容进行更新。
在一些实施例中,用Chord环上的节点构建更新树包括:将版本号最高的节点作为更新树的根节点;将Chord环上的所有节点组成的区域作为待划分区域;重复以下过程,直到待划分区域为空:将待划分区域中除版本号最高的节点以外的节点组成的区域划分为若干子区域;针对每个子区域,将子区域中版本号最高的节点添加到更新树中,作为待划分区域中版本号最高的节点的子节点;将每个子区域分别作为待划分区域。
根据本发明一些实施例的第二个方面,提供一种副本更新装置,包括:根节点指针表获取模块,用于获取Chord环上根节点的指针表,其中,Chord环上的节点具有同一副本,根节点为版本号最高的节点,指针表中包括Chord环上多个节点;子区间分割模块,用于采用指针表中的节点作为分割点,将除根节点以外的Chord环上的节点分割为多个子区间,其中,每个子区间中的首个节点为分割点;版本号收集模块,用于令根节点的指针表中的节点收集其所在子区间的所有节点的版本号,令根节点收集其指针表中的节点收集的版本号;副本更新模块,用于根据版本号对Chord环上的节点进行副本更新。
在一些实施例中,版本号收集模块进一步用于响应于子区间中的节点数量大于预设值,重复以下过程、直到最新生成的子区间中的节点数量不大于预设值:采用子区间中的首个节点的指针表中的节点作为分割点继续进行分割,生成多个子区间;令每个子区间的首个节点收集其所在子区间的所有节点的版本号。
在一些实施例中,版本号收集模块进一步用于:对于节点数量不大于预设值的子区间,令除子区间中最后一个节点以外的每个节点依次收集其直接后继节点收集的版本号;对于节点数量大于预设值的子区间,令每个子区间的首个节点收集其指针表中的节点收集的版本号。
在一些实施例中,副本更新模块进一步用于采用Chord环上的节点构建更新树,其中,更新树中每个父节点的版本号不低于父节点的子节点的版本号;按照从根节点到叶子节点的更新顺序,令更新树中除根节点以外的每个节点根据其父节点上的副本内容进行更新。
在一些实施例中,副本更新模块进一步用于:将版本号最高的节点作为更新树的根节点;将Chord环上的所有节点组成的区域作为待划分区域;重复以下过程,直到待划分区域为空:将待划分区域中除版本号最高的节点以外的节点组成的区域划分为若干子区域;针对每个子区域,将子区域中版本号最高的节点添加到更新树中,作为待划分区域中版本号最高的节点的子节点;将每个子区域分别作为待划分区域。
根据本发明实施例的第三个方面,提供一种副本更新装置,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器中的指令,执行前述任意一种副本更新方法。
根据本发明实施例的第四个方面,提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现前述任意一种副本更新方法。
上述发明中的一些实施例具有如下优点或有益效果:本发明的实施例通过采用指针表中的节点划分子区间、并收集各个子区间中的版本号,从而可以使得收集版本号的过程能够并行地进行,提高了副本更新的效率。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为根据本发明一些实施例的副本更新方法的流程图。
图2为根据本发明一些实施例的Chord环的示意图。
图3为根据本发明一个实施例的子区间分割方法的流程图。
图4为根据本发明一些实施例的版本号收集方法的流程图。
图5为根据本发明一些实施例的分割树的子树的示意图。
图6A为根据本发明另一些实施例的副本更新方法的流程图。
图6B为根据本发明一些实施例的更新树的示意图。
图7为根据本发明一些实施例的更新树构建方法的流程图。
图8为根据本发明一些实施例的副本更新装置的结构图。
图9为根据本发明另一些实施例的副本更新装置的结构图。
图10为根据本发明一些实施例的副本更新装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图1为根据本发明一些实施例的副本更新方法的流程图。如图1所示,该实施例的副本更新方法包括步骤S102~S110。
在步骤S102中,获取Chord环上根节点的指针表,其中,Chord环上的节点具有同一副本,根节点为副本版本最高的节点,指针表中包括Chord环上多个节点。
Chord环上的节点可以是网络中的内容服务器,Chord环的一个实施例可以如图2所示。节点具有同一副本是指节点具有相同的资源,而由于副本内容变化频繁,同一副本在不同节点上的版本可能不同。例如,同一电视剧在不同节点上存储的集数可能不同,同一目录服务在不同节点上存储的结构可能不同等等。
节点的指针表(Finger Table)中包括该节点的多个后继节点的名称和版本号,版本号是指节点上存储的副本的版本号。根据Chord协议的内容,Chord环上的节点总数为2w,则每个节点的指针表中包括w项。在节点编号为n的节点的指针表中,第i项为Chord环上的第n+2i-1位的后继节点。此外,指针表中的每一项还包括该项中的节点上的副本版本信息。本发明的一些实施例中,节点N0的指针表例如可以如表1所示。
表1
偏移量 | 后继节点 | 版本号 |
N0+1 | N1 | 1 |
N0+2 | N2 | 0.4 |
N0+4 | N4 | 0.8 |
N0+8 | N10 | 0.9 |
在步骤S104中,采用指针表中的节点作为分割点,将除根节点以外的Chord环上的节点分割为多个子区间,其中,每个子区间中的首个节点为分割点。
仍以图2为例,设N0为版本号最高的节点,则以N0的指针表中的节点作为分割点进行分割,可以得到以下4个子区间:[N1],[N2,N3],[N4,N6,N7],[N10,N12,N13]。
在步骤S106中,令根节点的指针表中的节点收集其所在子区间的所有节点的版本号。
如果逐一令Chord环上的每个节点获取其后继节点的版本号,版本号的收集时间会随着Chord环上节点数量的增加而变长。当Chord环上节点数量巨大时,版本号的收集过程会耗费较长的时间。
因此,本发明利用Chord环上的节点具有指针表这一特点,令指针表中的节点同时去收集各个子区间的版本号,从而使得收集过程能够并行进行,提高了收集效率。
在步骤S108中,令根节点收集其指针表中的节点收集的版本号。
从而,根节点获得了Chord环上所有节点的版本号。
在步骤S110中,根据版本号对Chord环上的节点进行副本更新。
在一些实施例中,可以令根节点将副本复制给版本号较高的节点,获得了最新副本的节点可以将副本再复制给版本号较低的节点。
通过上述实施例的方法,可以采用指针表中的节点划分子区间、并收集各个子区间中的版本号,从而可以使得收集版本号的过程能够并行地进行,提高了副本更新的效率。
在一些实施例中,每个子区间中的节点可以按照从前至后的顺序,依次收集其后继节点的版本号。例如,对于子区间[N10,N12,N13,N16],可以由N13收集N16的版本号;再由N12收集N13的版本号、以及N13收集的N16的版本号;类似地,N10可以获得N12、N13、N16的版本号。从而,子区间中的首个节点N10获得了子区间中所有节点的版本号,可以将其上报给根节点N0。
在一些实施例中,Chord环上的节点数量很多,为了进一步提升副本效率,可以对子区间进一步地进行分割。下面参考图3描述本发明子区间分割方法的实施例。
图3为根据本发明一个实施例的子区间分割方法的流程图。如图3所示,该实施例的版本号收集方法包括步骤S302~S310。
在步骤S302中,获取Chord环上根节点的指针表。
在步骤S304中,采用指针表中的节点作为分割点,将除根节点以外的Chord环上的节点分割为多个子区间。
在步骤S306中,判断新生成的子区间中的节点数量是否大于预设值。如果是,执行步骤S308;如果不是,执行步骤S310。
在步骤S308中,采用子区间中的首个节点的指针表中的节点作为分割点继续进行分割,生成多个子区间,回到步骤S306。
即,如果生成的子区间中的节点数量过多,可以继续对子区间进行分割。
在步骤S310中,令子区间的首个节点收集其所在子区间的所有节点的版本号。
下面示例性地描述上述分割方法。设采用N0的指针表对Chord环进行分割,获得的其中一个子区间为Z1=[N6,N10,N12,N13,N15,N16,N18,N25,N28,N30,N36,N37,N39,N41]。设子区间的预设最大节点数量为4,则子区间Z1需要继续进行分割。Z1中的首个节点N6的指针表中的节点为N10和N15,因此对Z1进行继续分割生成Z11=[N10,N12,N13]和Z12=[N15,N16,N18,N25,N28,N30,N36,N37,N39,N41]。Z11中节点数量小于4,可以停止分割,Z12则需要继续分割。Z12中的首个节点N15的指针表中的节点为N16、N18和N25,因此对Z12继续分割生成Z121=[N16]、Z122=[N18]、Z123=[N25,N28,N30,N36,N37,N39,N41]。类似地,对Z123继续分割,生成Z1231=[N28]、Z1232=[N30]、Z=1233=[N36,N37,N39,N41]。新生成的区间Z1231、Z1232、Z1233中的节点数量均小于4,因此可以停止分割。
通过上述实施例的方法,可以利用Chord环中的每个节点都具有指针表的特点、对Chord进行多次的迭代分割,以使尽可能多的节点并行地收集版本号,从而提高了版本号收集的效率、进而提高了副本更新的效率。
在区间划分完成后,可以开始版本号的收集过程。对于节点数量不大于预设值的子区间,即没有被进一步细分的子区间,可以令除子区间中最后一个节点以外的每个节点依次收集其直接后继节点收集的版本号;对于节点数量大于预设值的子区间,即还包括更多细分的子区间的子区间,可以令每个子区间的首个节点收集其指针表中的节点收集的版本号。下面参考图4描述本发明版本号收集过程的实施例。
图4为根据本发明一些实施例的版本号收集方法的流程图。如图4所示,该实施例的版本号收集方法包括步骤S402~S406。
在步骤S402中,采用分割树记录各个子区间的首个节点。在分割树中,父节点为子区间的首个节点,父节点的子节点为父节点的指针表中的节点,即,对子区间进行分割后新生成的子区间的首个节点。
以图2实施例中的子区间Z1为例,描述分割树中Z1所对应的子树部分。则该子树的结构可以如图5所示。
在步骤S404中,令分割树中的叶子节点采集以叶子节点为首个节点的子区间中所有节点的版本号,收集方式为按照从后至前的顺序、令除子区间中最后一个节点以外的每个节点依次收集其直接后继节点收集的版本号。
例如,叶子节点N10采集子区间Z11=[N10,N12,N13]中所有节点的版本号,叶子节点N36采集子区间Z=1233=[N36,N37,N39,N41]中所有节点的版本号等等。在子区间Z11中,N12收集直接后继节点N13的版本号,N10收集直接后继节点N12收集的版本号,其中包括N12自身的版本号。
在步骤S406中,按照从叶子节点到根节点的方向,令分割树中的每个非叶子节点获取其子节点收集的版本号。
例如,节点N25可以收集节点N28、N30、N36收集的版本号,从而节点N25获得了以N25为首个节点的子区间中所有节点的版本号。以此类推,分割树的根节点、即Chord环上版本号最高的节点可以获得Chord环上所有节点的版本号。
通过上述实施例的方法,可以令不同类型的节点采用不同的版本号收集方式,从而可以快速地实现版本号的收集。
下面参考图6A描述本发明副本更新过程的实施例。
图6A为根据本发明另一些实施例的副本更新方法的流程图。如图6A所示,该实施例的副本更新方法包括步骤S602~S604。
在步骤S602中,采用Chord环上的节点构建更新树,其中,更新树中每个父节点的版本号不低于父节点的子节点的版本号。
更新树的一个实施例可以如图6B所示。N0为副本更新到最高版本的节点,更新树中的其他节点的副本版本均低于或等于其父节点的版本号。
在步骤S604中,按照从根节点到叶子节点的更新顺序,令更新树中除根节点以外的每个节点根据其父节点上的副本内容进行更新。
在一些实施例中,可以依次令更新树中的每个节点根据其父节点上的副本进行增量更新。
上述实施例按照从根节点到叶子节点的更新顺序,依次令更新树中的每个节点根据其父节点上的副本进行更新,从而使最新的副本只会由具有高版本副本的节点流向具有低版本副本的节点,节省了更新时间,减少了更新过程中不必要的网络资源消耗。
在构建更新树的过程中,可以将Chord环划分为多个区域,选取每个区域中副本版本最高的节点添加到更新树,并将剩余的区域继续进行划分,迭代执行上述过程,直到所有的节点均被添加到更新树。下面参考图7描述本发明一个实施例的更新树构建方法。
图7为根据本发明一些实施例的更新树构建方法的流程图。如图7所示,该实施例的方法包括步骤S702~S712。
在步骤S702中,将版本号最高的节点作为更新树的根节点。
在步骤S704中,将Chord环上的所有节点组成的区域作为待划分区域。
在步骤S706中,将待划分区域中除副本版本最高的节点以外的节点组成的区域划分为若干子区域。
在一些实施例中,可以将待划分区域中除副本版本最高的节点以外的节点组成的区域平均划分为两个子区域。从而,可以生成二叉更新树。
在步骤S708中,针对每个子区域,将子区域中版本号最高的节点添加到更新树中,作为待划分区域中版本号最高的节点的子节点。
在步骤S710中,将每个子区域分别作为待划分区域。
在步骤S712中,判断待划分区域是否为空。如果不是,执行步骤S706;如果是,结束流程。
通过采用上述方法,可以通过区域划分的方式逐步确定当前区域中副本版本最高的节点,从而可以快速、准确地建立更新树。
下面参考图8描述本发明副本更新装置的实施例。
图8为根据本发明一些实施例的副本更新装置的结构图。如图8所示,该实施例的副本更新装置80包括:根节点指针表获取模块810,用于获取Chord环上根节点的指针表,其中,Chord环上的节点具有同一副本,根节点为版本号最高的节点,指针表中包括Chord环上多个节点;子区间分割模块820,用于采用指针表中的节点作为分割点,将除根节点以外的Chord环上的节点分割为多个子区间,其中,每个子区间中的首个节点为分割点;版本号收集模块830,用于令根节点的指针表中的节点收集其所在子区间的所有节点的版本号,令根节点收集其指针表中的节点收集的版本号;副本更新模块840,用于根据版本号对Chord环上的节点进行副本更新。
在一些实施例中,版本号收集模块830可以进一步用于响应于子区间中的节点数量大于预设值,重复以下过程、直到最新生成的子区间中的节点数量不大于预设值:采用子区间中的首个节点的指针表中的节点作为分割点继续进行分割,生成多个子区间;令每个子区间的首个节点收集其所在子区间的所有节点的版本号。
在一些实施例中,版本号收集模块830可以进一步用于:对于节点数量不大于预设值的子区间,令除子区间中最后一个节点以外的每个节点依次收集其直接后继节点收集的版本号;对于节点数量大于预设值的子区间,令每个子区间的首个节点收集其指针表中的节点收集的版本号。
在一些实施例中,副本更新模块840可以进一步用于采用Chord环上的节点构建更新树,其中,更新树中每个父节点的版本号不低于父节点的子节点的版本号;按照从根节点到叶子节点的更新顺序,令更新树中除根节点以外的每个节点根据其父节点上的副本内容进行更新。
在一些实施例中,副本更新模块840可以进一步用于:将版本号最高的节点作为更新树的根节点;将Chord环上的所有节点组成的区域作为待划分区域;重复以下过程,直到待划分区域为空:将待划分区域中除版本号最高的节点以外的节点组成的区域划分为若干子区域;针对每个子区域,将子区域中版本号最高的节点添加到更新树中,作为待划分区域中版本号最高的节点的子节点;将每个子区域分别作为待划分区域。
图9为根据本发明另一些实施例的副本更新装置的结构图。如图9所示,该实施例的副本更新装置900包括:存储器910以及耦接至该存储器910的处理器920,处理器920被配置为基于存储在存储器910中的指令,执行前述任意一个实施例中的副本更新方法。
其中,存储器910例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)以及其他程序等。
图10为根据本发明一些实施例的副本更新装置的结构图。如图10所示,该实施例的副本更新装置1000包括:存储器1010以及处理器1020,还可以包括输入输出接口1030、网络接口1040、存储接口1050等。这些接口1030,1040,1050以及存储器1010和处理器1020之间例如可以通过总线1060连接。其中,输入输出接口1030为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口1040为各种联网设备提供连接接口。存储接口1050为SD卡、U盘等外置存储设备提供连接接口。
本发明的实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现前述任意一种副本更新方法。
本领域内的技术人员应当明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种副本更新方法,包括:
获取Chord环上根节点的指针表,其中,所述Chord环上的节点具有同一副本,所述根节点为版本号最高的节点,所述指针表中包括所述Chord环上多个节点;
采用指针表中的节点作为分割点,将除所述根节点以外的Chord环上的节点分割为多个子区间,其中,每个子区间中的首个节点为所述分割点;
令所述根节点的指针表中的节点收集其所在子区间的所有节点的版本号;
令所述根节点收集其指针表中的节点收集的版本号;
根据版本号对Chord环上的节点进行副本更新。
2.根据权利要求1所述的副本更新方法,其中,所述令所述根节点的指针表中的节点收集其所在子区间的所有节点的版本号包括:
响应于子区间中的节点数量大于预设值,重复以下过程、直到最新生成的子区间中的节点数量不大于预设值:采用子区间中的首个节点的指针表中的节点作为分割点继续进行分割,生成多个子区间;
令每个子区间的首个节点收集其所在子区间的所有节点的版本号。
3.根据权利要求2所述的副本更新方法,其中,所述令每个子区间的首个节点收集其所在子区间的所有节点的版本号包括:
对于节点数量不大于预设值的子区间,令除子区间中最后一个节点以外的每个节点依次收集其直接后继节点收集的版本号;
对于节点数量大于预设值的子区间,令每个子区间的首个节点收集其指针表中的节点收集的版本号。
4.根据权利要求1~3中任一项所述的副本更新方法,其中,
采用Chord环上的节点构建更新树,其中,所述更新树中每个父节点的版本号不低于所述父节点的子节点的版本号;
按照从根节点到叶子节点的更新顺序,令更新树中除根节点以外的每个节点根据其父节点上的副本内容进行更新。
5.根据权利要求4所述的副本更新方法,其中,所述采用Chord环上的节点构建更新树包括:
将版本号最高的节点作为更新树的根节点;
将Chord环上的所有节点组成的区域作为待划分区域;
重复以下过程,直到所述待划分区域为空:
将待划分区域中除版本号最高的节点以外的节点组成的区域划分为若干子区域;
针对每个子区域,将子区域中版本号最高的节点添加到更新树中,作为所述待划分区域中版本号最高的节点的子节点;
将每个子区域分别作为待划分区域。
6.一种副本更新装置,包括:
根节点指针表获取模块,用于获取Chord环上根节点的指针表,其中,所述Chord环上的节点具有同一副本,所述根节点为版本号最高的节点,所述指针表中包括所述Chord环上多个节点;
子区间分割模块,用于采用指针表中的节点作为分割点,将除所述根节点以外的Chord环上的节点分割为多个子区间,其中,每个子区间中的首个节点为所述分割点;
版本号收集模块,用于令所述根节点的指针表中的节点收集其所在子区间的所有节点的版本号,令所述根节点收集其指针表中的节点收集的版本号;
副本更新模块,用于根据版本号对Chord环上的节点进行副本更新。
7.根据权利要求6所述的副本更新装置,其中,所述版本号收集模块进一步用于响应于子区间中的节点数量大于预设值,重复以下过程、直到最新生成的子区间中的节点数量不大于预设值:采用子区间中的首个节点的指针表中的节点作为分割点继续进行分割,生成多个子区间;令每个子区间的首个节点收集其所在子区间的所有节点的版本号。
8.根据权利要求7所述的副本更新装置,其中,所述版本号收集模块进一步用于:
对于节点数量不大于预设值的子区间,令除子区间中最后一个节点以外的每个节点依次收集其直接后继节点收集的版本号;
对于节点数量大于预设值的子区间,令每个子区间的首个节点收集其指针表中的节点收集的版本号。
9.根据权利要求6~8中任一项所述的副本更新装置,其中,所述副本更新模块进一步用于采用Chord环上的节点构建更新树,其中,所述更新树中每个父节点的版本号不低于所述父节点的子节点的版本号;按照从根节点到叶子节点的更新顺序,令更新树中除根节点以外的每个节点根据其父节点上的副本内容进行更新。
10.根据权利要求9所述的副本更新装置,其中,所述副本更新模块进一步用于:
将版本号最高的节点作为更新树的根节点;
将Chord环上的所有节点组成的区域作为待划分区域;
重复以下过程,直到所述待划分区域为空:
将待划分区域中除版本号最高的节点以外的节点组成的区域划分为若干子区域;
针对每个子区域,将子区域中版本号最高的节点添加到更新树中,作为所述待划分区域中版本号最高的节点的子节点;
将每个子区域分别作为待划分区域。
11.一种副本更新装置,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1~5中任一项所述的副本更新方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1~5中任一项所述的副本更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711399444.7A CN109962942B (zh) | 2017-12-22 | 2017-12-22 | 副本更新方法和装置以及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711399444.7A CN109962942B (zh) | 2017-12-22 | 2017-12-22 | 副本更新方法和装置以及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109962942A true CN109962942A (zh) | 2019-07-02 |
CN109962942B CN109962942B (zh) | 2022-06-07 |
Family
ID=67018765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711399444.7A Active CN109962942B (zh) | 2017-12-22 | 2017-12-22 | 副本更新方法和装置以及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109962942B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111538864A (zh) * | 2020-03-25 | 2020-08-14 | 新华三技术有限公司合肥分公司 | 一种减少Buildrun消耗的方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1708026A (zh) * | 2004-04-16 | 2005-12-14 | 微软公司 | 数据覆盖图、自组织元数据覆盖和应用级多信道广播 |
US20080177767A1 (en) * | 2007-01-22 | 2008-07-24 | Xerox Corporation | Two-level structured overlay design for cluster management in a peer-to-peer network |
CN101286920A (zh) * | 2008-05-15 | 2008-10-15 | 华中科技大学 | 一种有结构对等网络的可扩展资源查找方法 |
CN102378407A (zh) * | 2010-08-26 | 2012-03-14 | 中国人民解放军国防科学技术大学 | 一种物联网中的对象名字解析系统及其解析方法 |
CN102378409A (zh) * | 2010-08-26 | 2012-03-14 | 中国人民解放军国防科学技术大学 | 一种物联网中的层次式Chord分组网络及其组织方法 |
CN102668513A (zh) * | 2009-12-17 | 2012-09-12 | 阿尔卡特朗讯 | 用于在对等网络内对服务定位的方法和装置 |
CN105373376A (zh) * | 2014-08-12 | 2016-03-02 | 汤姆逊许可公司 | 用于配置软件应用的方法和装置 |
CN106210090A (zh) * | 2016-07-18 | 2016-12-07 | 浪潮集团有限公司 | 基于p2p网络的双层环状路由结构的网络服务搜索方法 |
CN106657174A (zh) * | 2015-10-28 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种数据同步方法、更新方法及装置 |
-
2017
- 2017-12-22 CN CN201711399444.7A patent/CN109962942B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1708026A (zh) * | 2004-04-16 | 2005-12-14 | 微软公司 | 数据覆盖图、自组织元数据覆盖和应用级多信道广播 |
US20080177767A1 (en) * | 2007-01-22 | 2008-07-24 | Xerox Corporation | Two-level structured overlay design for cluster management in a peer-to-peer network |
CN101286920A (zh) * | 2008-05-15 | 2008-10-15 | 华中科技大学 | 一种有结构对等网络的可扩展资源查找方法 |
CN102668513A (zh) * | 2009-12-17 | 2012-09-12 | 阿尔卡特朗讯 | 用于在对等网络内对服务定位的方法和装置 |
CN102378407A (zh) * | 2010-08-26 | 2012-03-14 | 中国人民解放军国防科学技术大学 | 一种物联网中的对象名字解析系统及其解析方法 |
CN102378409A (zh) * | 2010-08-26 | 2012-03-14 | 中国人民解放军国防科学技术大学 | 一种物联网中的层次式Chord分组网络及其组织方法 |
CN105373376A (zh) * | 2014-08-12 | 2016-03-02 | 汤姆逊许可公司 | 用于配置软件应用的方法和装置 |
CN106657174A (zh) * | 2015-10-28 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种数据同步方法、更新方法及装置 |
CN106210090A (zh) * | 2016-07-18 | 2016-12-07 | 浪潮集团有限公司 | 基于p2p网络的双层环状路由结构的网络服务搜索方法 |
Non-Patent Citations (4)
Title |
---|
RAJIV RANJAN等: "PEER-TO-PEER-BASED RESOURCE DISCOVERY IN GLOBAL GRIDS: A TUTORIAL", 《IEEE COMMUNICATIONS SURVEYS & TUTORIALS》 * |
卢浩: "无结构P2P网络副本一致性研究", 《CNKI优秀硕士学位论文库》 * |
王广奇: "基于PZP框架的数据库网格中若干关键技术的研究", 《CNKI优秀博士学位论文库》 * |
马辉: "PPDSS存储系统中P2P技术应用与研究", 《CNKI优秀硕士学位论文库》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111538864A (zh) * | 2020-03-25 | 2020-08-14 | 新华三技术有限公司合肥分公司 | 一种减少Buildrun消耗的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109962942B (zh) | 2022-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20110154339A1 (en) | Incremental mapreduce-based distributed parallel processing system and method for processing stream data | |
US20160350302A1 (en) | Dynamically splitting a range of a node in a distributed hash table | |
WO2015024474A1 (zh) | 基于缓存数据多线程处理的电力可靠性指标快速计算方法 | |
CN106934048A (zh) | 数据在线迁移方法、代理节点 | |
CN102426582B (zh) | 数据操作管理装置和数据操作管理方法 | |
CN108595604B (zh) | 一种智能报表的数据可视化系统及方法 | |
CN101673289B (zh) | 分布式文件存储构架的构建方法和装置 | |
US11630803B2 (en) | Persistent indexing and free space management for flat directory | |
CN103559323A (zh) | 数据库实现方法 | |
CN103514274A (zh) | 非关系型数据库HBase的数据迁移方法 | |
CN106161106B (zh) | 一种应用于有向拓扑图的节点聚合方法及装置 | |
CN101661484A (zh) | 一种查询方法及系统 | |
CN106445643A (zh) | 克隆、升级虚拟机的方法及设备 | |
CN108369588A (zh) | 数据库级别自动存储管理 | |
CN108932658A (zh) | 数据处理方法、装置和计算机可读存储介质 | |
CN103699534A (zh) | 系统目录中数据对象的显示方法及装置 | |
CN109388659A (zh) | 数据存储方法、装置和计算机可读存储介质 | |
CN109962942A (zh) | 副本更新方法和装置以及计算机可读存储介质 | |
CN115048254A (zh) | 数据分配策略的仿真测试方法、系统、设备和可读介质 | |
CN112540760B (zh) | 一种基于数据源字段的ui界面快速构建方法 | |
WO2015029969A1 (ja) | データ処理装置及びデータ処理方法及びプログラム | |
CN104199924B (zh) | 选择具有快照关系的网络表格的方法及装置 | |
CN104063230B (zh) | 基于MapReduce的粗糙集并行约简方法、装置及系统 | |
CN105930354A (zh) | 存储模型转换方法和装置 | |
CN107346331B (zh) | 一种基于Spark云计算平台的并行序列模式挖掘方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220128 Address after: 100007 room 205-32, floor 2, building 2, No. 1 and No. 3, qinglonghutong a, Dongcheng District, Beijing Applicant after: Tianyiyun Technology Co.,Ltd. Address before: No.31, Financial Street, Xicheng District, Beijing, 100033 Applicant before: CHINA TELECOM Corp.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |