一种基于数据映射算法的近邻存储方法

文档序号:10654090阅读:309来源:国知局
一种基于数据映射算法的近邻存储方法
【专利摘要】本发明公开了一种基于数据映射算法的近邻存储方法,包括:利用谱哈希算法对高维数据样本哈希映射获得每个高维数据项的k维二进制哈希码;利用Z?curve方法将其转化获得每个高维数据项的Z?Value值;利用Chord方法构建分布式节点网络,所述分布式节点网络由Chord环和分布于Chord环的m个节点服务器构成;将所得每个高维数据项Z?Value值映射和存储至节点服务器,并更新获得已存储节点的节点服务器路由表;根据待查询高维数据项进行相关性查询,确定待查询高维数据项的Z?Value值,及按顺时针查找各节点的节点服务器路由表找到高维数据项所在节点服务器。本发明可实现近邻存储,当进行相关性查询时,降低了节点服务器切换开销,提高了查询准确率,提高整个系统运行效率和降低网络带宽。
【专利说明】
-种基于数据映射算法的近邻存储方法
技术领域
[0001] 本发明设及一种基于数据映射算法的近邻存储方法,属于数据挖掘和机器学习的
技术领域。
【背景技术】
[0002] 随着互联网的发展越来越快,海量数据指数级增长的时代已经到来。海量资源的 爆炸式的增长,对于现有的存储系统是一个极大的考验。面对高维、海量的数据,如何有效 地存储海量数据同时能够高效的查询到有效的数据信息是一个值得研究的问题。
[0003] 为了更高效的解决海量数据下存储问题,分布式存储应运而生。主流的分布式存 储技术是P2P系统。根据P2P技术的点对点和分布式特点,将其加入到云存储系统中,有效地 解决集中式云存储系统的中屯、服务器的瓶颈问题。将数据分布式的存放在各个节点服务器 上,减轻了节点服务器的负载,实现了云存储系统的负载均衡,从而提高了系统硬件的使用 率,大大提高了系统的存储性能在主流的P2P存储网络中,存储数据在DHT中的哈希值K巧由 相应的哈希函数获得,然而哈希函数为了保持网络的负载均衡会破坏资源的语义相关性信 息,如MD5,因此大部分P2P系统只支持单关键字的精确查询,不能支持语义相关性查询。面 对海量数据时,查全率低,节点切换开销变大,导致网络拥堵,造成系统的存储效率和查询 效率会大大降低。

【发明内容】

[0004] 本发明所要解决的技术问题在于克服现有技术的不足,提供一种基于数据映射算 法的近邻存储方法,该方法将谱哈希算法与数据映射算法相结合,将数据映射到分布式存 储网络中,解决了在大规模数据场景下分布式存储时,相关性查询时系统查询开销过大的 问题,提高了数据的查询效率。
[0005] 本发明具体采用W下技术方案解决上述技术问题:
[0006] -种基于数据映射算法的近邻存储方法,包括:
[0007] 步骤1、利用谱哈希算法对高维数据样本哈希映射获得每个高维数据项的k维二进 制哈希码;
[000引步骤2、利用Z-CUrve方法将所得每个高维数据项的k维二进制哈希码转化获得每 个高维数据项的Z-Value值;
[0009] 步骤3、利用化ord方法构建分布式节点网络,所述分布式节点网络由化ord环和分 布于化ord环上的m个节点服务器构成;将所得每个高维数据项的Z-Value值映射和存储至 化ord环上的节点服务器,并更新获得已存储高维数据项的Z-Value值的节点的节点服务器 路由表;
[0010] 步骤4、根据待查询高维数据项进行相关性查询,包括:确定待查询高维数据项的 Z-化Iue值,及根据所确定待查询高维数据项的Z-化Iue值按顺时针查找各节点的节点服务 器路由表查询获得对应高维数据项所在的节点服务器。
[0011] 进一步地,作为本发明的一种优选技术方案:所述步骤I利用谱哈希算法对高维数 据样本哈希映射包括:
[0012] 对高维数据样本进行谱分析,利用特征函数分析高维数据样本的平均分布,生成 哈希函数;
[0013] 利用所生成哈希函数对高维数据样本计算获得每个高维数据项的k维二进制哈希 码。
[0014] 进一步地,作为本发明的一种优选技术方案:所述步骤1还包括利用主成分分析方 法去除高维数据样本中冗余信息。
[0015] 进一步地,作为本发明的一种优选技术方案:所述步骤4所找到的高维数据项所在 节点服务器满足其Z-化Iue值大于或等于待查询高维数据项的Z-化Iue值,且按顺时针位于 第一个的节点服务器。
[0016] 进一步地,作为本发明的一种优选技术方案:还包括判断化ord环上各节点服务器 的负载,根据判断结果对化ord环上的节点服务器进行负载调控。
[0017] 本发明采用上述技术方案,能产生如下技术效果:
[0018] (1)本发明引入近邻存储概念,选择谱哈希的语义哈希算法加入分布式存储网络 中,使得相似性强的高维数据能够存储在相近的存储服务器中,实现近邻存储。谱哈希通过 对样本数据集合进行训练获得一个相应的哈希函数,然后利用此函数对高维数据点进行降 维生成低维二进制数据。甜不仅可提高查询效率,而且在汉明空间中所计算样本距离与原 始高维空间所计算样本距离能保持一致。采用谱哈希方法将高维原始欧式空间数据映射到 汉明空间,避免了采用局部敏感哈希方法产生大量哈希表占用大量内存的问题。
[0019] (2)利用数据映射算法可W生成Z-Value值,将由細生成的k维的二进制哈希码映 射到分布式存储网络中,保证了数据的在各个空间的相似性,保证了拥有相似原始数据的 哈希桶在化ord环上也相近,实现了近邻存储和分布式存储,为近邻存储提供很好的理论依 据。在海量数据下,当进行现相关性查询时,降低了节点服务器的切换开销,提高了查询的 准确率,提高整个系统运行效率和降低网络带宽。
[0020] (3)本发明利用谱哈希方法与数据映射算法相结合,将高维的存储数据映射成保 留相似度的哈希码,并通过数据Z-curve映射算法将哈希码映射到分布式哈希表中,从而保 证了相近的存储数据W较大的概率映射到哈希表中相近的位置,从而实现近邻存储的目 的。同时,利用分布式存储网络化ord的优点,通过动态的调整每个节点服务器的负载,使得 Chord环上的节点满足负载均衡。通过虚拟节点的方法有效地避免了可能出现的节点服务 器负载过重的情况。运样,当进行相关性数据查询时,可W大大降低存储服务器的切换开 销,在保证查询精度的同时,提高了查询的速度。
【附图说明】
[0021] 图1为本发明一种基于数据映射算法的近邻存储方法的示意图。
[0022] 图2为本发明中Z-curve方法的流程图。
[0023] 图3为本发明中分布式网络中节点区间分配图。
[0024] 图4为本发明中化ord资源标识示意图。
【具体实施方式】
[0025] 下面结合说明书附图对本发明的实施方式进行描述。
[0026] 如说明书附图1所示,本发明提供了一种基于数据映射算法的近邻存储方法。本方 案主要分S个层次,分别为:利用谱哈希进行哈希映射,数据映射算法,Chord的构建,具体 实施步骤包括如下:
[0027] 步骤1、利用谱哈希算法对高维数据样本哈希映射获得每个高维数据项的k维二进 制哈希码。具体过程如下:
[0028] 谱哈希算法是将谱分析技术融合进哈希函数中,将构造的新的哈希函数用于高维 数据的处理上。谱哈希首先需要对高维数据样本进行谱分析,利用特征函数,通过分析高维 数据样本的平均分布,生成一个哈希函数。因此谱哈希算法的动机就是给定一个高维样本 数据库进行训练,找到一个理想的哈希函数。运个哈希函数可W将相似的高维数据点哈希 到一个相似的值上。
[0029] 谱哈希算法被设计用来产生紧凑的哈希二值编码,即哈希码来进行相似性捜索。 根据假定有个训练集S,它有N个d维的高维原始数据,运里用X G RWxd来表示训练集在原始欧 式空间中的表达形式,相对应的将所有高维原始数据映射到汉明空间的结果为YG {-1,1 }Wxm,即哈希码。谱哈希算法具体实施过程如下:
[0030] 首先通过使用主成分分析(Principal ComponentAnalysis,PCA)算法去除原始数 据中的冗余信息,将获得数据集矩阵X的主成分转移矩阵P,如下所示:
[0031] P = Princomp(X) (1)
[0032] 其中矩阵P维度为d X k。
[0033] 接着计算XP获得n X k维的矩阵N,矩阵N的第t行的k维向量表示数据样本集合中 第t个样本。谱哈希算法假定矩阵N的第i列中的元素都均匀分布在[ai,bi]区间内,曰1和bi分 别表示矩阵N第i列元素中的最小值和最大值,从算法效果来看,此假定大大的提高了哈希 算法的计算效率和准确性。一维拉普拉斯矩阵的特征值A(M)和特征函数(6(1,0)定义为:
[0034] 傑
[0035] (3)
[0036] 其中 iE{l,...,k},0E{l,...,d}。
[0037] 然后把d*k个特征值从小到大排列,选取其中较小的k个特征值对应的特征函数, 保存对应的参数。
[0038] 对干毎一个挣本Y 而言,巧4维哈希码W (X)可由如下哈希函数得到:
[0039] (4)
[0040] 均第ii个元素。
[0041] 因此对于数据训中其余数据作为新来的数据项Xn + jGRd,该数据项的k位哈希码 yn+j可由如下函数得到:
[0042]
;5)
[0043] 步骤2、利用Z-curve方法将所得每个高维数据项的k维二进制哈希码转化获得每 个高维数据项的Z-Value值。
[0044] 通过上述哈希函数可W得到每个高维原始数据项的k-维二进制哈希码,然后利用 Z-curve的方法将k维向量转化为一个Z-Value值,具体过程如说明书附图2所示。将通过谱 哈希得到的k维向量中的每一个数中的第一个二进制位,按向量中的位置顺序排列。然后排 列每个整数的第二个二进制位,也按照向量中的位置顺序排列,一直重复上述的过程直到 向量中所有数的二进制位都被处理过之后,将运些二进制序列串联在一块就生成一个Z- 化Iue值。
[0045] 由相关理论可W证实Z-curve方法能够有效的保持高维数据的相似性。运里提出 了化CP值,LLCP表示最长公共前缀字符串,而且可W知道两个Z-Value值的化CP越大,那么 运两个Z-Value所代表的高维数据越相似。因此可W利用Z-Value值将高维原始空间数据通 过谱哈希算法生成的k维向量映射到分布式存储网络中。
[0046] 由本发明的算法可知,如果高维原始数据相似,则映射到分布式存储网络中的位 置也相近,即能将相似的数据存储到相近的节点服务器。运说明用Z-化Iue值表示高维数据 在化ord环上的位置是有意义的。
[0047] 步骤3、利用化ord方法构建分布式节点网络,所述分布式节点网络由化ord环和分 布于化ord环上的m个节点服务器构成;将所得每个高维数据项的Z-Value值映射和存储至 化ord环上的节点服务器,并更新获得已存储高维数据项的Z-Value值的节点的节点服务器 路由表。
[0048] 由于化ord是环形构造,通过线性扫描能找到目标节点,然而运样显然开销过大, 开销为〇(N)。因此化ord实际使用的是一种类似折半查找的非线性查找方法。
[0049] 另外,由Z-Value生成的二进制字符串中,LLCP的值越长,那么对应的高维数据点 越相似。因此假定对于一个高维数据集合而言其Z-Value的值分布为[u,l]。那么可W将运 个区间的值平均分配到mO至m7节点中,如说明书附图3所示,并更新获得每个存储有数据项 的节点的节点服务器路由表。
[(K)加]在图3中,Z-Value的值表达范围为[0,127],那么假设得到的Z-化Iue值为Zi,根据 Zi可W对应数据按照顺时针方向分配到相近的节点服务器。即第一个索引节点负责Z- Value值为[0,15]的高维数据点的索引,即假设得到的Z-Value值为Zi,Zi值小于15,的都存 放于第一个节点服务器;而第二个索引节点负责Z-Value值为[16,31]的高维数据节点的索 引,Zi值在[16,31]之间的都存放于第二个节点服务器;W此类推,每一个落在一定区间的 高维数据,由对应的索引节点负责建立索引。当有数据映射到畑ord环上时,可W根据Z- 化Iue按顺时针顺序查找到相应的节点服务器,实现近邻存储。
[0051] 步骤4、根据待查询高维数据项进行相关性查询,包括:确定待查询高维数据项的 Z-化Iue值,及根据所确定Z-化Iue值按顺时针查找各节点的节点服务器路由表找到高维数 据项所在的节点服务器。具体如下:
[0052] 从上文可知,假设得到的Z-Value值为Zi,在运种环状结构中,随机的给a.yi第i节 点服务器分配一个随机值ri(rmin《ri《rmax),运个值被称作节点编号,用来代替其在环中的 位置,其中rmin和rmax根据测试的数据集映射后最大值和最小值来确定。所有的节点按照节 点编号升序的方式组成一个环,一共有m个节点。同时,每个数据项X,. E化d都有唯一标识Zi, 根据映射函数0(.)可W将标识为Zi分配给节点编号为巧的节点服务器,该函数定义如下: [0化3]
[0054] 当进行相关性查询时,存在一个待查询高维数据项,根据一致性哈希原理,首先获 得查询项唯一标识,即Z-Value值,然后沿着环顺时针查找,直到找到满足节点的哈希值大 于或等于查询项哈希值的第1个节点服务器,它就是索要所要查询的节点。运就是说,每一 个节点标号为巧的节点服务器负责环上]运个范围。
[0055] 然而在分布式存储网络中,常出现系统热点问题,影响系统可靠性。因此要对分布 式存储实现负载均衡。即本发明的方法还包括判断化ord环上各节点服务器的负载,根据判 断结果对化ord环上的节点服务器进行负载调控步骤。
[0056] 运里提出了虚拟节点技术,通过添加虚拟节点的方法维持系统的负载均衡。具体 做法如下:
[0057] 如图4所示,矩形为节点服务器,该实施例中包括ml至m60个节点服务器;圆点为资 源标识符,其中的节点服务器直接根据其对应的资源标识符来表示;Ob ject表示数据项,该 实施例包括object 1、objects、objects、object4等若干个数据项。
[005引若数据项objectl存储到了节点服务器ml中,而object2、object3、object4都存储 到了节点服务器ml8中。由于过程中设置对每个节点服务器设定一个负载阔值,若该节点服 务器的负载超过负载阔值,则进行调控。本实施例中负载阔值设置为2,而节点服务器ml8的 负载数量为3超出负载阔值2,则出现明显过载的情况,此时需要对负载进行调控。
[0059] 将实际物理上的节点服务器按照网络负载情况从逻辑上分为多个逻辑节点,每个 逻辑节点可W视作一个虚拟节点。一个物理上的节点服务器可W对应2个甚至更多个虚拟 节点。运里设置每个物理上的节点服务器分为两个虚拟节点,此时节点服务器ml对应有两 个虚拟节点服务器ml-1 ,ml-2,ml8对应有两个虚拟节点服务器ml8-l,ml8-2。此时,对象到 "虚拟节点服务器"的映射关系为:
[0060] objecl->ml-l;objec2->ml-2;objec3->ml8-2;objec4->ml8-l;
[0061 ]因此数据项objectl和objects都被映射到了节点服务器ml上,而数据项objects 和object4映射到了节点服务器ml8上,系统负载均衡性有了很大提高。
[0062] 综上,本发明的方法将谱哈希算法与数据映射算法相结合,将数据映射到分布式 存储网络中,解决了相关性查询时系统查询开销过大问题,提高了数据的查询效率。
[0063] 上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施 方式,在本领域普通技术人员所具备的知识范围内,还可W在不脱离本发明宗旨的前提下 做出各种变化。
【主权项】
1. 一种基于数据映射算法的近邻存储方法,其特征在于,包括: 步骤1、利用谱哈希算法将高维数据样本哈希映射获得每个高维数据项的k维二进制哈 希码; 步骤2、利用z-curve方法将所得每个高维数据项的k维二进制哈希码转化获得每个高 维数据项的Z-Value值; 步骤3、利用Chord方法构建分布式节点网络,所述分布式节点网络由Chord环和分布于 Chord环上的m个节点服务器构成;将所得每个高维数据项的Z-Value值映射和存储至Chord 环上的节点服务器,并更新获得已存储高维数据项的Z-Value值的节点的节点服务器路由 表; 步骤4、根据待查询高维数据项进行相关性查询,包括:确定待查询高维数据项的Z-Value值,及根据所确定待查询高维数据项的Z-Value值按顺时针查找各节点的节点服务器 路由表查询获得对应高维数据项所在的节点服务器。2. 根据权利要求1所述基于数据映射算法的近邻存储方法,其特征在于:所述步骤1利 用谱哈希算法对高维数据样本哈希映射包括: 对高维数据样本进行谱分析,利用特征函数分析高维数据样本的平均分布,生成哈希 函数; 利用所生成哈希函数对高维数据样本计算获得每个高维数据项的k维二进制哈希码。3. 根据权利要求2所述基于数据映射算法的近邻存储方法,其特征在于:所述步骤1还 包括利用主成分分析方法去除高维数据样本中冗余信息。4. 根据权利要求1所述基于数据映射算法的近邻存储方法,其特征在于:所述步骤4所 找到的高维数据项所在节点服务器满足其Z-Value值大于或等于待查询高维数据项的Z-Value值,且按顺时针位于第一个的节点服务器。5. 根据权利要求1所述基于数据映射算法的近邻存储方法,其特征在于:还包括判断 Chord环上各节点服务器的负载,根据判断结果对Chord环上的节点服务器进行负载调控。
【文档编号】G06F3/06GK106020724SQ201610341483
【公开日】2016年10月12日
【申请日】2016年5月20日
【发明人】成际镇, 李姗姗
【申请人】南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1