CN103793416A - 一种对等网络中分布无关的数据管理方法 - Google Patents
一种对等网络中分布无关的数据管理方法 Download PDFInfo
- Publication number
- CN103793416A CN103793416A CN201210426146.3A CN201210426146A CN103793416A CN 103793416 A CN103793416 A CN 103793416A CN 201210426146 A CN201210426146 A CN 201210426146A CN 103793416 A CN103793416 A CN 103793416A
- Authority
- CN
- China
- Prior art keywords
- peer
- node
- distribution function
- peer network
- overall
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种对等网络中分布无关的数据管理方法,包括:获取对等网络中任意节点的对应的指表;生成对等网络中节点的索引键值;根据指表与索引键值,计算节点维护的全局累积分布函数片段;对全局累积分布函数进行分布无关随机抽样,得到随机样本集;通过对随机样本集进行数据密度估计,得到全局数据密度分布;根据全局数据密度,将数据均匀分布在对等网络中的所有节点上。本发明提高了对等网络的使用效率,并且降低了用户的响应时间,使得对等网络中的许多查询请求操作变得更加简单,包括范围查找、聚合查找和轮廓查找等。
Description
技术领域
本发明属数据库技术领域,具体涉及一种对等网络中分布无关的数据管理方法。
背景技术
对等网络系统起源于文件共享应用,近几年来已日渐成熟并应用于云计算系统中作可扩展、容错数据管理,例如Cassandra,Dynamo等等。许多研究问题(例如负载平衡分析、查询处理、数据挖掘)变得更加重要。考虑到对等网络系统的规模非常大,探究有效地管理分布在各节点上大量数据的方法是非常必要的。特别是在许多应用中,学习和理解全局数据分布尤为重要。
例如,在对等网络中,负载平衡是一个重要的问题。对等网络系统中的动态数据项和不正确的用户查询模式可能会导致严重的负载不平衡,增加用户响应时间。通过了解当前对等网络系统的全局数据分布,数据可以更加均匀地分布在系统的节点上。在对等网络系统中,不同的查询类型,例如范围查询、聚合查询和轮廓线查询等,也可以更有效地支持全球数据分布的信息。以聚合查询为例,知道在当前系统中的全球数据分布可以更有效地进行计算,例如,求和、求平均值和计数等等。在对等网络系统中,知道节点上的数据分布对聚类与分类等新兴应用也有很大的用处。
集中数据库上的数据密度估计已经得到了广泛地研究,例如分层抽样和基于直方图的抽样,但是在对等网络中估计数据密度仍存在一些困难,包括以下几个方面:
第一,在一组节点上维持全局数据索引代价是非常大的,但是如果没有全局数据很难准确估计数据密度。
第二,通过直接对对等网络系统中的节点抽样很难得到准确的估计,因为当一些新的节点加入到系统中或从系统中撤出时,稳定的抽样框架会被破坏掉,很难选择一个稳定的抽样框架进行估计。
第三,通过直接对索引键抽样很难得到准确的估计,因为他们收集和演化数据的概率是不相等的。
过去几年,提出了许多在数据估计方法。在集中数据库系统中,包括估计方法论在内的应用主要是查询选择性估计。基本上,它们可分为四类。
第一类,模型函数参数方法。给定数据分布模型,估计模型参数。这类方法可以获得较高的估计精度,但是该方法假定数据分布模型已知,所以并不适用于未知分布模型的数据密度估计。
第二类,多项式函数拟合数据分布曲线。这类方法可以对任意数据分布进行近似拟合,但是该方法存在着负值问题和舍入误差传递问题。
第三类,抽样估计。这类方法通过对数据抽样,进而估计数据的统计信息。但是对于不同的分布模型,需要不同的抽样方法才能获得近似的估计精度。同时也需要设置较高的抽样样本集才能获的较高的估计精度。
第四类,基于柱状图的非参数估计方法。这类方法有个假设前提,即假设数据在柱状图中各个柱上均匀分布。这样,基于这一均匀分布假设,估计出来的数据分布将会有较大偏差。
在对等网络环境中,考虑到网络的动态特性,估计当前网路状态下的数据分布会变得更加复杂。因为对等网络具有高度的动态性,每个时刻都会有节点的加入,退出和失效。同时伴随有大量数据的插入和删除操作。因此,在任一时间段内,网络中的数据分布都将发生较大的变化。在对等网络中网络带宽消耗是主要的考虑因素,所以选择基于抽样技术的估计。现有的估计方法分为三类。
第一类,通过马尔可夫链在网络节点中随机行走,进而随机选择网络中的节点。如果网络具有某种特定的结构,那么随机行走算法会以更高的概率走向一些静态的链接。
第二类,两层抽样方法。首先随机采集网络中的部分节点,接着在随机采集到的结点上对数据进行随机抽样。但是这个方法主要用于处理聚合操作,并且估计的准确度与数据分布具有依赖关系。
第三类,基于悄悄话(gossip-based)的通讯方法。当将该方法扩展到动态的对等网络系统中时,由于基于悄悄话方法本身的限制,会导致收敛时间过长。最后导致估计的数据密度已经过时。
发明内容
本发明克服了估算数据密度中存在的上述缺陷,提出了一种对等网络中分布无关的数据管理方法。本发明从任意一个节点估计全局数据密度,并且有较高的精准率和较低的系统开销。任意分布估计方法通过对累积分布函数进行任意分布随机抽样,得到随机样本集,从而对该随机样本集进行分析得到全局数据密度。本发明不依赖于基础数据分布或对基础数据分布无先验知识,在任意分布模型上都有相似的估计精度,并根据估算得到的数据密度将对等网络中的数据均匀分布在所有节点上,解决了对等网络中所有节点的负载不平衡的问题,减少了用户响应时间,提高了对等网络的使用效率。
本发明提出了一种对等网络中分布无关的数据管理方法,包括:
步骤一:获取对等网络中任意节点的对应的指表;
步骤二:生成所述节点的索引键值;
步骤三:根据所述指表与所述索引键值,计算所述节点维护的全局累积分布函数;
步骤四:对所述全局累积分布函数进行任意分布随机抽样,得到随机样本集;
步骤五:通过对所述随机样本集进行数据密度估计,得到全局数据密度;
步骤六:根据所述全局数据密度,通过移动节点或移动数据,将数据均匀分布在所述对等网络中的所有节点上。
其中,所述步骤三中,所述全局累积分布函数的计算方法包括基本方法、快速方法、同步方法。
其中,所述步骤三中,所述全局累积分布函数的输出结果在区间[0,1]内均匀分布。
其中,所述任意分布随机抽样包括全局累积分布函数抽样与部分累积分布函数抽样。
其中,所述全局累积分布函数抽样包括:
步骤A1:生成一组伪随机数,得到伪随机数集合;
步骤A2:计算所述全局累积分布函数中与所述伪随机数集合对应的累积频率值,组成累积频率集合;
步骤A3:对于所述累积频率集合中的各元素,与节点的全局累积值和局部累积值进行比较,根据比较结果执行搜索请求,找到对应所述累积频率集合中各元素的索引键值,得到索引键值集合。
步骤A4:得到随机样本集合。
其中,所述部分累积分布函数抽样包括:
步骤R1:生成一组伪随机数,得到伪随机数集合;
步骤B2:计算所述全局累积分布函数中与所述伪随机数集合对应的累积频率值,组成累积频率集合;
步骤B3:对于所述累积频率集合中的各元素,与节点的全局累积值和局部累积值进行比较,根据比较结果执行搜索请求,找到对应所述累积频率集合中各元素的索引键值,得到索引键值集合。
步骤B4:得到随机样本集合。
其中,所述累积频率集合中的累积频率值为所述伪随机数集合中的伪随机数与系统中索引总数的乘积。
其中,所述累积频率集合中的累积频率值为所述伪随机数集合中的伪随机数与局部区间内的索引总数的乘积。
其中,所述数据密度估计包括:
步骤C1:对所述随机样本集中的元素进行排列;
步骤C2:根据排列好的所述随机样本集拟合全局累积频率分布函数的曲线;
步骤C3:对所述拟合的全局累积频率分布函数求导,估计全局频率密度分布函数。
其中,进一步包括对所述索引键值进行更新,所述更新包括:
步骤D1:设置一个索引更新的阈值;
步骤D2:当一个节点上的索引更新数目超过了所述阈值之后,所述节点将向计算所述节点的二分累积分布表的节点发送更新消息;当一个节点加入到对等网络中,但所述节点没有对所述对等网络带入新的数据时,不需要更新。
由于本发明的累积频率分布函数能够以相同的概率得到[0,T]之间的值,同样地累积概率分布函数能够以相同的概率得到[0,1]之间的值。所以本发明通过对累积分布函数的输出进行分布无关随机抽样,能够对分布无关估计数据密度准确估计数据在当前系统中的全局密度分布。
本发明具有非重叠性质(Non-overlap Property),本发明指向二分累积分布表(DCD)中不同入口的索引键的范围是连续的、非重叠的。
本发明具有均匀分布性质(Uniform Property),累积频率分布函数(cfdf)可以以相同的概率取到[0,T]之间的每一个值。类似的,累积概率分布函数(cpdf)可以以相同的概率取到[0,1]之间的每一个值。
本发明根据从任意节点估算的数据密度,将对等网络中的数据均匀分布在所有节点上,解决了对等网络中数据分布不均匀的问题,提高了对等网络的使用效率,并且降低了用户的响应时间。
本发明使得对等网络中的许多查询请求操作变得更加简便,包括范围查找、聚合查找和轮廓查找等等。
附图说明
图1是本发明对等网络中分布无关的数据管理方法的流程图。
图2是分布无关估计抽样估计的示意图。
图3是节点1001的二分累积分布表。
图4是不同模型分布的数据对网络通信量影响的比较结果。
图5是三种数据密度估计方法在密度估计误差方面的比较结果。
图6是三种数据密度估计方法对正态分布数据测试的收敛延迟比较结果。
具体实施方式
结合以下具体实施例和附图,对本发明作进一步的详细说明。实施本发明的过程、条件、实验方法等,除以下专门提及的内容之外,均为本领域的普遍知识和公知常识,本发明没有特别限制内容。
如图1所示,本发明对等网络中分布无关的数据管理方法,包括以下各步骤:
步骤一:获取对等网络中任意节点的对应的指表;
步骤二:生成步骤一中节点的索引键值;
步骤三:根据步骤一指表与步骤二索引键值,计算步骤一节点维护的全局累积分布函数片段,其中每一个节点维护全局累积频率分布函数的一个片段,且各个片段互不重叠;
步骤四:对步骤三的全局累积分布函数进行任意分布随机抽样,得到随机样本集;
步骤五:通过对步骤四随机样本集进行数据密度估计,得到全局数据密度;
步骤六:根据全局数据密度,通过移动节点或移动数据的方法,将数据均匀分布在对等网络中的所有节点上。
其中,步骤三中,全局累积分布函数的计算方法包括基本方法、快速方法、同步方法。
其中,步骤三中,全局累积分布函数的输出结果在区间[0,1]内均匀分布。
其中,任意分布随机抽样包括全局累积分布函数抽样与部分累积分布函数抽样。
其中,全局累积分布函数抽样包括:
步骤A1:生成一组伪随机数,得到伪随机数集合;
步骤A2:计算全局累积分布函数中与伪随机数集合对应的累积频率值,组成累积频率集合;
步骤A3:对于累积频率集合中的各元素,与节点的全局累积值和局部累积值进行比较,根据比较结果执行搜索请求,找到对应累积频率集合中各元素的索引键值,得到索引键值集合。
步骤A4:得到随机样本集合,即累积频率集合与相对应的索引键值集合。
其中,部分累积分布函数抽样包括:
步骤R1:生成一组伪随机数,得到伪随机数集合;
步骤B2:计算全局累积分布函数中与伪随机数集合对应的累积频率值,组成累积频率集合;
步骤B3:对于累积频率集合中的各元素,与节点的全局累积值和局部累积值进行比较,根据比较结果执行搜索请求,找到对应累积频率集合中各元素的索引键值,得到索引键值集合。
步骤B4:得到随机样本集合,即累积频率集合与相对应的索引键值集合。
其中,累积频率集合中的累积频率值为伪随机数与系统中索引总数的乘积。
其中,累积频率集合中的累积频率值为伪随机数集合中的伪随机数与局部区间内的索引总数的乘积。
其中,数据密度估计包括:
步骤C1:对随机样本集中的元素进行排列;
步骤C2:根据排列好的随机样本集拟合全局累积频率分布函数的曲线;
步骤C3:对拟合的全局累积频率分布函数求导,估计全局频率密度分布函数。
其中,进一步包括对索引键值进行更新,更新包括:
步骤D1:设置一个索引更新的阈值;
步骤D2:当一个节点上的索引更新数目超过了阈值之后,节点将向计算节点的二分累积分布表的节点发送更新消息;当一个节点加入到对等网络中,但节点没有对对等网络带入新的数据时,不需要更新。
实施例1:获取对等网络节点的指表
在该方法中考虑的网络覆盖类似于Chord。对等网络中的每个节点id用p-位字符串标识,其中p是一个正整数,大小由对等网络的规模决定。p位字符串的整个置换集构成了一个可以容纳2p个节点的自包环。id为i的节点有一个指表,该表维护指向同一个环中其他节点的链接。指表包括近距离链接和远距离链接。近距离链接指的是在环中顺时针方向和时针方向距离节点i的最近的前继或者后继。远距离链接与Chord类似,指向顺时针方向上到节点i的距离是对数的那些节点。算法1给出了新增指表项的构建细节。其中finger.node表示为某指(finger)的后继节点。算法1的含义如下:节点i的指表中第(j-1)个项指向节点i′,节点i′的第(j-1)项指向节点i″,于是设置节点i的指表中的第j项指向节点i″。如算法1所示:
实施例2:生成对等网络节点的索引键值
索引键生成:
不假设数据元组的分布模型和值域范围。使用公式1将任意范围的值域映射到一个特定的范围[-π/2,+π/2]。同时,公式1能够使数据在映射后的值域上分布的更加均匀化。
smt(x)=arctan(A×x) (1)
公式1中,x是原始的属性值,A是一个放大参数,smt(x)是映射后的平滑值(smooth)。A根据属性分布的先前知识设定。我们知道,公式1把范围[0,1]映射到[0,π/4],并且把范围[1,+∞]映射到[π/4,π/2]。设置A=1/M,其中A是值域范围的中点,数据在映射后的值域范围内分布地更加均匀。如果没有任何关于值域分布的先前知识,设置A=1。
映射后的值域范围[-π/2,+π/2]分成一组连续的区间。通常为2p个区间,并且用p-位字符串按顺序编码。数据元组的值表示区间,经过公式1对该区间映射后的p-位字符串就是该元组的索引键。例如,如果数据元组(attr,5)所在的区间经过公式1映射后的编码为011,其索引键就是011。
索引键插入:
索引键的插入和删除与Chord相同。如果环没有满,环中的每个节点都需要维护一套连续索引键。获得数据索引键值之后,将该键值插入到键值的后继节点,进而实现数据索引的插入。
实施例3:分布无关估计
本实施例介绍分布无关密度估计的基本方法。该方法通过随机抽样可以准确估计数据在当前系统中的全局密度分布。
不同的数据分布具有不同的高密度数据分布区域。抽样一个均匀分布的中间转换分布,而且这个中间转换分布可由任意分布的底层数据转换而来。如果存在中间均匀分布,那么就可以对该中间分布随机抽样,进而获得比较高的密度估计精度。具体方法为,如图2所示,将累积概率分布函数作为中间转换分布,累积概率分布函数的输出在[0,1]均匀分布,对累积概率分布函数的输出进行随机抽样,基于抽样结果进行数据密度估计。对累积概率分布函数的输出[0,1]之间(即y-轴)随机抽样,可在索引范围内(即x-轴)较稠密(或较稀疏)的数据分布区域获取较多(或较少)的抽样样本。通过该抽样方法,可以对任意分布的低层数据进行准确的密度估计。故称对累积概率分布输出随机抽样进而估计数据密度分布的方法为分布无关密度估计。
此外,分布无关密度估计的随机抽样没有抽样偏差。
实施例4:全局累积分布函数的计算与维护
本实施例介绍如何有效地计算和维护对等网络中所有结点的全局累积分布函数。
为了描述的清晰化和理解的简单化,对网络中的所有节点用一组连续的整数重新标号。这组标号从网络中具有最小节点标识的节点开始,到网络中具有最大节点标识的节点结束,这样可以对网络所有节点用0到n-1重新标号(这些标号实际并不存在)。网络中的每一个节点都维护全局累积频率分布函数一部分,且各个部分互不重叠。网络中节点i维护了全局累积分布函数的第i个片段,该片段可以根据节点i维护的全局累积值GCV(i),本地累积值LCV(i)和本地累积频率柱状图LCFH(i)计算获得。该全局累积分布函数片段的起始值为GCV(i)-LCV(i),终止值为GCV(i),第i片段的累积分布由LCFH(i)给定。把所有节点上的片段按照顺序0,1,2,...,n-1连接起来即可到了整个网络中的全局累积分布函数。由于LCV(i)和LCFH(i)都可以在本地计算,本实施例介绍根据何计算全局累积分布函数。
全局累积分布函数的三种计算方法如下:
基本方法:
计算全局累积频率分布函数最直观的方法如下。节点i通过本地计算的LCV(i)加上从点(i-1)接收到的GCV(i-1)可计算自身的GCV(i),其中节点(i-1)为节点i的前继节点。当GCV(i)有更新时,节点i将GCV(i)发送给节点(i+1),其中节点(i+1)为节点i的后继节点。
设节点计算GCV值的时间延迟复杂度为让网络环中所有节点都计算并获得自身GCV值所需要的最小路由跳数,则该算法的时间延迟复杂度为O(n),其中n是网络中节点总数。设节点计算GCV的网络通讯复杂度为让网络环中所有节点都计算并获得自身GCV值所需要的最小消息数,则该算法的网络通讯复杂度同样也是O(n)的。因此两个复杂度均是线性的。具有较大节点标识的节点计算并获得自身GCV值往往已经过时,这是因为那些具有较大节点标识的节点比那些具有较小节点标识的节点计算出自身GCV值需要更多的路由跳数。
快速方法:
为加速GCV的计算过程,引入了一个新的索引键值,称作二分累积分布表。由于该索引键值的二分累积性质,快速方法的时间延迟复杂度可降为O(log2n),其中n为系统中节点数
网络中的各个节点除了维护有一个指表外,还维护了一个二分累积分布表。例如图3显示的1001的二分累积分布表,二分累积分布表中的每项包括4部分内容,以节点i上二分累积分布表中的第jth项为例来说明该表,并用Entryj(i)表示该第jth项。该项中第一部分是二分累积值,即某一键值范围内的索引累积值,记做Dj(i)。第二部分是二分累积值Dj(i)的结束索引键值,记做第三部分是二分累积值Dj(i)的起始键值,记做第四部分是一个链接,该链接指向网络中的某一节点,就是该第jth项需要传递的目标节点记做用表示网络中对计算Dj(i)有贡献的节点数目。二分累积分布表的收敛时间延迟复杂度为O(log2n),通讯复杂性为O(n×log2n),其中n为系统中节点数目。
算法2详细阐述了如何构建二分累积分布表。DyadicSenderMaintenacne()函数用于维护二分累积分布表中各项的ST部分,而节点指表是由算法2独立维护的。如果指表中的某一项更新了,将导致指表中该项指向节点中的二分累积分布表中对应项的更新。二分累分布表中各项其它三部分的更新独立于ST部分,DyadicValueUpdate()函数给出这三部分的更新算法。二分累积分布表某项的二分累积值更新之后,该项的三部分内容将发送到ST指向的节点并通知更新。当GChord系统中有节点加入/退出/失效操作也会引起二分累积分布表的重新构建,和相应数据索引的移动(新节点加入时引起索引从邻近节点转移到新加入节点,节点退出/失效时引起索引转移到邻近节点)。
网络通信量较大,但是该网络通信量在二分累积分布表计算收敛之后将大幅减小。另一个减小网络通讯量的方法是设置索引更新阈值δ(即当索引更新超过阈值δ后才发送更新消息),但是设置索引更新阈值δ之后将引入各节点计算自身GCV值的传递误差。为此,提出了同步方法来降低该类传递误差。
同步方法:
在对等网络系统中,节点可以通过两种方法计算出其GCV值,一种叫做推(push)方法,另一种叫做拉(pull)方法。推方法是指接受从其它节点发送过来的二分累积值,而拉方法是指向其它特定节点请求二分累积值。可见,拉方法需要发送额外的请求消息,但是拉方法具有如下的好处:可以降低整个网络计算累积分布函数的时间延迟,降低传递误差,提高系统的可扩展性和容错性。拉方法是根据部分累积值(PCV)实现的,和GCV相比,PCV是二分累积分布表中子集项的和,并且该子集项由表中的一组连续项组成,即
PCVDj(i)是GCV(i)的一部分,具有相同的结束索引键值和不同的起始索引键值。
基于部分累积值计算全局累积值的过程是一个同步过程,节点同步向具有特定二分累积值的节点发送请求信息。使用多播树发送请求,当节点接收到请求后,节点设置注册信息。在节点的索引更新之后,该节点向请求注册的节点发送所需的PCV值。节点对接受到的所有部分累积值做求和运算,由此计算全局累积值。
维护与更新全局累积分布函数:
节点的新数据插入或旧数据删除,将导致相关节点二分累积分布表的更新。如果每次数据更新都更新相关节点的二分累积分布表,那么所需要的更新消息数目是巨大的,并且可能导致消息爆炸,甚至网络拥塞。为了减少更新消息的数目,设置一个消息更新阈值δ,即相对索引更新的数目是必要的。当某节点上的索引更新超过了δ之后,该节点将向相关节点发送更新消息。更新消息是指那些包含有索引更新信息的消息。当一个节点加入到网络中但是不影响元组时,由于全局累积值保持不变,不需要更新。
阈值δ满足下面条件:给定阈值δ,并且设当δ=1时,需要的更新消息数记做Nm。当δ>1时,所需要的更新消息为Nm/δ。因为当节点的数据操作只有插入或删除中的一种操作时,设置阈值为δ之后,需要的更新消息数目可以降为Nm/δ。当节点上数据操作同时包含有插入和删除操作时,需要的更新消息数目可以降到Nm/δ以下,因为某些插入操作或者删除操作可能作用于同一个索引键值,即可使得更新相互抵消。
实施例5:抽样
每个节点通过维护GCV,LCV和LCFH维护了全局累积分布函数中的一个片断。而分布无关密度估计算法的目标是让网络中每个节点都能估计当前系统中数据的全局密度分布,因此首先需要让这些节点获得全局累积分布函数的统计信息。如果让这些节点访问网络中的所有节点,进而获悉当前系统中的数据分布,将导致过大的网络开销。本实施例引入两个随机抽样方法,即全局累积分布函数抽样和部分累积分布函数抽样。通过抽样,只需访问网络中的部分节点并获取部分统计信息进而准确估计当前系统中数据的全局密度分布函数。
A.全局累积分布函数抽样
算法4从以下三步获取抽样样本集合:
第1步:生成一组伪随机数,记做PV。分布无关抽样方法是基于累积分布函数的,因此生成PV集合是抽样的前提条件。而累积分布函数的输出在[0,1]之间的均匀分布,因此生成的伪随机数PV集合中各元素在[0,1]。在该算法中使用Mersenne-twister函数来生成该伪随机数集合。
第2步:计算与PV集对应的累积频率集合,记做CF。CF集中的元素由PV集中的元素乘以系统中总索引条目数获得,即T。T在整个网络中的传递方式与二分累积分布表中的每项的传递方式相同。由此,网络中各个节点可以获取T值。
第3步:搜索对应于集合CF中各元素的索引键值,记做IK。函数GetIndexKey()根据cfj与GCV(i)的比较结果,将搜索请求以三种方式发送出去。如果cfj>GCV(i),该请求发送到节点i指表最后一项指向的节点。如果cfj∈[GCV(i)-LCV(i),GCV(i)],该搜索请求在本地节点i上完成(如函数GetLocal()所示)。如果以上两种情况均不满足,该搜索请求根据二分累积分布表发送到某个节点,并且该节点的GCV值比cfj大且接近cfj。节点的GCV值可以通过与Dj做差获得(如函数FindNearestGCV Peer()所示)。算法递归到最后,搜索请求将传递给节点i′并且满足cfj∈[GCV(i′)-LCV(i′)GCV(i′)]。最后算法返回的结果是基于LCFH(i′)索引键值差值。
该方法获取随机样本的时间延迟复杂度为O(log2n),n是系统中节点的总数。
B.部分累积分布抽样
索引总数T值影响全局累积分布函数抽样算法中集合CF的计算准确度,由于对等网络的动态性质,节点接受到的T值也可能是已过时的,这样势必会影响到集合CF的计算准确度,进而影响密度估计的精度。如果只对部分累积分布函数抽样,则可以估计出相应部分的密度分布,而对于其它部分的密度估计可以向其它节点获取,进而避免计算集合CF时使用索引总数T值。
部分累积分布函数抽样算法在全局累积分布函数的局部区间内获取抽样样本。部分累积分布函数由对该部分累积分布函数提供索引的网络节点的PCV,LCV和LCFH组合生成。因此,节点对部分累积分布函数抽样时只需要知道该局部区间内的索引总数T′,而无需知道整个网络中的索引的总数。可见,该算法在密度估计精度和网络通信量这两个层面上都优于全局累积分布函数抽样。因为抽样的范围变小,读取IK集需要的消息数减少。与解决这些样本的消息数相比,在全局累积分布中请求其他部分的样本集的消息数可以忽略。因此,这种算法有较高的精准率和较低的成本。
最后,抽样节点获取了抽样样本集合,基于此样本集对数据密度函数进行估计。
实施例6:数据密度估计与平衡节点负载
本实施例基于CF集和IK集组成的随机样本集对全局数据密度进行估计。给定这个集合中的m个元素,记做{(cf0,ik0),(cf1,ik1),……,(cfm,ikm)},他们是从累积分布函数(全局累积分布函数或是部分累积分布函数)中获取的。由于全局数据密度估计与部分区域数据密度估计的估计算法相同,因此本实施例以全局数据密度估计为例给出算法细节。cfi值在[0,T]上是均匀分布的(T是计算累积分布计算区间内索引总数)。需要三个步骤完成全局数据密度分布函数的估计。
第一,对样本集中的元素按照cf值或者ik值的非递减顺序排序。排序后的元素集合记做{(cf(0),ik(0)),(cf(1),ik(1)),……,(cf(m),ik(m))}。
第二,根据排列好的抽样样本集合拟合全局累积频率分布函数曲线。基于拉格朗日多项式差值对该曲线进行拟合,得到
其中,
估计误差与样本大小之间的关系:假设fdf(d)有界,那么
其中,m是从累积分布函数中获取到的样本数,d是估计累积分布函数的多项式形式的深度,E是真实的fdf(x)和基于m个样本估计的之间的估计误差的期望值。
根据以上估算得到的数据密度,通过移动节点或者移动数据的方法,将数据均匀分布在对等网络中的所有节点上,平衡对等网络中所有节点的负载,解决了对等网络中数据分布不均匀的问题,提高了对等网络的使用效率,并且降低了用户的响应时间。
实施例7:分布无关数据密度估计方法效果测试
本实施例主要对分布无关数据密度估计方法与基于柱状的抽样方法、基于悄悄话的核密度算法做比较。测试的性能主要包括网络通讯两和密度估计误差。
图4给出了按不同模型分布的数据对网络通信量影响的比较结果。图中结果显示,分布无关估计方法比基于悄悄话的算法在估计比较倾斜的数据时,效果好得多,特别是对于按zipf分布和按指数分布的数据。
图5给出上述三种方法在密度估计误差方面的比较结果。图中结果显示,现有算法对数据分布的倾斜程度比较敏感(如zipf分布)而分布无关密度估计算法比较稳定。
图6给出对正态分布数据测试的收敛延迟比较结果。图中结果显示,分布无关密度估计方法比基于悄悄话的方法收敛快出许多。
综合可知,在动态对等网络系统中,分布无关数据密度估计算法在估计全局数据密度分布方面是有效且高效的。
本发明的保护内容不局限于以上实施例。在不背离发明构思的精神和范围下,本领域技术人员能够向到的变化和优点都被包括在本发明中,并且以所附的权利要求书为保护范围。
Claims (10)
1.一种对等网络中分布无关的数据管理方法,其特征在于,包括:
步骤一:获取对等网络中任意节点的对应的指表;
步骤二:生成所述节点的索引键值;
步骤三:根据所述指表与所述索引键值,计算所述节点维护的全局累积分布函数;
步骤四:对所述全局累积分布函数进行任意分布随机抽样,得到随机样本集;
步骤五:通过对所述随机样本集进行数据密度估计,得到全局数据密度;
步骤六:根据所述全局数据密度,通过移动节点或移动数据,将数据均匀分布在所述对等网络中的所有节点上。
2.根据权利要求1所述的对等网络中分布无关的数据管理方法,其特征在于,所述步骤三中,所述全局累积分布函数的计算方法包括基本方法、快速方法、同步方法。
3.根据权利要求1所述的对等网络中分布无关的数据管理方法,其特征在于,所述步骤三中,所述全局累积分布函数的输出结果在区间[0,1]内均匀分布。
4.根据权利要求1所述的对等网络中分布无关的数据管理方法,其特征在于,所述任意分布随机抽样包括全局累积分布函数抽样与部分累积分布函数抽样。
5.根据权利要求4所述的对等网络中分布无关的数据管理方法,其特征在于,所述全局累积分布函数抽样包括:
步骤A1:生成一组伪随机数,得到伪随机数集合;
步骤A2:计算所述全局累积分布函数中与所述伪随机数集合对应的累积频率值,组成累积频率集合;
步骤A3:对于所述累积频率集合中的各元素,与节点的全局累积值和局部累积值进行比较,根据比较结果执行搜索请求,找到对应所述累积频率集合中各元素的索引键值,得到索引键值集合。
步骤A4:得到随机样本集合。
6.根据权利要求4所述的对等网络中分布无关的数据管理方法,其特征在于,所述部分累积分布函数抽样包括:
步骤B1:生成一组伪随机数,得到伪随机数集合;
步骤B2:计算所述全局累积分布函数中与所述伪随机数集合对应的累积频率值,组成累积频率集合;
步骤B3:对于所述累积频率集合中的各元素,与节点的全局累积值和局部累积值进行比较,根据比较结果执行搜索请求,找到对应所述累积频率集合中各元素的索引键值,得到索引键值集合。
步骤B4:得到随机样本集合。
7.根据权利要求5所述的对等网络中分布无关的数据管理方法,其特征在于,所述累积频率集合中的累积频率值为所述伪随机数集合中的伪随机数与系统中索引总数的乘积。
8.根据权利要求6所述的对等网络中分布无关的数据管理方法,其特征在于,所述累积频率集合中的累积频率值为所述伪随机数集合中的伪随机数与局部区间内的索引总数的乘积。
9.根据权利要求1所述的对等网络中分布无关的数据管理方法,其特征在于,所述数据密度估计包括:
步骤C1:对所述随机样本集中的元素进行排列;
步骤C2:根据排列好的所述随机样本集拟合全局累积频率分布函数的曲线;
步骤C3:对所述拟合的全局累积频率分布函数求导,估计全局频率密度分布函数。
10.根据权利要求1所述的对等网络中分布无关的数据管理方法,其特征在于,进一步包括对所述索引键值进行更新,所述更新包括:
步骤D1:设置一个索引更新的阈值;
步骤D2:当一个节点上的索引更新数目超过了所述阈值之后,所述节点将向计算所述节点的二分累积分布表的节点发送更新消息;当一个节点加入到对等网络中,但所述节点没有对所述对等网络带入新的数据时,不需要更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210426146.3A CN103793416A (zh) | 2012-10-31 | 2012-10-31 | 一种对等网络中分布无关的数据管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210426146.3A CN103793416A (zh) | 2012-10-31 | 2012-10-31 | 一种对等网络中分布无关的数据管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103793416A true CN103793416A (zh) | 2014-05-14 |
Family
ID=50669099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210426146.3A Pending CN103793416A (zh) | 2012-10-31 | 2012-10-31 | 一种对等网络中分布无关的数据管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103793416A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108628889A (zh) * | 2017-03-21 | 2018-10-09 | 北京京东尚科信息技术有限公司 | 基于时间片的数据抽样方法、系统和装置 |
CN109117433A (zh) * | 2017-06-23 | 2019-01-01 | 菜鸟智能物流控股有限公司 | 一种索引树对象的创建及其索引方法和相关装置 |
US11307943B2 (en) | 2017-03-21 | 2022-04-19 | Huawei Technologies Co., Ltd. | Disaster recovery deployment method, apparatus, and system |
-
2012
- 2012-10-31 CN CN201210426146.3A patent/CN103793416A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108628889A (zh) * | 2017-03-21 | 2018-10-09 | 北京京东尚科信息技术有限公司 | 基于时间片的数据抽样方法、系统和装置 |
CN108628889B (zh) * | 2017-03-21 | 2021-05-25 | 北京京东尚科信息技术有限公司 | 基于时间片的数据抽样方法、系统和装置 |
US11307943B2 (en) | 2017-03-21 | 2022-04-19 | Huawei Technologies Co., Ltd. | Disaster recovery deployment method, apparatus, and system |
CN109117433A (zh) * | 2017-06-23 | 2019-01-01 | 菜鸟智能物流控股有限公司 | 一种索引树对象的创建及其索引方法和相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102768670B (zh) | 基于节点属性标签传播的网页聚类方法 | |
ATE313906T1 (de) | Master-knotenauswahl in geclusterten knotenkonfigurationen | |
US9535954B2 (en) | Join processing device, data management device, and string similarity join system | |
CN106533759B (zh) | 一种多层网络中的基于路径熵的链路预测方法 | |
CN104102703B (zh) | 一种复杂网络中节点传播能力的评估方法 | |
CN113422695B (zh) | 一种提高物联网拓扑结构鲁棒性能的优化方法 | |
CN102682046A (zh) | 社交网络的节点搜索和分析方法及搜索系统 | |
CN105574541A (zh) | 一种基于紧密度排序的网络社区发现方法 | |
CN105469315A (zh) | 基于增量聚类的动态社会网络社团结构演化方法 | |
CN103810260A (zh) | 基于拓扑特性的复杂网络社团发现方法 | |
Avrachenkov et al. | Quick detection of high-degree entities in large directed networks | |
Wang et al. | {PrivTrace}: Differentially Private Trajectory Synthesis by Adaptive Markov Models | |
CN103793416A (zh) | 一种对等网络中分布无关的数据管理方法 | |
CN102664828B (zh) | 一种在sns网络中好友推荐的系统和方法 | |
CN102708285B (zh) | 基于复杂网络模型并行化PageRank算法的核心药物挖掘方法 | |
CN107330083B (zh) | 等宽直方图并行构建方法 | |
CN103440308A (zh) | 一种基于形式概念分析的数字论文检索方法 | |
Fan et al. | Energy efficient schemes for accuracy-guaranteed sensor data aggregation using scalable counting | |
CN105095613A (zh) | 一种基于序列数据进行预测的方法及装置 | |
Saxena et al. | Rank me thou shalln't compare me | |
CN105740907A (zh) | 一种局部社团挖掘方法 | |
CN109492677A (zh) | 基于贝叶斯理论的时变网络链路预测方法 | |
CN104268270A (zh) | 基于MapReduce挖掘海量社交网络数据中三角形的方法 | |
CN108345699A (zh) | 获取多媒体数据的方法、装置及存储介质 | |
CN108898506A (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: 20140514 |
|
WD01 | Invention patent application deemed withdrawn after publication |